int recty2;\r
float scalefactor = 1;\r
AlignViewport av;\r
+ AlignmentPanel ap;\r
boolean showLabels = false;\r
Color bgColour = Color.black;\r
+ boolean applyToAllViews = false;\r
\r
// Controller controller;\r
- public RotatableCanvas(AlignViewport av)\r
+ public RotatableCanvas(AlignmentPanel ap)\r
{\r
- this.av = av;\r
+ this.av = ap.av;\r
+ this.ap = ap;\r
+\r
+ addMouseWheelListener(new MouseWheelListener()\r
+ {\r
+ public void mouseWheelMoved(MouseWheelEvent e)\r
+ {\r
+ if (e.getWheelRotation() > 0)\r
+ {\r
+ scale = (float) (scale * 1.1);\r
+ repaint();\r
+ }\r
+\r
+ else\r
+ {\r
+ scale = (float) (scale * 0.9);\r
+ repaint();\r
+ }\r
+ }\r
+ });\r
+\r
}\r
\r
public void showLabels(boolean b)\r
ToolTipManager.sharedInstance().registerComponent(this);\r
ToolTipManager.sharedInstance().setInitialDelay(0);\r
ToolTipManager.sharedInstance().setDismissDelay(10000);\r
- PaintRefresher.Register(this, av.getSequenceSetId());\r
\r
prefsize = getPreferredSize();\r
orig = new float[npoint][3];\r
halfheight;\r
float z = sp.coord[1] - centre[2];\r
\r
- if (sp.sequence.getColor() == Color.black)\r
+ if (av.getSequenceColour(sp.sequence) == Color.black)\r
{\r
g.setColor(Color.white);\r
}\r
else\r
{\r
- g.setColor(sp.sequence.getColor());\r
+ g.setColor(av.getSequenceColour(sp.sequence));\r
}\r
\r
if (av.getSelectionGroup() != null)\r
\r
if (found != null)\r
{\r
- if (av.getSelectionGroup() != null)\r
+ AlignmentPanel[] aps = getAssociatedPanels();\r
+\r
+ for (int a = 0; a < aps.length; a++)\r
+ {\r
+ if (aps[a].av.getSelectionGroup() != null)\r
{\r
- av.getSelectionGroup().addOrRemove(found, true);\r
- PaintRefresher.Refresh(this, av.getSequenceSetId());\r
+ aps[a].av.getSelectionGroup().addOrRemove(found, true);\r
}\r
else\r
{\r
- av.setSelectionGroup(new SequenceGroup());\r
- av.getSelectionGroup().addOrRemove(found, true);\r
- av.getSelectionGroup().setEndRes(av.alignment.getWidth()-1);\r
+ aps[a].av.setSelectionGroup(new SequenceGroup());\r
+ aps[a].av.getSelectionGroup().addOrRemove(found, true);\r
+ aps[a].av.getSelectionGroup().setEndRes(\r
+ aps[a].av.alignment.getWidth() - 1);\r
}\r
+ }\r
+\r
+ PaintRefresher.Refresh(this, av.getSequenceSetId());\r
}\r
\r
repaint();\r
}\r
}\r
\r
- /* public boolean handleRubberbandEvent(RubberbandEvent evt) {\r
- System.out.println("Rubberband handler called in RotatableCanvas with " +\r
- evt.getBounds());\r
-\r
- Rubberband rb = (Rubberband)evt.getSource();\r
-\r
- // Clear the current selection (instance variable)\r
- //if ((rb.getModifiers() & Event.SHIFT_MASK) == 0) {\r
- // clearSelection();\r
- //}\r
-\r
- if (rb.getComponent() == this) {\r
- Rectangle bounds = evt.getBounds();\r
- rectSelect(bounds.x,bounds.y,bounds.x+bounds.width,bounds.y+bounds.height);\r
- }\r
-\r
- redrawneeded = true;\r
- paint(this.getGraphics());\r
-\r
- return true;\r
- }*/\r
+ AlignmentPanel[] getAssociatedPanels()\r
+ {\r
+ if (applyToAllViews)\r
+ {\r
+ return PaintRefresher.getAssociatedPanels(av.getSequenceSetId());\r
+ }\r
+ else\r
+ return new AlignmentPanel[]\r
+ { ap };\r
+ }\r
}\r