updated to jalview 2.1 and begun ArchiveClient/VamsasClient/VamsasStore updates.
[jalview.git] / src / jalview / gui / SliderPanel.java
index b830d5d..57125c6 100755 (executable)
-/*\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
-package jalview.gui;\r
-\r
-import jalview.datamodel.*;\r
-\r
-import jalview.jbgui.*;\r
-\r
-import jalview.schemes.*;\r
-\r
-import java.awt.event.*;\r
-\r
-import java.util.*;\r
-\r
-import javax.swing.*;\r
-import javax.swing.event.*;\r
-\r
-\r
-/**\r
- * DOCUMENT ME!\r
- *\r
- * @author $author$\r
- * @version $Revision$\r
- */\r
-public class SliderPanel extends GSliderPanel\r
-{\r
-    static JInternalFrame conservationSlider;\r
-    static JInternalFrame PIDSlider;\r
-    AlignmentPanel ap;\r
-    boolean forConservation = true;\r
-    ColourSchemeI cs;\r
-\r
-    /**\r
-     * Creates a new SliderPanel object.\r
-     *\r
-     * @param ap DOCUMENT ME!\r
-     * @param value DOCUMENT ME!\r
-     * @param forConserve DOCUMENT ME!\r
-     * @param cs DOCUMENT ME!\r
-     */\r
-    public SliderPanel(AlignmentPanel ap, int value, boolean forConserve,\r
-        ColourSchemeI cs)\r
-    {\r
-        this.ap = ap;\r
-        this.cs = cs;\r
-        forConservation = forConserve;\r
-        undoButton.setVisible(false);\r
-        applyButton.setVisible(false);\r
-\r
-        if (forConservation)\r
-        {\r
-            label.setText("Enter value to increase conservation visibility");\r
-            slider.setMinimum(0);\r
-            slider.setMaximum(100);\r
-        }\r
-        else\r
-        {\r
-            label.setText("Enter % identity above which to colour residues");\r
-            slider.setMinimum(0);\r
-            slider.setMaximum(100);\r
-        }\r
-\r
-        slider.addChangeListener(new ChangeListener()\r
-            {\r
-                public void stateChanged(ChangeEvent evt)\r
-                {\r
-                    valueField.setText(slider.getValue() + "");\r
-                    valueChanged(slider.getValue());\r
-                }\r
-            });\r
-\r
-        slider.setValue(value);\r
-        valueField.setText(value + "");\r
-    }\r
-\r
-\r
-    /**\r
-     * DOCUMENT ME!\r
-     *\r
-     * @param ap DOCUMENT ME!\r
-     * @param cs DOCUMENT ME!\r
-     * @param source DOCUMENT ME!\r
-     *\r
-     * @return DOCUMENT ME!\r
-     */\r
-    public static int setConservationSlider(AlignmentPanel ap,\r
-        ColourSchemeI cs, String source)\r
-    {\r
-        SliderPanel sp = null;\r
-\r
-        if (conservationSlider == null)\r
-        {\r
-            sp = new SliderPanel(ap, cs.getConservationInc(), true, cs);\r
-            conservationSlider = new JInternalFrame();\r
-            conservationSlider.setContentPane(sp);\r
-            conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);\r
-        }\r
-        else\r
-        {\r
-            sp = (SliderPanel) conservationSlider.getContentPane();\r
-            sp.cs = cs;\r
-        }\r
-\r
-        conservationSlider.setTitle("Conservation Colour Increment  (" +\r
-            source + ")");\r
-\r
-        if (ap.av.alignment.getGroups() != null)\r
-        {\r
-            sp.setAllGroupsCheckEnabled(true);\r
-        }\r
-        else\r
-        {\r
-            sp.setAllGroupsCheckEnabled(false);\r
-        }\r
-\r
-        return sp.getValue();\r
-    }\r
-\r
-    /**\r
-     * DOCUMENT ME!\r
-     */\r
-    public static void showConservationSlider()\r
-    {\r
-        try\r
-        {\r
-            PIDSlider.setClosed(true);\r
-            PIDSlider = null;\r
-        }\r
-        catch (Exception ex)\r
-        {\r
-        }\r
-\r
-        if (!conservationSlider.isVisible())\r
-        {\r
-            Desktop.addInternalFrame(conservationSlider,\r
-                conservationSlider.getTitle(), 420, 90, false);\r
-            conservationSlider.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()\r
-                {\r
-                    public void internalFrameClosed(\r
-                        javax.swing.event.InternalFrameEvent e)\r
-                    {\r
-                        conservationSlider = null;\r
-                    }\r
-                });\r
-            conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);\r
-        }\r
-    }\r
-\r
-    /**\r
-     * DOCUMENT ME!\r
-     *\r
-     * @param ap DOCUMENT ME!\r
-     * @param cs DOCUMENT ME!\r
-     * @param source DOCUMENT ME!\r
-     *\r
-     * @return DOCUMENT ME!\r
-     */\r
-    public static int setPIDSliderSource(AlignmentPanel ap, ColourSchemeI cs,\r
-        String source)\r
-    {\r
-        SliderPanel pid = null;\r
-\r
-        int threshold = cs.getThreshold();\r
-\r
-        if (PIDSlider == null)\r
-        {\r
-            pid = new SliderPanel(ap, threshold, false, cs);\r
-            PIDSlider = new JInternalFrame();\r
-            PIDSlider.setContentPane(pid);\r
-            PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);\r
-        }\r
-        else\r
-        {\r
-            pid = (SliderPanel) PIDSlider.getContentPane();\r
-            pid.cs = cs;\r
-        }\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
-     * DOCUMENT ME!\r
-     */\r
-    public static void showPIDSlider()\r
-    {\r
-        try\r
-        {\r
-            conservationSlider.setClosed(true);\r
-            conservationSlider = null;\r
-        }\r
-        catch (Exception ex)\r
-        {\r
-        }\r
-\r
-        if (!PIDSlider.isVisible())\r
-        {\r
-            Desktop.addInternalFrame(PIDSlider, PIDSlider.getTitle(), 420, 90,\r
-                false);\r
-            PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);\r
-            PIDSlider.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()\r
-                {\r
-                    public void internalFrameClosed(\r
-                        javax.swing.event.InternalFrameEvent e)\r
-                    {\r
-                        PIDSlider = null;\r
-                    }\r
-                });\r
-            PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);\r
-        }\r
-    }\r
-\r
-    /**\r
-     * DOCUMENT ME!\r
-     *\r
-     * @param i DOCUMENT ME!\r
-     */\r
-    public void valueChanged(int i)\r
-    {\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.isSelected())\r
-        {\r
-            allGroups = ap.av.alignment.getGroups();\r
-            groupIndex = allGroups.size() - 1;\r
-        }\r
-        else\r
-        {\r
-            toChange = cs;\r
-        }\r
-\r
-\r
-        while (groupIndex > -1)\r
-        {\r
-            if (allGroups != null)\r
-            {\r
-                toChange = ((SequenceGroup) allGroups.get(groupIndex)).cs;\r
-\r
-                if (toChange == null)\r
-                {\r
-                    groupIndex--;\r
-\r
-                    continue;\r
-                }\r
-            }\r
-\r
-            if (forConservation)\r
-            {\r
-                if (toChange.conservationApplied())\r
-                {\r
-                    toChange.setConservationInc(i);\r
-                }\r
-            }\r
-            else\r
-            {\r
-                toChange.setThreshold(i, ap.av.getIgnoreGapsConsensus());\r
-            }\r
-\r
-            groupIndex--;\r
-        }\r
-\r
-        ap.seqPanel.seqCanvas.repaint();\r
-    }\r
-\r
-    /**\r
-     * DOCUMENT ME!\r
-     *\r
-     * @param b DOCUMENT ME!\r
-     */\r
-    public void setAllGroupsCheckEnabled(boolean b)\r
-    {\r
-        allGroupsCheck.setEnabled(b);\r
-    }\r
-\r
-    /**\r
-     * DOCUMENT ME!\r
-     *\r
-     * @param e DOCUMENT ME!\r
-     */\r
-    public void valueField_actionPerformed(ActionEvent e)\r
-    {\r
-        try\r
-        {\r
-            int i = Integer.parseInt(valueField.getText());\r
-            slider.setValue(i);\r
-        }\r
-        catch (NumberFormatException ex)\r
-        {\r
-            valueField.setText(slider.getValue() + "");\r
-        }\r
-    }\r
-\r
-    /**\r
-     * DOCUMENT ME!\r
-     *\r
-     * @param value DOCUMENT ME!\r
-     */\r
-    public void setValue(int value)\r
-    {\r
-        slider.setValue(value);\r
-    }\r
-\r
-    /**\r
-     * DOCUMENT ME!\r
-     *\r
-     * @return DOCUMENT ME!\r
-     */\r
-    public int getValue()\r
-    {\r
-        return Integer.parseInt(valueField.getText());\r
-    }\r
-}\r
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+package jalview.gui;
+
+import jalview.datamodel.*;
+
+import jalview.jbgui.*;
+
+import jalview.schemes.*;
+
+import java.awt.event.*;
+
+import java.util.*;
+
+import javax.swing.*;
+import javax.swing.event.*;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision$
+ */
+public class SliderPanel extends GSliderPanel
+{
+    static JInternalFrame conservationSlider;
+    static JInternalFrame PIDSlider;
+    AlignmentPanel ap;
+    boolean forConservation = true;
+    ColourSchemeI cs;
+
+    /**
+     * Creates a new SliderPanel object.
+     *
+     * @param ap DOCUMENT ME!
+     * @param value DOCUMENT ME!
+     * @param forConserve DOCUMENT ME!
+     * @param cs DOCUMENT ME!
+     */
+    public SliderPanel(AlignmentPanel ap, int value, boolean forConserve,
+        ColourSchemeI cs)
+    {
+        this.ap = ap;
+        this.cs = cs;
+        forConservation = forConserve;
+        undoButton.setVisible(false);
+        applyButton.setVisible(false);
+
+        if (forConservation)
+        {
+            label.setText("Enter value to increase conservation visibility");
+            slider.setMinimum(0);
+            slider.setMaximum(100);
+        }
+        else
+        {
+            label.setText("Enter % identity above which to colour residues");
+            slider.setMinimum(0);
+            slider.setMaximum(100);
+        }
+
+        slider.addChangeListener(new ChangeListener()
+            {
+                public void stateChanged(ChangeEvent evt)
+                {
+                    valueField.setText(slider.getValue() + "");
+                    valueChanged(slider.getValue());
+                }
+            });
+
+        slider.setValue(value);
+        valueField.setText(value + "");
+    }
+
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param ap DOCUMENT ME!
+     * @param cs DOCUMENT ME!
+     * @param source DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public static int setConservationSlider(AlignmentPanel ap,
+        ColourSchemeI cs, String source)
+    {
+        SliderPanel sp = null;
+
+        if (conservationSlider == null)
+        {
+            sp = new SliderPanel(ap, cs.getConservationInc(), true, cs);
+            conservationSlider = new JInternalFrame();
+            conservationSlider.setContentPane(sp);
+            conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);
+        }
+        else
+        {
+            sp = (SliderPanel) conservationSlider.getContentPane();
+            sp.cs = cs;
+        }
+
+        conservationSlider.setTitle("Conservation Colour Increment  (" +
+            source + ")");
+
+        if (ap.av.alignment.getGroups() != null)
+        {
+            sp.setAllGroupsCheckEnabled(true);
+        }
+        else
+        {
+            sp.setAllGroupsCheckEnabled(false);
+        }
+
+        return sp.getValue();
+    }
+
+    /**
+     * DOCUMENT ME!
+     */
+    public static void showConservationSlider()
+    {
+        try
+        {
+            PIDSlider.setClosed(true);
+            PIDSlider = null;
+        }
+        catch (Exception ex)
+        {
+        }
+
+        if (!conservationSlider.isVisible())
+        {
+            Desktop.addInternalFrame(conservationSlider,
+                conservationSlider.getTitle(), 420, 90, false);
+            conservationSlider.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
+                {
+                    public void internalFrameClosed(
+                        javax.swing.event.InternalFrameEvent e)
+                    {
+                        conservationSlider = null;
+                    }
+                });
+            conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param ap DOCUMENT ME!
+     * @param cs DOCUMENT ME!
+     * @param source DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public static int setPIDSliderSource(AlignmentPanel ap, ColourSchemeI cs,
+        String source)
+    {
+        SliderPanel pid = null;
+
+        int threshold = cs.getThreshold();
+
+        if (PIDSlider == null)
+        {
+            pid = new SliderPanel(ap, threshold, false, cs);
+            PIDSlider = new JInternalFrame();
+            PIDSlider.setContentPane(pid);
+            PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
+        }
+        else
+        {
+            pid = (SliderPanel) PIDSlider.getContentPane();
+            pid.cs = cs;
+        }
+
+        PIDSlider.setTitle("Percentage Identity Threshold (" + source + ")");
+
+        if (ap.av.alignment.getGroups() != null)
+        {
+            pid.setAllGroupsCheckEnabled(true);
+        }
+        else
+        {
+            pid.setAllGroupsCheckEnabled(false);
+        }
+
+        return pid.getValue();
+    }
+
+    /**
+     * DOCUMENT ME!
+     */
+    public static void showPIDSlider()
+    {
+        try
+        {
+            conservationSlider.setClosed(true);
+            conservationSlider = null;
+        }
+        catch (Exception ex)
+        {
+        }
+
+        if (!PIDSlider.isVisible())
+        {
+            Desktop.addInternalFrame(PIDSlider, PIDSlider.getTitle(), 420, 90,
+                false);
+            PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
+            PIDSlider.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
+                {
+                    public void internalFrameClosed(
+                        javax.swing.event.InternalFrameEvent e)
+                    {
+                        PIDSlider = null;
+                    }
+                });
+            PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param i DOCUMENT ME!
+     */
+    public void valueChanged(int i)
+    {
+        if (cs == null)
+        {
+            return;
+        }
+
+        ColourSchemeI toChange = null;
+        Vector allGroups = null;
+        int groupIndex = 0;
+
+        if (allGroupsCheck.isSelected())
+        {
+            allGroups = ap.av.alignment.getGroups();
+            groupIndex = allGroups.size() - 1;
+        }
+        else
+        {
+            toChange = cs;
+        }
+
+
+        while (groupIndex > -1)
+        {
+            if (allGroups != null)
+            {
+                toChange = ((SequenceGroup) allGroups.get(groupIndex)).cs;
+
+                if (toChange == null)
+                {
+                    groupIndex--;
+
+                    continue;
+                }
+            }
+
+            if (forConservation)
+            {
+                if (toChange.conservationApplied())
+                {
+                    toChange.setConservationInc(i);
+                }
+            }
+            else
+            {
+                toChange.setThreshold(i, ap.av.getIgnoreGapsConsensus());
+            }
+
+            groupIndex--;
+        }
+
+        ap.seqPanel.seqCanvas.repaint();
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param b DOCUMENT ME!
+     */
+    public void setAllGroupsCheckEnabled(boolean b)
+    {
+        allGroupsCheck.setEnabled(b);
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param e DOCUMENT ME!
+     */
+    public void valueField_actionPerformed(ActionEvent e)
+    {
+        try
+        {
+            int i = Integer.parseInt(valueField.getText());
+            slider.setValue(i);
+        }
+        catch (NumberFormatException ex)
+        {
+            valueField.setText(slider.getValue() + "");
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param value DOCUMENT ME!
+     */
+    public void setValue(int value)
+    {
+        slider.setValue(value);
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public int getValue()
+    {
+        return Integer.parseInt(valueField.getText());
+    }
+
+    public void slider_mouseReleased(MouseEvent e)
+    {
+      if (ap.overviewPanel != null)
+        ap.overviewPanel.updateOverviewImage();
+    }
+
+}