return;
}
- new PCAPanel(viewport);
+ new PCAPanel(alignPanel);
}
PCA pca;\r
int top;\r
RotatableCanvas rc;\r
+ AlignmentPanel ap;\r
AlignViewport av;\r
AlignmentView seqstrings;\r
SequenceI [] seqs;\r
* @param av DOCUMENT ME!\r
* @param s DOCUMENT ME!\r
*/\r
- public PCAPanel(AlignViewport av)\r
+ public PCAPanel(AlignmentPanel ap)\r
{\r
- this.av = av;\r
+ this.av = ap.av;\r
+ this.ap = ap;\r
\r
boolean sameLength = true;\r
\r
400, 400);\r
\r
\r
- rc = new RotatableCanvas(av);\r
+\r
+ PaintRefresher.Register(this, av.getSequenceSetId());\r
+\r
+ rc = new RotatableCanvas(ap);\r
this.getContentPane().add(rc, BorderLayout.CENTER);\r
Thread worker = new Thread(this);\r
worker.start();\r
im.writeImage();\r
}\r
}\r
+\r
+\r
+ public void viewMenu_menuSelected()\r
+ {\r
+ buildAssociatedViewMenu();\r
+ }\r
+\r
+\r
+ void buildAssociatedViewMenu()\r
+ {\r
+ AlignmentPanel [] aps = PaintRefresher.getAssociatedPanels(av.getSequenceSetId());\r
+ if(aps.length==1 && rc.av ==aps[0].av)\r
+ {\r
+ associateViewsMenu.setVisible(false);\r
+ return;\r
+ }\r
+\r
+ associateViewsMenu.setVisible(true);\r
+\r
+ if( (viewMenu.getItem(viewMenu.getItemCount()-2) instanceof JMenuItem))\r
+ {\r
+ viewMenu.insertSeparator(viewMenu.getItemCount()-1);\r
+ }\r
+\r
+ associateViewsMenu.removeAll();\r
+\r
+\r
+ JRadioButtonMenuItem item;\r
+ ButtonGroup buttonGroup = new ButtonGroup();\r
+ int i, iSize = aps.length;\r
+ final PCAPanel thisPCAPanel = this;\r
+ for(i=0; i<iSize; i++)\r
+ {\r
+ final AlignmentPanel ap = aps[i];\r
+ item = new JRadioButtonMenuItem(ap.av.viewName, ap.av==rc.av );\r
+ buttonGroup.add(item);\r
+ item.addActionListener(new ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent evt)\r
+ {\r
+ rc.applyToAllViews = false;\r
+ rc.av = ap.av;\r
+ rc.ap = ap;\r
+ PaintRefresher.Register(thisPCAPanel, ap.av.getSequenceSetId());\r
+ }\r
+ });\r
+\r
+ associateViewsMenu.add(item);\r
+ }\r
+\r
+ final JRadioButtonMenuItem itemf =\r
+ new JRadioButtonMenuItem("All Views", rc.applyToAllViews);\r
+ buttonGroup.add(itemf);\r
+ itemf.addActionListener(new ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent evt)\r
+ {\r
+ rc.applyToAllViews = itemf.isSelected();\r
+ }\r
+ });\r
+ associateViewsMenu.add(itemf);\r
+\r
+ }\r
+\r
}\r
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
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
\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
import java.awt.*;\r
import java.awt.event.*;\r
import javax.swing.*;\r
+import javax.swing.event.MenuListener;\r
+import javax.swing.event.MenuEvent;\r
\r
public class GPCAPanel\r
extends JInternalFrame\r
JMenuItem png = new JMenuItem();\r
JMenuItem print = new JMenuItem();\r
JMenuItem outputValues = new JMenuItem();\r
- JMenu viewMenu = new JMenu();\r
+ protected JMenu viewMenu = new JMenu();\r
protected JCheckBoxMenuItem showLabels = new JCheckBoxMenuItem();\r
JMenuItem bgcolour = new JMenuItem();\r
JMenuItem originalSeqData = new JMenuItem();\r
+ protected JMenu associateViewsMenu = new JMenu();\r
\r
public GPCAPanel()\r
{\r
}\r
});\r
viewMenu.setText("View");\r
+ viewMenu.addMenuListener(new MenuListener()\r
+ {\r
+ public void menuSelected(MenuEvent e)\r
+ {\r
+ viewMenu_menuSelected();\r
+ }\r
+\r
+ public void menuDeselected(MenuEvent e)\r
+ {\r
+ }\r
+\r
+ public void menuCanceled(MenuEvent e)\r
+ {\r
+ }\r
+ });\r
showLabels.setText("Show Labels");\r
showLabels.addActionListener(new ActionListener()\r
{\r
originalSeqData_actionPerformed(e);\r
}\r
});\r
+ associateViewsMenu.setText("Associate Nodes With");\r
this.getContentPane().add(jPanel2, BorderLayout.SOUTH);\r
jPanel2.add(jLabel1, null);\r
jPanel2.add(xCombobox, null);\r
saveMenu.add(png);\r
viewMenu.add(showLabels);\r
viewMenu.add(bgcolour);\r
+ viewMenu.add(associateViewsMenu);\r
}\r
\r
protected void xCombobox_actionPerformed(ActionEvent e)\r
{\r
\r
}\r
+\r
+ public void viewMenu_menuSelected()\r
+ {\r
+\r
+ }\r
}\r