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
\r
rc.setPoints(points, pca.getM().rows);\r
rc.repaint();\r
+\r
+ addKeyListener(rc);\r
+\r
}\r
catch(OutOfMemoryError er)\r
{ JOptionPane.showInternalMessageDialog(Desktop.desktop,\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 = new JRadioButtonMenuItem("All Views");\r
+\r
+ buttonGroup.add(itemf);\r
+\r
+ itemf.setSelected(rc.applyToAllViews);\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