JAL-2480 move ContiguousI and Range to jalview.datamodel
[jalview.git] / src / jalview / gui / OverviewPanel.java
index 8a416bd..a6c3960 100755 (executable)
@@ -23,8 +23,8 @@ package jalview.gui;
 import jalview.util.MessageManager;
 import jalview.util.Platform;
 import jalview.viewmodel.OverviewDimensions;
-import jalview.viewmodel.OverviewDimensionsAllVisible;
-import jalview.viewmodel.OverviewDimensionsWithHidden;
+import jalview.viewmodel.OverviewDimensionsHideHidden;
+import jalview.viewmodel.OverviewDimensionsShowHidden;
 
 import java.awt.BorderLayout;
 import java.awt.Dimension;
@@ -36,7 +36,7 @@ import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseMotionAdapter;
 
-import javax.swing.JMenuItem;
+import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
 import javax.swing.SwingUtilities;
@@ -58,6 +58,8 @@ public class OverviewPanel extends JPanel implements Runnable
 
   private AlignmentPanel ap;
 
+  private JCheckBoxMenuItem displayToggle;
+
   private boolean showHidden = true;
 
   /**
@@ -71,7 +73,7 @@ public class OverviewPanel extends JPanel implements Runnable
     this.av = alPanel.av;
     this.ap = alPanel;
 
-    od = new OverviewDimensionsWithHidden(av.getRanges(),
+    od = new OverviewDimensionsShowHidden(av.getRanges(),
             (av.isShowAnnotation() && av
                     .getAlignmentConservationAnnotation() != null));
 
@@ -101,8 +103,8 @@ public class OverviewPanel extends JPanel implements Runnable
                 && !av.getWrapAlignment())
         {
           od.updateViewportFromMouse(evt.getX(), evt.getY(), av
-                  .getAlignment().getHiddenSequences(), av
-                  .getColumnSelection(), av.getRanges());
+                  .getAlignment().getHiddenSequences(), av.getAlignment()
+                  .getHiddenColumns());
           ap.setScrollValues(od.getScrollCol(), od.getScrollRow());
         }
       }
@@ -123,8 +125,8 @@ public class OverviewPanel extends JPanel implements Runnable
         else if (!av.getWrapAlignment())
         {
           od.updateViewportFromMouse(evt.getX(), evt.getY(), av
-                  .getAlignment().getHiddenSequences(), av
-                  .getColumnSelection(), av.getRanges());
+                  .getAlignment().getHiddenSequences(), av.getAlignment()
+                  .getHiddenColumns());
           ap.setScrollValues(od.getScrollCol(), od.getScrollRow());
         }
       }
@@ -156,28 +158,34 @@ public class OverviewPanel extends JPanel implements Runnable
       {
         // switch on/off the hidden columns view
         toggleHiddenColumns();
+        displayToggle.setSelected(showHidden);
       }
     };
-    JMenuItem item;
-    popup.add(item = new JMenuItem(MessageManager
-            .getString("label.togglehidden")));
-    item.addActionListener(menuListener);
+    displayToggle = new JCheckBoxMenuItem(
+            MessageManager.getString("label.togglehidden"));
+    displayToggle.setEnabled(true);
+    displayToggle.setSelected(showHidden);
+    popup.add(displayToggle);
+    displayToggle.addActionListener(menuListener);
     popup.show(this, e.getX(), e.getY());
   }
 
+  /*
+   * Toggle overview display between showing hidden columns and hiding hidden columns
+   */
   private void toggleHiddenColumns()
   {
     if (showHidden)
     {
       showHidden = false;
-      od = new OverviewDimensionsAllVisible(av.getRanges(),
+      od = new OverviewDimensionsHideHidden(av.getRanges(),
               (av.isShowAnnotation() && av
                       .getAlignmentConservationAnnotation() != null));
     }
     else
     {
       showHidden = true;
-      od = new OverviewDimensionsWithHidden(av.getRanges(),
+      od = new OverviewDimensionsShowHidden(av.getRanges(),
               (av.isShowAnnotation() && av
                       .getAlignmentConservationAnnotation() != null));
     }
@@ -195,7 +203,7 @@ public class OverviewPanel extends JPanel implements Runnable
       od.setWidth(getWidth());
       od.setHeight(getHeight());
     }
-
+    
     setPreferredSize(new Dimension(od.getWidth(), od.getHeight()));
 
     if (oviewCanvas.restartDraw())
@@ -226,8 +234,8 @@ public class OverviewPanel extends JPanel implements Runnable
    */
   public void setBoxPosition()
   {
-    od.setBoxPosition(av.getAlignment()
-            .getHiddenSequences(), av.getColumnSelection(), av.getRanges());
+    od.setBoxPosition(av.getAlignment().getHiddenSequences(), av
+            .getAlignment().getHiddenColumns());
     repaint();
   }
 }