1 Clazz.declarePackage ("jalview.appletgui");
\r
2 Clazz.load (["awt2swing.Panel", "java.awt.event.ActionListener", "$.MouseListener", "awt2swing.Button", "$.TextArea", "java.awt.BorderLayout"], "jalview.appletgui.CutAndPasteTransfer", ["awt2swing.Frame", "$.Label", "jalview.analysis.AlignmentUtils", "jalview.api.ComplexAlignFile", "jalview.appletgui.AlignFrame", "$.AppletJmol", "$.JVDialog", "$.SplitFrame", "jalview.datamodel.PDBEntry", "jalview.io.AnnotationFile", "$.AppletFormatAdapter", "$.IdentifyFile", "$.NewickFile", "jalview.jsdev.GenericFileAdapter", "jalview.schemes.TCoffeeColourScheme", "jalview.util.MessageManager", "java.awt.Font"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.pdbImport = false;
\r
5 this.treeImport = false;
\r
6 this.annotationImport = false;
\r
8 this.alignFrame = null;
\r
10 this.textarea = null;
\r
12 this.addSequences = null;
\r
13 this.$cancel = null;
\r
14 this.buttonPanel = null;
\r
15 this.borderLayout1 = null;
\r
16 Clazz.instantialize (this, arguments);
\r
17 }, jalview.appletgui, "CutAndPasteTransfer", awt2swing.Panel, [java.awt.event.ActionListener, java.awt.event.MouseListener]);
\r
18 Clazz.prepareFields (c$, function () {
\r
19 this.textarea = new awt2swing.TextArea ();
\r
20 this.accept = new awt2swing.Button ("New Window");
\r
21 this.addSequences = new awt2swing.Button ("Add to Current Alignment");
\r
22 this.$cancel = new awt2swing.Button ("Close");
\r
23 this.buttonPanel = new awt2swing.Panel ();
\r
24 this.borderLayout1 = new java.awt.BorderLayout ();
\r
26 Clazz.makeConstructor (c$,
\r
27 function (forImport, alignFrame) {
\r
28 Clazz.superConstructor (this, jalview.appletgui.CutAndPasteTransfer, []);
\r
32 if (Clazz.exceptionOf (e, Exception)) {
\r
33 e.printStackTrace ();
\r
38 this.alignFrame = alignFrame;
\r
40 this.buttonPanel.setVisible (false);
\r
41 }}, "~B,jalview.appletgui.AlignFrame");
\r
42 Clazz.defineMethod (c$, "getText",
\r
44 return this.textarea.getText ();
\r
46 Clazz.defineMethod (c$, "setText",
\r
48 this.textarea.setText (text);
\r
50 Clazz.defineMethod (c$, "setPDBImport",
\r
53 this.accept.setLabel (jalview.util.MessageManager.getString ("action.accept"));
\r
54 this.addSequences.setVisible (false);
\r
55 this.pdbImport = true;
\r
56 }, "jalview.datamodel.SequenceI");
\r
57 Clazz.defineMethod (c$, "setTreeImport",
\r
59 this.treeImport = true;
\r
60 this.accept.setLabel (jalview.util.MessageManager.getString ("action.accept"));
\r
61 this.addSequences.setVisible (false);
\r
63 Clazz.defineMethod (c$, "setAnnotationImport",
\r
65 this.annotationImport = true;
\r
66 this.accept.setLabel (jalview.util.MessageManager.getString ("action.accept"));
\r
67 this.addSequences.setVisible (false);
\r
69 Clazz.overrideMethod (c$, "actionPerformed",
\r
71 if (evt.getSource () === this.accept) {
\r
73 } else if (evt.getSource () === this.addSequences) {
\r
75 } else if (evt.getSource () === this.$cancel) {
\r
77 }}, "java.awt.event.ActionEvent");
\r
78 Clazz.defineMethod (c$, "ok",
\r
79 function (newWindow) {
\r
80 var text = this.getText ();
\r
81 var length = text.length;
\r
82 this.textarea.append ("\n");
\r
83 if (this.textarea.getText ().length == length) {
\r
84 var warning = "\n\n#################################################\nWARNING!! THIS IS THE MAXIMUM SIZE OF TEXTAREA!!\n\nCAN\'T INPUT FULL ALIGNMENT\n\nYOU MUST DELETE THIS WARNING TO CONTINUE\n\nMAKE SURE LAST SEQUENCE PASTED IS COMPLETE\n#################################################\n";
\r
85 this.textarea.setText (text.substring (0, text.length - warning.length) + warning);
\r
86 this.textarea.setCaretPosition (text.length);
\r
87 }if (this.pdbImport) {
\r
88 this.openPdbViewer (text);
\r
89 } else if (this.treeImport) {
\r
90 if (!this.loadTree ()) {
\r
92 }} else if (this.annotationImport) {
\r
93 this.loadAnnotations ();
\r
94 } else if (this.alignFrame != null) {
\r
95 this.loadAlignment (text, newWindow, this.alignFrame.getAlignViewport ());
\r
96 }if (Clazz.instanceOf (this.getParent (), awt2swing.Frame)) {
\r
97 (this.getParent ()).setVisible (false);
\r
99 (this.getParent ()).setVisible (false);
\r
101 Clazz.defineMethod (c$, "loadTree",
\r
104 var fin = new jalview.io.NewickFile (this.textarea.getText (), "Paste");
\r
106 if (fin.getTree () != null) {
\r
107 this.alignFrame.loadTree (fin, "Pasted tree file");
\r
110 if (Clazz.exceptionOf (ex, Exception)) {
\r
111 this.textarea.setText (jalview.util.MessageManager.formatMessage ("label.could_not_parse_newick_file", Clazz.newArray (-1, [ex.getMessage ()])));
\r
119 Clazz.defineMethod (c$, "loadAlignment",
\r
120 function (text, newWindow, viewport) {
\r
122 var format = new jalview.io.IdentifyFile ().Identify (text, jalview.io.AppletFormatAdapter.PASTE);
\r
123 var afa = new jalview.io.AppletFormatAdapter (this.alignFrame.alignPanel);
\r
125 al = afa.readFile (text, jalview.io.AppletFormatAdapter.PASTE, format);
\r
126 this.source = afa.getAlignFile ();
\r
128 if (Clazz.exceptionOf (ex, java.io.IOException)) {
\r
129 ex.printStackTrace ();
\r
135 al.setDataset (null);
\r
136 var allowSplitFrame = this.alignFrame.viewport.applet.getDefaultParameter ("enableSplitFrame", false);
\r
137 if (allowSplitFrame && this.openSplitFrame (al, format)) {
\r
141 if (Clazz.instanceOf (this.source, jalview.api.ComplexAlignFile)) {
\r
142 var colSel = (this.source).getColumnSelection ();
\r
143 var hiddenSeqs = (this.source).getHiddenSequences ();
\r
144 var showSeqFeatures = (this.source).isShowSeqFeatures ();
\r
145 var cs = (this.source).getColourScheme ();
\r
146 af = new jalview.appletgui.AlignFrame (al, hiddenSeqs, colSel, this.alignFrame.viewport.applet, "Cut & Paste input - " + format, false);
\r
147 af.getAlignViewport ().setShowSequenceFeatures (showSeqFeatures);
\r
148 af.changeColour (cs);
\r
150 af = new jalview.appletgui.AlignFrame (al, this.alignFrame.viewport.applet, "Cut & Paste input - " + format, false);
\r
151 }af.setStatus (jalview.util.MessageManager.getString ("label.successfully_pasted_annotation_to_alignment"));
\r
153 this.alignFrame.addSequences (al.getSequencesArray ());
\r
154 this.alignFrame.setStatus (jalview.util.MessageManager.getString ("label.successfully_pasted_alignment_file"));
\r
155 }}}, "~S,~B,jalview.appletgui.AlignViewport");
\r
156 Clazz.defineMethod (c$, "openSplitFrame",
\r
157 function (al, format) {
\r
158 var thisAlignment = this.alignFrame.getAlignViewport ().getAlignment ();
\r
159 if (thisAlignment.isNucleotide () == al.isNucleotide ()) {
\r
161 }var protein = thisAlignment.isNucleotide () ? al : thisAlignment;
\r
162 var dna = thisAlignment.isNucleotide () ? thisAlignment : al;
\r
163 var mapped = jalview.analysis.AlignmentUtils.mapProteinToCdna (protein, dna);
\r
166 }var title = jalview.util.MessageManager.getString ("label.open_split_window");
\r
167 var dialog = new jalview.appletgui.JVDialog (this.getParent (), title, true, 100, 400);
\r
168 dialog.ok.setLabel (jalview.util.MessageManager.getString ("action.yes"));
\r
169 dialog.cancel.setLabel (jalview.util.MessageManager.getString ("action.no"));
\r
170 var question = new awt2swing.Panel ( new java.awt.BorderLayout ());
\r
171 var text = jalview.util.MessageManager.getString ("label.open_split_window?");
\r
172 question.add ( new awt2swing.Label (text, 0), "Center");
\r
173 dialog.setMainPanel (question);
\r
174 dialog.setVisible (true);
\r
176 if (!dialog.accept) {
\r
178 }var applet = this.alignFrame.viewport.applet;
\r
179 var copyFrame = new jalview.appletgui.AlignFrame (this.alignFrame.viewport.getAlignment (), applet, this.alignFrame.getTitle (), false, false);
\r
180 var newFrame = new jalview.appletgui.AlignFrame (al, this.alignFrame.viewport.applet, "Cut & Paste input - " + format, false, false);
\r
181 var dnaFrame = al.isNucleotide () ? newFrame : copyFrame;
\r
182 var proteinFrame = al.isNucleotide () ? copyFrame : newFrame;
\r
183 var sf = new jalview.appletgui.SplitFrame (dnaFrame, proteinFrame);
\r
184 sf.addToDisplay (false, applet);
\r
186 }, "jalview.datamodel.AlignmentI,~S");
\r
187 Clazz.defineMethod (c$, "loadAnnotations",
\r
191 tcf = jalview.jsdev.GenericFileAdapter.getFile ("TCoffeeScoreFile", [this.textarea.getText (), jalview.io.AppletFormatAdapter.PASTE]);
\r
192 if (tcf.isValid ()) {
\r
193 if (tcf.annotateAlignment (this.alignFrame.viewport.getAlignment (), true)) {
\r
194 this.alignFrame.tcoffeeColour.setEnabled (true);
\r
195 this.alignFrame.alignPanel.fontChanged ();
\r
196 this.alignFrame.changeColour ( new jalview.schemes.TCoffeeColourScheme (this.alignFrame.viewport.getAlignment ()));
\r
197 this.alignFrame.setStatus (jalview.util.MessageManager.getString ("label.successfully_pasted_tcoffee_scores_to_alignment"));
\r
199 this.alignFrame.setStatus (jalview.util.MessageManager.formatMessage ("label.failed_add_tcoffee_scores", Clazz.newArray (-1, [(tcf.getWarningMessage () != null ? tcf.getWarningMessage () : "")])));
\r
203 if (Clazz.exceptionOf (x, Exception)) {
\r
210 if ( new jalview.io.AnnotationFile ().annotateAlignmentView (this.alignFrame.viewport, this.textarea.getText (), jalview.io.AppletFormatAdapter.PASTE)) {
\r
211 this.alignFrame.alignPanel.fontChanged ();
\r
212 this.alignFrame.alignPanel.setScrollValues (0, 0);
\r
213 this.alignFrame.setStatus (jalview.util.MessageManager.getString ("label.successfully_pasted_annotation_to_alignment"));
\r
215 if (!this.alignFrame.parseFeaturesFile (this.textarea.getText (), jalview.io.AppletFormatAdapter.PASTE)) {
\r
216 this.alignFrame.setStatus (jalview.util.MessageManager.getString ("label.couldnt_parse_pasted_text_as_valid_annotation_feature_GFF_tcoffee_file"));
\r
218 Clazz.defineMethod (c$, "openPdbViewer",
\r
220 var pdb = new jalview.datamodel.PDBEntry ();
\r
221 pdb.setFile (text);
\r
222 new jalview.appletgui.AppletJmol (pdb, Clazz.newArray (-1, [this.seq]), null, this.alignFrame.alignPanel, jalview.io.AppletFormatAdapter.PASTE);
\r
224 Clazz.defineMethod (c$, "cancel",
\r
226 this.textarea.setText ("");
\r
227 if (Clazz.instanceOf (this.getParent (), awt2swing.Frame)) {
\r
228 (this.getParent ()).setVisible (false);
\r
230 (this.getParent ()).setVisible (false);
\r
232 Clazz.defineMethod (c$, "jbInit",
\r
233 ($fz = function () {
\r
234 this.textarea.setFont ( new java.awt.Font ("Monospaced", 0, 10));
\r
235 this.textarea.setText (jalview.util.MessageManager.getString ("label.paste_your_alignment_file"));
\r
236 this.textarea.addMouseListener (this);
\r
237 this.setLayout (this.borderLayout1);
\r
238 this.accept.addActionListener (this);
\r
239 this.addSequences.addActionListener (this);
\r
240 this.$cancel.addActionListener (this);
\r
241 this.add (this.buttonPanel, "South");
\r
242 this.buttonPanel.add (this.accept, null);
\r
243 this.buttonPanel.add (this.addSequences);
\r
244 this.buttonPanel.add (this.$cancel, null);
\r
245 this.add (this.textarea, "Center");
\r
246 }, $fz.isPrivate = true, $fz));
\r
247 Clazz.overrideMethod (c$, "mousePressed",
\r
249 if (this.textarea.getText ().startsWith (jalview.util.MessageManager.getString ("label.paste_your"))) {
\r
250 this.textarea.setText ("");
\r
251 }}, "java.awt.event.MouseEvent");
\r
252 Clazz.overrideMethod (c$, "mouseReleased",
\r
254 }, "java.awt.event.MouseEvent");
\r
255 Clazz.overrideMethod (c$, "mouseClicked",
\r
257 }, "java.awt.event.MouseEvent");
\r
258 Clazz.overrideMethod (c$, "mouseEntered",
\r
260 }, "java.awt.event.MouseEvent");
\r
261 Clazz.overrideMethod (c$, "mouseExited",
\r
263 }, "java.awt.event.MouseEvent");
\r