\r
import java.util.Vector;\r
import jalview.io.FormatAdapter;\r
-import javax.swing.event.ChangeListener;\r
-import javax.swing.event.ChangeEvent;\r
\r
\r
/**\r
add(menuItem);\r
\r
if(ap.av.getSelectionGroup() !=null\r
- && ap.av.getSelectionGroup().getSize(false)>1)\r
+ && ap.av.getSelectionGroup().getSize()>1)\r
{\r
menuItem = new JMenuItem("Represent Group with " + seq.getName());\r
menuItem.addActionListener(new java.awt.event.ActionListener()\r
protected void clustalColour_actionPerformed(ActionEvent e)\r
{\r
SequenceGroup sg = getGroup();\r
- sg.cs = new ClustalxColourScheme(sg.getSequences(true),\r
+ sg.cs = new ClustalxColourScheme(sg.getSequences(ap.av.hiddenRepSequences),\r
ap.av.alignment.getWidth());\r
refresh();\r
}\r
if (abovePIDColour.isSelected())\r
{\r
sg.cs.setConsensus(AAFrequency.calculate(\r
- sg.getSequences(true), sg.getStartRes(),\r
+ sg.getSequences(ap.av.hiddenRepSequences), sg.getStartRes(),\r
sg.getEndRes() + 1));\r
\r
int threshold = SliderPanel.setPIDSliderSource(ap, sg.cs,\r
{\r
SequenceGroup sg = getGroup();\r
sg.cs = new PIDColourScheme();\r
- sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true),\r
+ sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(ap.av.hiddenRepSequences),\r
sg.getStartRes(),\r
sg.getEndRes() + 1));\r
refresh();\r
\r
sg.cs = new Blosum62ColourScheme();\r
\r
- sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true),\r
+ sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(ap.av.hiddenRepSequences),\r
sg.getStartRes(),\r
sg.getEndRes() + 1));\r
\r
{\r
Conservation c = new Conservation("Group",\r
ResidueProperties.propHash, 3,\r
- sg.getSequences(true),\r
+ sg.getSequences(ap.av.hiddenRepSequences),\r
sg.getStartRes(),\r
sg.getEndRes() + 1);\r
\r
void hideSequences(boolean representGroup)\r
{\r
SequenceGroup sg = ap.av.getSelectionGroup();\r
- if(sg==null || sg.getSize(false)<1)\r
+ if(sg==null || sg.getSize()<1)\r
{\r
ap.av.hideSequence(new SequenceI[]{sequence});\r
return;\r
}\r
\r
- int gsize = sg.getSize(false);\r
- SequenceI [] hseqs;\r
+ ap.av.setSelectionGroup(null);\r
\r
- hseqs = new SequenceI[ representGroup ? gsize-1 : gsize ];\r
+ if (representGroup)\r
+ {\r
+ ap.av.hideRepSequences(sequence, sg);\r
\r
- int index = 0;\r
- for(int i=0; i<gsize; i++)\r
- {\r
- if(representGroup && sg.getSequenceAt(i)!=sequence)\r
- {\r
- sequence.addHiddenSequence(sg.getSequenceAt(i));\r
- hseqs[index++] = sg.getSequenceAt(i);\r
- }\r
- else if(!representGroup)\r
- {\r
- hseqs[index++] = sg.getSequenceAt(i);\r
- }\r
- }\r
+ return;\r
+ }\r
\r
- ap.av.hideSequence(hseqs);\r
+ int gsize = sg.getSize();\r
+ SequenceI[] hseqs;\r
\r
- ap.av.setSelectionGroup(null);\r
+ hseqs = new SequenceI[gsize];\r
+\r
+ int index = 0;\r
+ for (int i = 0; i < gsize; i++)\r
+ {\r
+ hseqs[index++] = sg.getSequenceAt(i);\r
+ }\r
+\r
+ ap.av.hideSequence(hseqs);\r
}\r
\r
public void copy_actionPerformed(ActionEvent e)\r
}\r
\r
ChangeCaseCommand caseCommand = new ChangeCaseCommand(\r
- description, sg.getSequencesAsArray(true), startEnd, caseChange\r
+ description, sg.getSequencesAsArray(ap.av.hiddenRepSequences),\r
+ startEnd, caseChange\r
);\r
\r
ap.alignFrame.addHistoryItem(caseCommand);\r
if(sg==null)\r
return;\r
\r
- int gSize= sg.getSize(false);\r
+ int gSize= sg.getSize();\r
SequenceI [] seqs = new SequenceI[gSize];\r
SequenceFeature [] features = new SequenceFeature[gSize];\r
\r
\r
public void textColour_actionPerformed(ActionEvent e)\r
{\r
- final SequenceGroup sg = getGroup();\r
-\r
- int original1 = sg.textColour.getRGB();\r
- int original2 = sg.textColour2.getRGB();\r
- int thresh = sg.thresholdTextColour;\r
- final JSlider slider = new JSlider(0, 750,sg.thresholdTextColour);\r
- final JButton col1 = new JButton("DARK");\r
- col1.setBackground(sg.textColour);\r
- col1.setForeground(sg.textColour);\r
- final JButton col2 = new JButton("LIGHT");\r
- col2.setBackground(sg.textColour2);\r
- col2.setForeground(sg.textColour2);\r
- final JPanel bigpanel = new JPanel(new BorderLayout());\r
- JPanel panel = new JPanel();\r
- bigpanel.add(panel, BorderLayout.CENTER);\r
- bigpanel.add(new JLabel(\r
- "<html><i>Select a dark and light text colour, then set the threshold to"\r
- +"<br>switch between colours, based on background colour</i></html>"),\r
- BorderLayout.NORTH);\r
- panel.add(col1);\r
- panel.add(slider);\r
- panel.add(col2);\r
-\r
- col1.addActionListener(new ActionListener()\r
- {\r
- public void actionPerformed(ActionEvent e)\r
- {\r
- Color col = JColorChooser.showDialog(bigpanel,\r
- "Select Colour for Text",\r
- sg.textColour);\r
- if (col != null)\r
- {\r
- sg.textColour = col;\r
- col1.setBackground(col);\r
- col1.setForeground(col);\r
- }\r
- ap.repaint();\r
- }\r
- });\r
-\r
- col2.addActionListener(new ActionListener()\r
- {\r
- public void actionPerformed(ActionEvent e)\r
- {\r
- Color col = JColorChooser.showDialog(bigpanel,\r
- "Select Colour for Text",\r
- sg.textColour);\r
- if (col != null)\r
- {\r
- sg.textColour2 = col;\r
- col2.setBackground(col);\r
- col2.setForeground(col);\r
- }\r
- ap.repaint();\r
- }\r
- });\r
-\r
-\r
- slider.addChangeListener(new ChangeListener()\r
- {\r
- public void stateChanged(ChangeEvent evt)\r
- {\r
- sg.thresholdTextColour = slider.getValue();\r
- ap.repaint();\r
- }\r
- });\r
-\r
- int reply = JOptionPane.showInternalOptionDialog(Desktop.desktop,\r
- bigpanel,\r
- "Adjust Foreground Text Colour Threshold",\r
- JOptionPane.OK_CANCEL_OPTION,\r
- JOptionPane.QUESTION_MESSAGE,\r
- null,\r
- null, null);\r
-\r
- if(reply==JOptionPane.CANCEL_OPTION)\r
- {\r
- sg.textColour = new Color(original1);\r
- sg.textColour2 = new Color(original2);\r
- sg.thresholdTextColour = thresh;\r
- }\r
+ SequenceGroup sg = getGroup();\r
+ if (sg != null)\r
+ new TextColourChooser().chooseColour(ap, sg);\r
}\r
}\r