+/*\r
+ * Jalview - A Sequence Alignment Editor and Viewer\r
+ * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License\r
+ * as published by the Free Software Foundation; either version 2\r
+ * of the License, or (at your option) any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\r
+ */\r
+\r
package jalview.appletgui;\r
\r
-import jalview.jbappletgui.*;\r
-import jalview.schemes.*;\r
-import jalview.datamodel.*;\r
+import java.util.*;\r
+\r
import java.awt.*;\r
import java.awt.event.*;\r
-import java.util.*;\r
\r
-public class SliderPanel extends GSliderPanel\r
+import jalview.datamodel.*;\r
+import jalview.schemes.*;\r
+\r
+public class SliderPanel extends Panel implements ActionListener, AdjustmentListener\r
{\r
AlignmentPanel ap;\r
boolean forConservation = true;\r
static Frame conservationSlider;\r
static Frame PIDSlider;\r
\r
- public static int setConservationSlider(AlignmentPanel ap, ColourSchemeI cs, String source)\r
+ public static int setConservationSlider(AlignmentPanel ap, ColourSchemeI cs,\r
+ String source)\r
{\r
SliderPanel sp = null;\r
- ConservationColourScheme ccs = (ConservationColourScheme)cs;\r
\r
- if(conservationSlider == null)\r
+ if (conservationSlider == null)\r
{\r
- sp = new SliderPanel(ap, ccs.inc, true, cs);\r
+ sp = new SliderPanel(ap, cs.getConservationInc(), true, cs);\r
conservationSlider = new Frame();\r
conservationSlider.add(sp);\r
}\r
else\r
{\r
- sp = (SliderPanel)conservationSlider.getComponent(0);\r
- sp.cs = cs;\r
+ sp = (SliderPanel) conservationSlider.getComponent(0);\r
+ sp.cs = cs;\r
}\r
\r
- conservationSlider.setTitle("Conservation Colour Increment ("+source+")");\r
- if(ap.av.alignment.getGroups()!=null)\r
- sp.setAllGroupsCheckEnabled( true );\r
+ conservationSlider.setTitle("Conservation Colour Increment (" + source +\r
+ ")");\r
+ if (ap.av.alignment.getGroups() != null)\r
+ {\r
+ sp.setAllGroupsCheckEnabled(true);\r
+ }\r
else\r
- sp.setAllGroupsCheckEnabled( false);\r
+ {\r
+ sp.setAllGroupsCheckEnabled(false);\r
+ }\r
\r
return sp.getValue();\r
}\r
\r
public static void showConservationSlider()\r
{\r
- try{\r
+ try\r
+ {\r
PIDSlider.setVisible(false);\r
PIDSlider = null;\r
- }catch(Exception ex){}\r
-\r
+ }\r
+ catch (Exception ex)\r
+ {}\r
\r
- if(!conservationSlider.isVisible())\r
+ if (!conservationSlider.isVisible())\r
{\r
- jalview.bin.JalviewLite.addFrame(conservationSlider, conservationSlider.getTitle(), 420, 100);\r
+ jalview.bin.JalviewLite.addFrame(conservationSlider,\r
+ conservationSlider.getTitle(), 420, 100);\r
conservationSlider.addWindowListener(new WindowAdapter()\r
{\r
public void windowClosing(WindowEvent e)\r
\r
}\r
\r
- public static int setPIDSliderSource(AlignmentPanel ap, ColourSchemeI cs, String source)\r
- {\r
- SliderPanel pid = null;\r
- if(PIDSlider == null)\r
- {\r
- pid = new SliderPanel(ap, 50, false, cs);\r
- PIDSlider = new Frame();\r
- PIDSlider.add(pid);\r
- }\r
- else\r
- {\r
- pid = (SliderPanel)PIDSlider.getComponent(0);\r
- pid.cs = cs;\r
- }\r
- PIDSlider.setTitle("Percentage Identity Threshold ("+source+")");\r
-\r
- if (ap.av.alignment.getGroups() != null)\r
- pid.setAllGroupsCheckEnabled(true);\r
- else\r
- pid.setAllGroupsCheckEnabled(false);\r
-\r
- return pid.getValue();\r
-\r
- }\r
-\r
- public static void showPIDSlider()\r
- {\r
- try{\r
- conservationSlider.setVisible(false);\r
- conservationSlider = null;\r
- }catch(Exception ex){}\r
-\r
- if(!PIDSlider.isVisible())\r
- {\r
- jalview.bin.JalviewLite.addFrame(PIDSlider, PIDSlider.getTitle(), 420, 100);\r
+ public static int setPIDSliderSource(AlignmentPanel ap, ColourSchemeI cs,\r
+ String source)\r
+ {\r
+ SliderPanel pid = null;\r
+ if (PIDSlider == null)\r
+ {\r
+ pid = new SliderPanel(ap, 50, false, cs);\r
+ PIDSlider = new Frame();\r
+ PIDSlider.add(pid);\r
+ }\r
+ else\r
+ {\r
+ pid = (SliderPanel) PIDSlider.getComponent(0);\r
+ pid.cs = cs;\r
+ }\r
+ PIDSlider.setTitle("Percentage Identity Threshold (" + source + ")");\r
+\r
+ if (ap.av.alignment.getGroups() != null)\r
+ {\r
+ pid.setAllGroupsCheckEnabled(true);\r
+ }\r
+ else\r
+ {\r
+ pid.setAllGroupsCheckEnabled(false);\r
+ }\r
+\r
+ return pid.getValue();\r
+\r
+ }\r
+\r
+ public static void showPIDSlider()\r
+ {\r
+ try\r
+ {\r
+ conservationSlider.setVisible(false);\r
+ conservationSlider = null;\r
+ }\r
+ catch (Exception ex)\r
+ {}\r
+\r
+ if (!PIDSlider.isVisible())\r
+ {\r
+ jalview.bin.JalviewLite.addFrame(PIDSlider, PIDSlider.getTitle(), 420,\r
+ 100);\r
PIDSlider.addWindowListener(new WindowAdapter()\r
{\r
public void windowClosing(WindowEvent e)\r
});\r
}\r
\r
- }\r
-\r
+ }\r
\r
- public SliderPanel(AlignmentPanel ap, int value, boolean forConserve, ColourSchemeI cs)\r
+ public SliderPanel(AlignmentPanel ap, int value, boolean forConserve,\r
+ ColourSchemeI cs)\r
{\r
+ try {\r
+ jbInit();\r
+ } catch (Exception e) {\r
+ e.printStackTrace();\r
+ }\r
this.ap = ap;\r
this.cs = cs;\r
forConservation = forConserve;\r
undoButton.setVisible(false);\r
applyButton.setVisible(false);\r
- if(forConservation)\r
+ if (forConservation)\r
{\r
label.setText("Modify conservation visibility");\r
slider.setMinimum(0);\r
- slider.setMaximum(50+slider.getVisibleAmount());\r
+ slider.setMaximum(50 + slider.getVisibleAmount());\r
slider.setUnitIncrement(1);\r
}\r
else\r
{\r
label.setText("Colour residues above % occurence");\r
slider.setMinimum(0);\r
- slider.setMaximum(100+slider.getVisibleAmount());\r
+ slider.setMaximum(100 + slider.getVisibleAmount());\r
slider.setBlockIncrement(1);\r
}\r
\r
-\r
- slider.addAdjustmentListener( new AdjustmentListener()\r
- {\r
- public void adjustmentValueChanged(AdjustmentEvent evt)\r
- {\r
- valueField.setText( slider.getValue()+"" );\r
- valueChanged( slider.getValue() );\r
- }\r
- });\r
+ slider.addAdjustmentListener(this);\r
\r
slider.setValue(value);\r
- valueField.setText(value+"");\r
+ valueField.setText(value + "");\r
}\r
\r
public void valueChanged(int i)\r
{\r
- if(cs == null)\r
+ if (cs == null)\r
+ {\r
return;\r
+ }\r
\r
ColourSchemeI toChange = null;\r
Vector allGroups = null;\r
int groupIndex = 0;\r
\r
- if(allGroupsCheck.getState())\r
+ if (allGroupsCheck.getState())\r
{\r
allGroups = ap.av.alignment.getGroups();\r
- groupIndex = allGroups.size()-1;\r
+ groupIndex = allGroups.size() - 1;\r
}\r
else\r
+ {\r
toChange = cs;\r
+ }\r
\r
-\r
- while( groupIndex > -1 )\r
+ while (groupIndex > -1)\r
{\r
- if(allGroups!=null)\r
- toChange = ((SequenceGroup)allGroups.elementAt(groupIndex)).cs;\r
+ if (allGroups != null)\r
+ {\r
+ toChange = ( (SequenceGroup) allGroups.elementAt(groupIndex)).cs;\r
+ }\r
\r
if (forConservation)\r
{\r
- if (toChange instanceof ConservationColourScheme)\r
- ( (ConservationColourScheme) toChange).inc = i;\r
+ toChange.setConservationInc(i);\r
}\r
else\r
{\r
- ( (ResidueColourScheme) toChange).setThreshold(i);\r
+ toChange.setThreshold(i, ap.av.getIgnoreGapsConsensus());\r
}\r
\r
groupIndex--;\r
allGroupsCheck.setEnabled(b);\r
}\r
\r
+ public void actionPerformed(ActionEvent evt)\r
+ {\r
+ if(evt.getSource()==applyButton)\r
+ applyButton_actionPerformed();\r
+ else if(evt.getSource()==undoButton)\r
+ undoButton_actionPerformed();\r
+ else if(evt.getSource()==valueField)\r
+ valueField_actionPerformed();\r
+ }\r
+\r
+ public void adjustmentValueChanged(AdjustmentEvent evt)\r
+ {\r
+ valueField.setText(slider.getValue() + "");\r
+ valueChanged(slider.getValue());\r
+ }\r
+\r
\r
- public void valueField_actionPerformed(ActionEvent e)\r
+ public void valueField_actionPerformed()\r
{\r
- try{\r
+ try\r
+ {\r
int i = Integer.parseInt(valueField.getText());\r
slider.setValue(i);\r
}\r
- catch(Exception ex)\r
+ catch (Exception ex)\r
{\r
- valueField.setText( slider.getValue()+"" );\r
+ valueField.setText(slider.getValue() + "");\r
}\r
}\r
\r
{\r
slider.setValue(value);\r
}\r
+\r
public int getValue()\r
{\r
return Integer.parseInt(valueField.getText());\r
}\r
\r
+ // this is used for conservation colours, PID colours and redundancy threshold\r
+ protected Scrollbar slider = new Scrollbar();\r
+ protected TextField valueField = new TextField();\r
+ protected Label label = new Label();\r
+ Panel jPanel1 = new Panel();\r
+ Panel jPanel2 = new Panel();\r
+ protected Button applyButton = new Button();\r
+ protected Button undoButton = new Button();\r
+ FlowLayout flowLayout1 = new FlowLayout();\r
+ protected Checkbox allGroupsCheck = new Checkbox();\r
+ BorderLayout borderLayout1 = new BorderLayout();\r
+ BorderLayout borderLayout2 = new BorderLayout();\r
+ FlowLayout flowLayout2 = new FlowLayout();\r
+\r
+ private void jbInit() throws Exception {\r
+ this.setLayout(borderLayout2);\r
+\r
+ // slider.setMajorTickSpacing(10);\r
+ // slider.setMinorTickSpacing(1);\r
+ // slider.setPaintTicks(true);\r
+ slider.setBackground(Color.white);\r
+ slider.setFont(new java.awt.Font("Verdana", 0, 11));\r
+ slider.setOrientation(0);\r
+ valueField.setFont(new java.awt.Font("Verdana", 0, 11));\r
+ valueField.setText(" ");\r
+ valueField.addActionListener(this);\r
+ label.setFont(new java.awt.Font("Verdana", 0, 11));\r
+ label.setText("set this label text");\r
+ jPanel1.setLayout(borderLayout1);\r
+ jPanel2.setLayout(flowLayout1);\r
+ applyButton.setFont(new java.awt.Font("Verdana", 0, 11));\r
+ applyButton.setLabel("Apply");\r
+ applyButton.addActionListener(this);\r
+ undoButton.setEnabled(false);\r
+ undoButton.setFont(new java.awt.Font("Verdana", 0, 11));\r
+ undoButton.setLabel("Undo");\r
+ undoButton.addActionListener(this);\r
+ allGroupsCheck.setEnabled(false);\r
+ allGroupsCheck.setFont(new java.awt.Font("Verdana", 0, 11));\r
+ allGroupsCheck.setLabel("Apply threshold to all groups");\r
+ allGroupsCheck.setName("Apply to all Groups");\r
+ this.setBackground(Color.white);\r
+ this.setForeground(Color.black);\r
+ jPanel2.add(label, null);\r
+ jPanel2.add(applyButton, null);\r
+ jPanel2.add(undoButton, null);\r
+ jPanel2.add(allGroupsCheck);\r
+ jPanel1.add(valueField, java.awt.BorderLayout.EAST);\r
+ jPanel1.add(slider, java.awt.BorderLayout.CENTER);\r
+ this.add(jPanel1, java.awt.BorderLayout.SOUTH);\r
+ this.add(jPanel2, java.awt.BorderLayout.CENTER);\r
+ }\r
+\r
+ protected void applyButton_actionPerformed()\r
+ {\r
+ }\r
\r
+ protected void undoButton_actionPerformed()\r
+ {\r
+ }\r
}\r