/*\r
* Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
*\r
* This program is free software; you can redistribute it and/or\r
* modify it under the terms of the GNU General Public License\r
import jalview.datamodel.*;\r
import jalview.io.*;\r
\r
-public class CutAndPasteTransfer extends Panel\r
+public class CutAndPasteTransfer extends Panel implements ActionListener, MouseListener\r
{\r
- jalview.bin.JalviewLite applet;\r
-\r
boolean pdbImport = false;\r
+ boolean treeImport = false;\r
Sequence seq;\r
- SeqCanvas seqcanvas;\r
+ AlignFrame alignFrame;\r
\r
- public CutAndPasteTransfer(boolean forImport, jalview.bin.JalviewLite mainApplet)\r
+ public CutAndPasteTransfer(boolean forImport, AlignFrame alignFrame)\r
{\r
try {\r
jbInit();\r
e.printStackTrace();\r
}\r
\r
- applet = mainApplet;\r
+ this.alignFrame = alignFrame;\r
\r
if (!forImport)\r
{\r
}\r
}\r
\r
- public void setPDBImport(Sequence seq, SeqCanvas seqcanvas)\r
- {\r
- this.seq = seq;\r
- this.seqcanvas = seqcanvas;\r
- pdbImport = true;\r
- }\r
-\r
-\r
public String getText()\r
{\r
return textarea.getText();\r
textarea.setText(text);\r
}\r
\r
- protected void ok_actionPerformed(ActionEvent e)\r
+ public void setPDBImport(Sequence seq)\r
+ {\r
+ this.seq = seq;\r
+ pdbImport = true;\r
+ }\r
+\r
+\r
+ public void actionPerformed(ActionEvent evt)\r
+ {\r
+ if(evt.getSource()==ok)\r
+ ok_actionPerformed();\r
+ else if(evt.getSource()==cancel)\r
+ cancel_actionPerformed();\r
+ }\r
+\r
+ protected void ok_actionPerformed()\r
{\r
String text = getText();\r
int length = text.length();\r
\r
if(pdbImport)\r
{\r
- new MCview.AppletPDBViewer(text, "Paste", seq, seqcanvas);\r
+ new MCview.AppletPDBViewer(text, AppletFormatAdapter.PASTE,\r
+ seq,\r
+ alignFrame.getSeqcanvas());\r
}\r
- else\r
+ else if(treeImport)\r
{\r
- SequenceI[] sequences = null;\r
+ try{\r
+ jalview.io.NewickFile fin = new jalview.io.NewickFile(textarea.getText(),\r
+ "Paste");\r
\r
- String format = IdentifyFile.Identify(text, "Paste");\r
- sequences = new AppletFormatAdapter().readFile(text, "Paste", format);\r
+ fin.parse();\r
+ if(fin.getTree()!=null)\r
+ alignFrame.loadTree(fin, "Pasted tree file");\r
\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ textarea.setText("Could not parse Newick file!\n" + ex);\r
+ return;\r
+ }\r
+ }\r
+ else if(alignFrame!=null)\r
+ {\r
+ SequenceI[] sequences = null;\r
+\r
+ String format = new IdentifyFile().Identify(text, AppletFormatAdapter.PASTE);\r
+ try{\r
+ sequences = new AppletFormatAdapter().readFile(text, AppletFormatAdapter.PASTE, format);\r
+ }catch(java.io.IOException ex)\r
+ {\r
+ ex.printStackTrace();\r
+ }\r
if (sequences != null)\r
{\r
- AlignFrame af = new AlignFrame(new Alignment(sequences), applet,\r
- "Cut & Paste input - " + format);\r
+ AlignFrame af = new AlignFrame(new Alignment(sequences), alignFrame.viewport.applet,\r
+ "Cut & Paste input - " + format,\r
+ false);\r
af.statusBar.setText("Successfully pasted alignment file");\r
}\r
}\r
\r
+ if(this.getParent() instanceof Frame)\r
((Frame)this.getParent()).setVisible(false);\r
+ else\r
+ ((Dialog)this.getParent()).setVisible(false);\r
}\r
\r
- protected void cancel_actionPerformed(ActionEvent e)\r
+ protected void cancel_actionPerformed()\r
{\r
- ((Frame)this.getParent()).setVisible(false);\r
+ textarea.setText("");\r
+ if(this.getParent() instanceof Frame)\r
+ ((Frame)this.getParent()).setVisible(false);\r
+ else\r
+ ((Dialog)this.getParent()).setVisible(false);\r
}\r
\r
protected TextArea textarea = new TextArea();\r
private void jbInit() throws Exception {\r
textarea.setFont(new java.awt.Font("Monospaced", Font.PLAIN, 10));\r
textarea.setText("Paste your alignment file here");\r
- textarea.addMouseListener(new java.awt.event.MouseAdapter() {\r
- public void mousePressed(MouseEvent e) {\r
- textarea_mousePressed(e);\r
- }\r
- });\r
+ textarea.addMouseListener(this);\r
this.setLayout(borderLayout1);\r
ok.setLabel("OK");\r
- ok.addActionListener(new java.awt.event.ActionListener() {\r
- public void actionPerformed(ActionEvent e) {\r
- ok_actionPerformed(e);\r
- }\r
- });\r
+ ok.addActionListener(this);\r
cancel.setLabel("Cancel");\r
- cancel.addActionListener(new java.awt.event.ActionListener() {\r
- public void actionPerformed(ActionEvent e) {\r
- cancel_actionPerformed(e);\r
- }\r
- });\r
+ cancel.addActionListener(this);\r
this.add(buttonPanel, BorderLayout.SOUTH);\r
buttonPanel.add(ok, null);\r
buttonPanel.add(cancel, null);\r
this.add(textarea, java.awt.BorderLayout.CENTER);\r
}\r
\r
- void textarea_mousePressed(MouseEvent e) {\r
+ public void mousePressed(MouseEvent evt) {\r
if (textarea.getText().startsWith("Paste your")) {\r
textarea.setText("");\r
- }\r
+ }\r
}\r
+ public void mouseReleased(MouseEvent evt){}\r
+ public void mouseClicked(MouseEvent evt){}\r
+ public void mouseEntered(MouseEvent evt){}\r
+ public void mouseExited(MouseEvent evt){}\r
}\r