+ protected void jpred_actionPerformed(ActionEvent e)\r
+{\r
+\r
+ JInternalFrame frame = new JInternalFrame();\r
+ if (viewport.getSelectionGroup() != null && viewport.getSelectionGroup().getSize()>0)\r
+ {\r
+ // JBPNote UGLY! To prettify, make SequenceGroup and Alignment conform to some common interface!\r
+ SequenceGroup seqs = viewport.getSelectionGroup();\r
+ if (seqs.getSize() == 1 || !viewport.alignment.isAligned())\r
+ {\r
+ JPredClient ct = new JPredClient( (SequenceI)\r
+ seqs.getSequenceAt(0));\r
+ }\r
+ else\r
+ {\r
+ int sz;\r
+ SequenceI[] msa = new SequenceI[sz=seqs.getSize()];\r
+ for (int i = 0; i < sz; i++)\r
+ {\r
+ msa[i] = (SequenceI) seqs.getSequenceAt(i);\r
+ }\r
+\r
+ JPredClient ct = new JPredClient(msa);\r
+ }\r
+\r
+ }\r
+ else\r
+ {\r
+ Vector seqs = viewport.getAlignment().getSequences();\r
+\r
+ if (seqs.size() == 1 || !viewport.alignment.isAligned())\r
+ {\r
+ JPredClient ct = new JPredClient( (SequenceI)\r
+ seqs.elementAt(0));\r
+ }\r
+ else\r
+ {\r
+ SequenceI[] msa = new SequenceI[seqs.size()];\r
+ for (int i = 0; i < seqs.size(); i++)\r
+ {\r
+ msa[i] = (SequenceI) seqs.elementAt(i);\r
+ }\r
+\r
+ JPredClient ct = new JPredClient(msa);\r
+ }\r
+\r
+ }\r
+ }\r
+\r
+ protected void LoadtreeMenuItem_actionPerformed(ActionEvent e) {\r
+ // Pick the tree file\r
+ JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.\r
+ getProperty("LAST_DIRECTORY"));\r
+ chooser.setFileView(new JalviewFileView());\r
+ chooser.setDialogTitle("Select a newick-like tree file");\r
+ chooser.setToolTipText("Load a tree file");\r
+ int value = chooser.showOpenDialog(null);\r
+ if (value == JalviewFileChooser.APPROVE_OPTION)\r
+ {\r
+ String choice = chooser.getSelectedFile().getPath();\r
+ jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);\r
+ TreePanel treepanel = null;\r
+ try\r
+ {\r
+ jalview.io.NewickFile fin = new jalview.io.NewickFile(choice, "File");\r
+ fin.parse();\r
+\r
+ if (fin.getTree() != null)\r
+ {\r
+ TreePanel tp = null;\r
+ tp = new TreePanel(viewport, viewport.getAlignment().getSequences(),\r
+ fin, "FromFile", choice);\r
+ Desktop.addInternalFrame(tp, title, 600, 500);\r
+ }\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ JOptionPane.showMessageDialog(Desktop.desktop,\r
+ "Problem reading tree file",\r
+ ex.getMessage(),\r
+ JOptionPane.WARNING_MESSAGE);\r
+ ex.printStackTrace();\r
+ }\r
+ }\r
+ }\r
+\r