JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / bin / jalview / appletgui / TreePanel.js
1 Clazz.declarePackage ("jalview.appletgui");
2 Clazz.load (["jalview.appletgui.EmbmenuFrame", "java.awt.event.ActionListener", "$.ItemListener", "java.lang.Thread", "awt2swing.CheckboxMenuItem", "$.Menu", "$.MenuBar", "$.MenuItem", "$.ScrollPane", "java.awt.BorderLayout"], "jalview.appletgui.TreePanel", ["awt2swing.Frame", "jalview.analysis.NJTree", "jalview.api.analysis.ViewBasedAnalysisI", "jalview.appletgui.AlignFrame", "$.CutAndPasteTransfer", "$.FontChooser", "$.TreeCanvas", "jalview.bin.JalviewLite", "jalview.datamodel.Alignment", "jalview.io.NewickFile", "jalview.schemes.ResidueProperties", "jalview.util.MessageManager", "java.awt.Color", "$.Font"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.seq = null;
5 this.$type = null;
6 this.pwtype = null;
7 this.start = 0;
8 this.end = 0;
9 this.treeCanvas = null;
10 this.tree = null;
11 this.ap = null;
12 this.av = null;
13 if (!Clazz.isClassDefined ("jalview.appletgui.TreePanel.TreeLoader")) {
14 jalview.appletgui.TreePanel.$TreePanel$TreeLoader$ ();
15 }
16 this.borderLayout1 = null;
17 this.scrollPane = null;
18 this.jMenuBar1 = null;
19 this.jMenu2 = null;
20 this.fontSize = null;
21 this.bootstrapMenu = null;
22 this.distanceMenu = null;
23 this.placeholdersMenu = null;
24 this.fitToWindow = null;
25 this.fileMenu = null;
26 this.newickOutput = null;
27 this.inputData = null;
28 Clazz.instantialize (this, arguments);
29 }, jalview.appletgui, "TreePanel", jalview.appletgui.EmbmenuFrame, [java.awt.event.ActionListener, java.awt.event.ItemListener]);
30 Clazz.prepareFields (c$, function () {
31 this.borderLayout1 =  new java.awt.BorderLayout ();
32 this.scrollPane =  new awt2swing.ScrollPane ();
33 this.jMenuBar1 =  new awt2swing.MenuBar ();
34 this.jMenu2 =  new awt2swing.Menu ();
35 this.fontSize =  new awt2swing.MenuItem ();
36 this.bootstrapMenu =  new awt2swing.CheckboxMenuItem ();
37 this.distanceMenu =  new awt2swing.CheckboxMenuItem ();
38 this.placeholdersMenu =  new awt2swing.CheckboxMenuItem ();
39 this.fitToWindow =  new awt2swing.CheckboxMenuItem ();
40 this.fileMenu =  new awt2swing.Menu ();
41 this.newickOutput =  new awt2swing.MenuItem ();
42 this.inputData =  new awt2swing.MenuItem ();
43 });
44 Clazz.defineMethod (c$, "getTree", 
45 function () {
46 return this.tree;
47 });
48 Clazz.defineMethod (c$, "finalize", 
49 function () {
50 this.ap = null;
51 this.av = null;
52 Clazz.superCall (this, jalview.appletgui.TreePanel, "finalize", []);
53 });
54 Clazz.makeConstructor (c$, 
55 function (ap, type, pwtype) {
56 Clazz.superConstructor (this, jalview.appletgui.TreePanel, []);
57 try {
58 this.jbInit ();
59 this.setMenuBar (this.jMenuBar1);
60 } catch (ex) {
61 if (Clazz.exceptionOf (ex, Exception)) {
62 ex.printStackTrace ();
63 } else {
64 throw ex;
65 }
66 }
67 this.initTreePanel (ap, type, pwtype, null);
68 }, "jalview.appletgui.AlignmentPanel,~S,~S");
69 Clazz.makeConstructor (c$, 
70 function (ap, type, pwtype, newtree) {
71 Clazz.superConstructor (this, jalview.appletgui.TreePanel, []);
72 try {
73 this.jbInit ();
74 this.setMenuBar (this.jMenuBar1);
75 } catch (e) {
76 if (Clazz.exceptionOf (e, Exception)) {
77 e.printStackTrace ();
78 } else {
79 throw e;
80 }
81 }
82 this.initTreePanel (ap, type, pwtype, newtree);
83 }, "jalview.appletgui.AlignmentPanel,~S,~S,jalview.io.NewickFile");
84 Clazz.defineMethod (c$, "initTreePanel", 
85 function (ap, type, pwtype, newTree) {
86 this.ap = ap;
87 this.av = ap.av;
88 this.$type = type;
89 this.pwtype = pwtype;
90 this.treeCanvas =  new jalview.appletgui.TreeCanvas (ap, this.scrollPane);
91 var tl = Clazz.innerTypeInstance (jalview.appletgui.TreePanel.TreeLoader, this, null, newTree);
92 tl.start ();
93 this.embedMenuIfNeeded (this.treeCanvas);
94 this.scrollPane.add (this.treeCanvas, "Center");
95 }, "jalview.appletgui.AlignmentPanel,~S,~S,jalview.io.NewickFile");
96 Clazz.defineMethod (c$, "showOriginalData", 
97 function () {
98 if (this.tree.seqData != null) {
99 var gc = '-';
100 try {
101 gc = this.av.getGapCharacter ();
102 } catch (ex) {
103 if (Clazz.exceptionOf (ex, Exception)) {
104 } else {
105 throw ex;
106 }
107 }
108 ;var alAndColsel = this.tree.seqData.getAlignmentAndColumnSelection (gc);
109 if (alAndColsel != null && alAndColsel[0] != null) {
110 var al =  new jalview.datamodel.Alignment (alAndColsel[0]);
111 var af =  new jalview.appletgui.AlignFrame (al, this.av.applet, "Original Data for Tree", false);
112 af.viewport.setHiddenColumns (alAndColsel[1]);
113 }} else {
114 System.out.println ("Original Tree Data not available");
115 }});
116 Clazz.overrideMethod (c$, "actionPerformed", 
117 function (evt) {
118 if (evt.getSource () === this.newickOutput) {
119 this.newickOutput_actionPerformed ();
120 } else if (evt.getSource () === this.fontSize) {
121 this.fontSize_actionPerformed ();
122 } else if (evt.getSource () === this.inputData) {
123 this.showOriginalData ();
124 }}, "java.awt.event.ActionEvent");
125 Clazz.overrideMethod (c$, "itemStateChanged", 
126 function (evt) {
127 if (evt.getSource () === this.fitToWindow) {
128 this.treeCanvas.fitToWindow = this.fitToWindow.getState ();
129 } else if (evt.getSource () === this.distanceMenu) {
130 this.treeCanvas.setShowDistances (this.distanceMenu.getState ());
131 } else if (evt.getSource () === this.bootstrapMenu) {
132 this.treeCanvas.setShowBootstrap (this.bootstrapMenu.getState ());
133 } else if (evt.getSource () === this.placeholdersMenu) {
134 this.treeCanvas.setMarkPlaceholders (this.placeholdersMenu.getState ());
135 }this.treeCanvas.repaint ();
136 }, "java.awt.event.ItemEvent");
137 Clazz.defineMethod (c$, "newickOutput_actionPerformed", 
138 function () {
139 var fout =  new jalview.io.NewickFile (this.tree.getTopNode ());
140 var output = fout.print (false, true);
141 var cap =  new jalview.appletgui.CutAndPasteTransfer (false, null);
142 cap.setText (output);
143 var frame =  new awt2swing.Frame ();
144 frame.add (cap);
145 jalview.bin.JalviewLite.addFrame (frame, this.$type + " " + this.pwtype, 500, 100);
146 });
147 Clazz.defineMethod (c$, "getTreeFont", 
148 function () {
149 return this.treeCanvas.$font;
150 });
151 Clazz.defineMethod (c$, "setTreeFont", 
152 function (font) {
153 this.treeCanvas.$font = font;
154 this.treeCanvas.repaint ();
155 }, "java.awt.Font");
156 Clazz.defineMethod (c$, "fontSize_actionPerformed", 
157 function () {
158 if (this.treeCanvas == null) {
159 return;
160 } new jalview.appletgui.FontChooser (this);
161 });
162 Clazz.defineMethod (c$, "jbInit", 
163 ($fz = function () {
164 this.setLayout (this.borderLayout1);
165 this.setBackground (java.awt.Color.white);
166 this.setFont ( new java.awt.Font ("Verdana", 0, 12));
167 this.jMenu2.setLabel (jalview.util.MessageManager.getString ("action.view"));
168 this.fontSize.setLabel (jalview.util.MessageManager.getString ("action.font"));
169 this.fontSize.addActionListener (this);
170 this.bootstrapMenu.setLabel (jalview.util.MessageManager.getString ("label.show_bootstrap_values"));
171 this.bootstrapMenu.addItemListener (this);
172 this.distanceMenu.setLabel (jalview.util.MessageManager.getString ("label.show_distances"));
173 this.distanceMenu.addItemListener (this);
174 this.placeholdersMenu.setLabel (jalview.util.MessageManager.getString ("label.mark_unassociated_leaves"));
175 this.placeholdersMenu.addItemListener (this);
176 this.fitToWindow.setState (true);
177 this.fitToWindow.setLabel (jalview.util.MessageManager.getString ("label.fit_to_window"));
178 this.fitToWindow.addItemListener (this);
179 this.fileMenu.setLabel (jalview.util.MessageManager.getString ("action.file"));
180 this.newickOutput.setLabel (jalview.util.MessageManager.getString ("label.newick_format"));
181 this.newickOutput.addActionListener (this);
182 this.inputData.setLabel (jalview.util.MessageManager.getString ("label.input_data"));
183 this.add (this.scrollPane, "Center");
184 this.jMenuBar1.add (this.fileMenu);
185 this.jMenuBar1.add (this.jMenu2);
186 this.jMenu2.add (this.fitToWindow);
187 this.jMenu2.add (this.fontSize);
188 this.jMenu2.add (this.distanceMenu);
189 this.jMenu2.add (this.bootstrapMenu);
190 this.jMenu2.add (this.placeholdersMenu);
191 this.fileMenu.add (this.newickOutput);
192 this.fileMenu.add (this.inputData);
193 this.inputData.addActionListener (this);
194 }, $fz.isPrivate = true, $fz));
195 c$.$TreePanel$TreeLoader$ = function () {
196 Clazz.pu$h ();
197 c$ = Clazz.decorateAsClass (function () {
198 Clazz.prepareCallback (this, arguments);
199 this.newtree = null;
200 this.odata = null;
201 Clazz.instantialize (this, arguments);
202 }, jalview.appletgui.TreePanel, "TreeLoader", Thread);
203 Clazz.makeConstructor (c$, 
204 function (a) {
205 Clazz.superConstructor (this, jalview.appletgui.TreePanel.TreeLoader, []);
206 this.newtree = a;
207 }, "jalview.io.NewickFile");
208 Clazz.overrideMethod (c$, "run", 
209 function () {
210 if (this.newtree != null) {
211 if (this.odata == null) {
212 this.b$["jalview.appletgui.TreePanel"].tree =  new jalview.analysis.NJTree (this.b$["jalview.appletgui.TreePanel"].av.getAlignment ().getSequencesArray (), this.newtree);
213 } else {
214 this.b$["jalview.appletgui.TreePanel"].tree =  new jalview.analysis.NJTree (this.b$["jalview.appletgui.TreePanel"].av.getAlignment ().getSequencesArray (), this.odata, this.newtree);
215 }} else {
216 var a;
217 var b;
218 var c;
219 var d = this.b$["jalview.appletgui.TreePanel"].av.getSelectionGroup () != null && this.b$["jalview.appletgui.TreePanel"].av.getSelectionGroup ().getSize () > 1;
220 var e = this.b$["jalview.appletgui.TreePanel"].av.getAlignmentView (d);
221 if (!d) {
222 a = 0;
223 b = this.b$["jalview.appletgui.TreePanel"].av.getAlignment ().getWidth ();
224 c = this.b$["jalview.appletgui.TreePanel"].av.getAlignment ().getSequencesArray ();
225 } else {
226 a = this.b$["jalview.appletgui.TreePanel"].av.getSelectionGroup ().getStartRes ();
227 b = this.b$["jalview.appletgui.TreePanel"].av.getSelectionGroup ().getEndRes () + 1;
228 c = this.b$["jalview.appletgui.TreePanel"].av.getSelectionGroup ().getSequencesInOrder (this.b$["jalview.appletgui.TreePanel"].av.getAlignment ());
229 }var f = jalview.schemes.ResidueProperties.getScoreModel (this.b$["jalview.appletgui.TreePanel"].pwtype);
230 if (Clazz.instanceOf (f, jalview.api.analysis.ViewBasedAnalysisI)) {
231 try {
232 f = f.getClass ().newInstance ();
233 (f).configureFromAlignmentView (this.b$["jalview.appletgui.TreePanel"].treeCanvas.ap);
234 } catch (q) {
235 if (Clazz.exceptionOf (q, Exception)) {
236 System.err.println ("Couldn't create a scoremodel instance for " + f.getName ());
237 q.printStackTrace ();
238 } else {
239 throw q;
240 }
241 }
242 this.b$["jalview.appletgui.TreePanel"].tree =  new jalview.analysis.NJTree (c, e, this.b$["jalview.appletgui.TreePanel"].$type, this.b$["jalview.appletgui.TreePanel"].pwtype, f, a, b);
243 } else {
244 this.b$["jalview.appletgui.TreePanel"].tree =  new jalview.analysis.NJTree (c, e, this.b$["jalview.appletgui.TreePanel"].$type, this.b$["jalview.appletgui.TreePanel"].pwtype, null, a, b);
245 }}this.b$["jalview.appletgui.TreePanel"].tree.reCount (this.b$["jalview.appletgui.TreePanel"].tree.getTopNode ());
246 this.b$["jalview.appletgui.TreePanel"].tree.findHeight (this.b$["jalview.appletgui.TreePanel"].tree.getTopNode ());
247 this.b$["jalview.appletgui.TreePanel"].treeCanvas.setTree (this.b$["jalview.appletgui.TreePanel"].tree);
248 if (this.newtree != null) {
249 var a = this.newtree.HasDistances () && this.b$["jalview.appletgui.TreePanel"].av.applet.getDefaultParameter ("showTreeDistances", this.newtree.HasDistances ());
250 var b = this.newtree.HasBootstrap () && this.b$["jalview.appletgui.TreePanel"].av.applet.getDefaultParameter ("showTreeBootstraps", this.newtree.HasBootstrap ());
251 this.b$["jalview.appletgui.TreePanel"].distanceMenu.setState (a);
252 this.b$["jalview.appletgui.TreePanel"].bootstrapMenu.setState (b);
253 this.b$["jalview.appletgui.TreePanel"].treeCanvas.setShowBootstrap (b);
254 this.b$["jalview.appletgui.TreePanel"].treeCanvas.setShowDistances (a);
255 this.b$["jalview.appletgui.TreePanel"].treeCanvas.setMarkPlaceholders (this.b$["jalview.appletgui.TreePanel"].av.applet.getDefaultParameter ("showUnlinkedTreeNodes", false));
256 }this.b$["jalview.appletgui.TreePanel"].treeCanvas.repaint ();
257 this.b$["jalview.appletgui.TreePanel"].av.setCurrentTree (this.b$["jalview.appletgui.TreePanel"].tree);
258 });
259 c$ = Clazz.p0p ();
260 };
261 });