From: amwaterhouse Date: Mon, 13 Nov 2006 11:11:41 +0000 (+0000) Subject: Group Menu level changed X-Git-Tag: Release_2_2~135 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=f62b380e6e3cdbce3af5730f682aad99116509c9;p=jalview.git Group Menu level changed --- diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java index 5292de9..206a969 100755 --- a/src/jalview/gui/PopupMenu.java +++ b/src/jalview/gui/PopupMenu.java @@ -32,6 +32,8 @@ import javax.swing.*; import java.util.Vector; import jalview.io.FormatAdapter; +import javax.swing.event.ChangeListener; +import javax.swing.event.ChangeEvent; /** @@ -81,6 +83,8 @@ public class PopupMenu extends JPopupMenu JMenuItem discoverPDB = new JMenuItem(); JMenu outputMenu = new JMenu(); JMenuItem sequenceFeature = new JMenuItem(); + JMenuItem textColour = new JMenuItem(); + JMenu jMenu1 = new JMenu(); /** * Creates a new PopupMenu object. @@ -510,23 +514,25 @@ public class PopupMenu extends JPopupMenu sequenceFeature_actionPerformed(e); } }); + textColour.setText("Text Colour"); + textColour.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + textColour_actionPerformed(e); + } + }); + jMenu1.setText("Group"); add(groupMenu); add(sequenceMenu); groupMenu.add(editMenu); groupMenu.add(outputMenu); - groupMenu.addSeparator(); groupMenu.add(sequenceFeature); - groupMenu.addSeparator(); - groupMenu.add(groupName); - groupMenu.add(unGroupMenuItem); - groupMenu.add(colourMenu); - groupMenu.add(showBoxes); - groupMenu.add(showText); - groupMenu.add(showColourText); - groupMenu.add(outline); + groupMenu.add(jMenu1); sequenceMenu.add(sequenceName); sequenceMenu.add(pdbMenu); + colourMenu.add(textColour); colourMenu.add(noColourmenuItem); colourMenu.add(clustalColour); colourMenu.add(BLOSUM62Colour); @@ -573,6 +579,13 @@ public class PopupMenu extends JPopupMenu pdbMenu.add(pdbFromFile); pdbMenu.add(enterPDB); pdbMenu.add(discoverPDB); + jMenu1.add(groupName); + jMenu1.add(unGroupMenuItem); + jMenu1.add(colourMenu); + jMenu1.add(showBoxes); + jMenu1.add(showText); + jMenu1.add(showColourText); + jMenu1.add(outline); noColourmenuItem.setText("None"); noColourmenuItem.addActionListener(new java.awt.event.ActionListener() { @@ -1344,4 +1357,89 @@ public class PopupMenu extends JPopupMenu ap.highlightSearchResults(null); } } + + public void textColour_actionPerformed(ActionEvent e) + { + final SequenceGroup sg = getGroup(); + + int original1 = sg.textColour.getRGB(); + int original2 = sg.textColour2.getRGB(); + int thresh = sg.thresholdTextColour; + final JSlider slider = new JSlider(0, 750,sg.thresholdTextColour); + final JButton col1 = new JButton("DARK"); + col1.setBackground(sg.textColour); + col1.setForeground(sg.textColour); + final JButton col2 = new JButton("LIGHT"); + col2.setBackground(sg.textColour2); + col2.setForeground(sg.textColour2); + final JPanel bigpanel = new JPanel(new BorderLayout()); + JPanel panel = new JPanel(); + bigpanel.add(panel, BorderLayout.CENTER); + bigpanel.add(new JLabel( + "Select a dark and light text colour, then set the threshold to" + +"
switch between colours, based on background colour
"), + BorderLayout.NORTH); + panel.add(col1); + panel.add(slider); + panel.add(col2); + + col1.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + Color col = JColorChooser.showDialog(bigpanel, + "Select Colour for Text", + sg.textColour); + if (col != null) + { + sg.textColour = col; + col1.setBackground(col); + col1.setForeground(col); + } + ap.repaint(); + } + }); + + col2.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + Color col = JColorChooser.showDialog(bigpanel, + "Select Colour for Text", + sg.textColour); + if (col != null) + { + sg.textColour2 = col; + col2.setBackground(col); + col2.setForeground(col); + } + ap.repaint(); + } + }); + + + slider.addChangeListener(new ChangeListener() + { + public void stateChanged(ChangeEvent evt) + { + sg.thresholdTextColour = slider.getValue(); + ap.repaint(); + } + }); + + int reply = JOptionPane.showInternalOptionDialog(Desktop.desktop, + bigpanel, + "Adjust Foreground Text Colour Threshold", + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE, + null, + null, null); + + if(reply==JOptionPane.CANCEL_OPTION) + { + sg.textColour = new Color(original1); + sg.textColour2 = new Color(original2); + sg.thresholdTextColour = thresh; + } + } }