Multiple Views
[jalview.git] / src / jalview / gui / AlignmentPanel.java
index 94e2a84..bd87bb2 100755 (executable)
@@ -81,202 +81,27 @@ public class AlignmentPanel extends GAlignmentPanel
     annotationPanel = new AnnotationPanel(this);\r
     alabels = new AnnotationLabels(this);\r
 \r
-\r
     annotationScroller.setViewportView(annotationPanel);\r
     annotationSpaceFillerHolder.add(alabels, BorderLayout.CENTER);\r
 \r
     fontChanged();\r
 \r
     scalePanelHolder.add(scalePanel, BorderLayout.CENTER);\r
-    seqPanelHolder.add(seqPanel, BorderLayout.CENTER);\r
+   seqPanelHolder.add(seqPanel, BorderLayout.CENTER);\r
 \r
     setScrollValues(0, 0);\r
 \r
-    adjustAnnotationHeight();\r
-\r
     setAnnotationVisible(av.getShowAnnotation());\r
 \r
     hscroll.addAdjustmentListener(this);\r
     vscroll.addAdjustmentListener(this);\r
 \r
-    af.addKeyListener(new KeyAdapter()\r
-    {\r
-      public void keyPressed(KeyEvent evt)\r
-      {\r
-        if(av.cursorMode\r
-           && evt.getKeyCode()>=KeyEvent.VK_0\r
-           && evt.getKeyCode()<=KeyEvent.VK_9)\r
-        {\r
-          seqPanel.numberPressed(evt.getKeyChar());\r
-        }\r
-\r
-        switch (evt.getKeyCode())\r
-        {\r
-          case 27: // escape key\r
-            alignFrame.deselectAllSequenceMenuItem_actionPerformed(null);\r
-\r
-            break;\r
-\r
-          case KeyEvent.VK_DOWN:\r
-            if(av.cursorMode)\r
-            {\r
-              seqPanel.moveCursor(0,1);\r
-            }\r
-            else\r
-              alignFrame.moveSelectedSequences(false);\r
-            break;\r
-\r
-          case KeyEvent.VK_UP:\r
-            if (av.cursorMode)\r
-            {\r
-              seqPanel.moveCursor(0,-1);\r
-            }\r
-            else\r
-              alignFrame.moveSelectedSequences(true);\r
-            break;\r
-\r
-          case KeyEvent.VK_LEFT:\r
-            if(av.cursorMode)\r
-            {\r
-              seqPanel.moveCursor(-1,0);\r
-            }\r
-            break;\r
-\r
-          case KeyEvent.VK_RIGHT:\r
-            if (av.cursorMode)\r
-            {\r
-              seqPanel.moveCursor(1,0);\r
-            }\r
-            break;\r
-\r
-          case KeyEvent.VK_SPACE:\r
-            if(av.cursorMode)\r
-            {\r
-              seqPanel.insertGapAtCursor(evt.isControlDown()\r
-                                         || evt.isShiftDown()\r
-                                         || evt.isAltDown());\r
-            }\r
-            break;\r
-\r
-          case KeyEvent.VK_DELETE:\r
-          case KeyEvent.VK_BACK_SPACE:\r
-            if(!av.cursorMode)\r
-            {\r
-              alignFrame.cut_actionPerformed(null);\r
-            }\r
-            else\r
-              seqPanel.deleteGapAtCursor(evt.isControlDown()\r
-                                         || evt.isShiftDown()\r
-                                         || evt.isAltDown());\r
-\r
-            break;\r
-\r
-          case KeyEvent.VK_S:\r
-            if(av.cursorMode)\r
-            {\r
-              seqPanel.setCursorRow();\r
-            }\r
-            break;\r
-          case KeyEvent.VK_C:\r
-            if(av.cursorMode && !evt.isControlDown())\r
-            {\r
-              seqPanel.setCursorColumn();\r
-            }\r
-            break;\r
-          case KeyEvent.VK_P:\r
-            if(av.cursorMode)\r
-            {\r
-              seqPanel.setCursorPosition();\r
-            }\r
-            break;\r
-\r
-          case KeyEvent.VK_ENTER:\r
-          case KeyEvent.VK_COMMA:\r
-            if(av.cursorMode)\r
-            {\r
-              seqPanel.setCursorRowAndColumn();\r
-            }\r
-            break;\r
-\r
-          case KeyEvent.VK_Q:\r
-            if(av.cursorMode)\r
-            {\r
-              seqPanel.setSelectionAreaAtCursor(true);\r
-            }\r
-            break;\r
-          case KeyEvent.VK_M:\r
-            if(av.cursorMode)\r
-            {\r
-              seqPanel.setSelectionAreaAtCursor(false);\r
-            }\r
-            break;\r
-\r
-         case KeyEvent.VK_F2:\r
-           av.cursorMode = ! av.cursorMode;\r
-           alignFrame.statusBar.setText("Keyboard editing mode is "+\r
-               (av.cursorMode ? "on" : "off"));\r
-           if(av.cursorMode)\r
-           {\r
-             seqPanel.seqCanvas.cursorX = av.startRes;\r
-             seqPanel.seqCanvas.cursorY = av.startSeq;\r
-           }\r
-           seqPanel.seqCanvas.repaint();\r
-           break;\r
-\r
-          case KeyEvent.VK_F1:\r
-            try\r
-            {\r
-              ClassLoader cl = jalview.gui.Desktop.class.getClassLoader();\r
-              java.net.URL url = javax.help.HelpSet.findHelpSet(cl, "help/help");\r
-              javax.help.HelpSet hs = new javax.help.HelpSet(cl, url);\r
 \r
-              javax.help.HelpBroker hb = hs.createHelpBroker();\r
-              hb.setCurrentID("home");\r
-              hb.setDisplayed(true);\r
-            }\r
-            catch (Exception ex)\r
-            {\r
-              ex.printStackTrace();\r
-            }\r
-            break;\r
-          case KeyEvent.VK_H:\r
-          {\r
-            boolean toggleSeqs = !evt.isControlDown();\r
-            boolean toggleCols = !evt.isShiftDown();\r
-\r
-            boolean hide = false;\r
-\r
-            SequenceGroup sg = av.getSelectionGroup();\r
-            if(toggleSeqs)\r
-             {\r
-               if(sg != null && sg.getSize(false) != av.alignment.getHeight())\r
-               {\r
-                 alignFrame.hideSelSequences_actionPerformed(null);\r
-                 hide = true;\r
-               }\r
-               else if (!(toggleCols && av.colSel.getSelected().size() > 0))\r
-                 alignFrame.showAllSeqs_actionPerformed(null);\r
-             }\r
-\r
-             if (toggleCols)\r
-             {\r
-               if(av.colSel.getSelected().size() > 0)\r
-               {\r
-                 alignFrame.hideSelColumns_actionPerformed(null);\r
-                 if(!toggleSeqs)\r
-                   av.selectionGroup = sg;\r
-               }\r
-               else if(!hide)\r
-                 alignFrame.showAllColumns_actionPerformed(null);\r
-             }\r
-            break;\r
-          }\r
+    adjustAnnotationHeight();\r
 \r
-        }\r
-      }\r
-    });\r
   }\r
 \r
+\r
   /**\r
    * DOCUMENT ME!\r
    */\r
@@ -300,19 +125,6 @@ public class AlignmentPanel extends GAlignmentPanel
     idPanel.idCanvas.setPreferredSize(d);\r
     hscrollFillerPanel.setPreferredSize(d);\r
 \r
-    if (av.getWrapAlignment())\r
-    {\r
-      int max = av.alignment.getWidth() /\r
-          seqPanel.seqCanvas.getWrappedCanvasWidth(seqPanel.seqCanvas.getWidth());\r
-      vscroll.setMaximum(max);\r
-      vscroll.setUnitIncrement(1);\r
-      vscroll.setVisibleAmount(1);\r
-    }\r
-    else\r
-    {\r
-      setScrollValues(av.getStartRes(), av.getStartSeq());\r
-    }\r
-\r
     if (overviewPanel != null)\r
       overviewPanel.setBoxPosition();\r
 \r
@@ -453,34 +265,28 @@ public class AlignmentPanel extends GAlignmentPanel
 \r
   public void adjustAnnotationHeight()\r
   {\r
-    javax.swing.SwingUtilities.invokeLater(new Runnable()\r
+    if (alignFrame.getHeight() == 0)\r
     {\r
-      public void run()\r
-      {\r
-          while(alignFrame.getHeight()==0)\r
-          {\r
-            Thread.yield();\r
-          }\r
+      System.out.println("NEEDS FIXING");\r
+    }\r
 \r
-        int height = annotationPanel.adjustPanelHeight();\r
+    int height = annotationPanel.adjustPanelHeight();\r
 \r
-        if (height > alignFrame.getHeight() / 2)\r
-        {\r
-          height = alignFrame.getHeight() / 2;\r
-        }\r
+    if (height > alignFrame.getHeight() / 2)\r
+    {\r
+      height = alignFrame.getHeight() / 2;\r
+    }\r
 \r
-        annotationScroller.setPreferredSize(\r
-            new Dimension(annotationScroller.getWidth(),\r
-                          height));\r
+    annotationScroller.setPreferredSize(\r
+        new Dimension(annotationScroller.getWidth(),\r
+                      height));\r
 \r
-        annotationSpaceFillerHolder.setPreferredSize(new Dimension(\r
-            annotationSpaceFillerHolder.getWidth(),\r
-            height));\r
+    annotationSpaceFillerHolder.setPreferredSize(new Dimension(\r
+        annotationSpaceFillerHolder.getWidth(),\r
+        height));\r
 \r
-        annotationPanel.repaint();\r
-        repaint();\r
-      }\r
-    });\r
+    annotationPanel.repaint();\r
+    repaint();\r
   }\r
 \r
   /**\r
@@ -740,14 +546,17 @@ public class AlignmentPanel extends GAlignmentPanel
       if (av.hasHiddenColumns)\r
         maxwidth = av.getColumnSelection().findColumnPosition(maxwidth) - 1;\r
 \r
-      int max = maxwidth /\r
-          seqPanel.seqCanvas.getWrappedCanvasWidth(seqPanel.seqCanvas.getWidth()) +\r
-          1;\r
-\r
-\r
-      vscroll.setMaximum(max);\r
-      vscroll.setUnitIncrement(1);\r
-      vscroll.setVisibleAmount(1);\r
+      int canvasWidth = seqPanel.seqCanvas.getWrappedCanvasWidth(seqPanel.seqCanvas.getWidth());\r
+            if(canvasWidth>0)\r
+      {\r
+        int max = maxwidth /\r
+            seqPanel.seqCanvas.getWrappedCanvasWidth(seqPanel.seqCanvas.\r
+            getWidth()) +\r
+            1;\r
+        vscroll.setMaximum(max);\r
+        vscroll.setUnitIncrement(1);\r
+        vscroll.setVisibleAmount(1);\r
+      }\r
     }\r
     else\r
     {\r
@@ -757,7 +566,6 @@ public class AlignmentPanel extends GAlignmentPanel
     if( this.getVisibleRect().getBounds() == g.getClipBounds()\r
         && overviewPanel != null)\r
         overviewPanel.updateOverviewImage();\r
-\r
   }\r
 \r
   /**\r