1 Clazz.declarePackage ("jalview.appletgui");
\r
2 Clazz.load (["awt2swing.Panel", "jalview.api.AlignmentViewPanel", "java.awt.event.AdjustmentListener", "awt2swing.Scrollbar"], "jalview.appletgui.AlignmentPanel", ["awt2swing.Frame", "jalview.analysis.AnnotationSorter", "jalview.appletgui.AnnotationLabels", "$.AnnotationPanel", "$.FeatureRenderer", "$.IdPanel", "$.IdwidthAdjuster", "$.PaintRefresher", "$.ScalePanel", "$.SeqPanel", "jalview.bin.JalviewLite", "jalview.structure.StructureSelectionManager", "java.awt.BorderLayout", "$.Color", "$.Dimension", "java.awt.event.ComponentAdapter", "java.beans.PropertyChangeListener"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
5 this.overviewPanel = null;
\r
6 this.seqPanel = null;
\r
8 this.idwidthAdjuster = null;
\r
9 this.alignFrame = null;
\r
10 this.scalePanel = null;
\r
11 this.annotationPanel = null;
\r
12 this.alabels = null;
\r
13 this.fastPaint = true;
\r
16 this.sequenceHolderPanel = null;
\r
17 this.vscroll = null;
\r
18 this.hscroll = null;
\r
19 this.seqPanelHolder = null;
\r
20 this.scalePanelHolder = null;
\r
21 this.idPanelHolder = null;
\r
22 this.idSpaceFillerPanel1 = null;
\r
23 this.annotationSpaceFillerHolder = null;
\r
24 this.hscrollFillerPanel = null;
\r
25 this.annotationPanelHolder = null;
\r
26 this.apvscroll = null;
\r
27 this.followingComplementScroll = false;
\r
28 Clazz.instantialize (this, arguments);
\r
29 }, jalview.appletgui, "AlignmentPanel", awt2swing.Panel, [java.awt.event.AdjustmentListener, jalview.api.AlignmentViewPanel]);
\r
30 Clazz.prepareFields (c$, function () {
\r
31 this.sequenceHolderPanel = new awt2swing.Panel ();
\r
32 this.vscroll = new awt2swing.Scrollbar ();
\r
33 this.hscroll = new awt2swing.Scrollbar ();
\r
34 this.seqPanelHolder = new awt2swing.Panel ();
\r
35 this.scalePanelHolder = new awt2swing.Panel ();
\r
36 this.idPanelHolder = new awt2swing.Panel ();
\r
37 this.idSpaceFillerPanel1 = new awt2swing.Panel ();
\r
38 this.annotationSpaceFillerHolder = new awt2swing.Panel ();
\r
39 this.hscrollFillerPanel = new awt2swing.Panel ();
\r
40 this.annotationPanelHolder = new awt2swing.Panel ();
\r
41 this.apvscroll = new awt2swing.Scrollbar ();
\r
43 Clazz.overrideMethod (c$, "finalize",
\r
45 this.alignFrame = null;
\r
47 this.seqPanel = null;
\r
48 this.seqPanelHolder = null;
\r
49 this.sequenceHolderPanel = null;
\r
50 this.scalePanel = null;
\r
51 this.scalePanelHolder = null;
\r
52 this.annotationPanel = null;
\r
53 this.annotationPanelHolder = null;
\r
54 this.annotationSpaceFillerHolder = null;
\r
56 Clazz.makeConstructor (c$,
\r
58 Clazz.superConstructor (this, jalview.appletgui.AlignmentPanel, []);
\r
59 this.setName ("alignmentPanel");
\r
63 if (Clazz.exceptionOf (e, Exception)) {
\r
64 e.printStackTrace ();
\r
69 this.alignFrame = af;
\r
71 this.seqPanel = new jalview.appletgui.SeqPanel (av, this);
\r
72 this.idPanel = new jalview.appletgui.IdPanel (av, this);
\r
73 this.scalePanel = new jalview.appletgui.ScalePanel (av, this);
\r
74 this.idwidthAdjuster = new jalview.appletgui.IdwidthAdjuster (this);
\r
75 this.annotationPanel = new jalview.appletgui.AnnotationPanel (this);
\r
76 this.annotationPanelHolder.add (this.annotationPanel, "Center");
\r
77 this.sequenceHolderPanel.add (this.annotationPanelHolder, "South");
\r
78 this.alabels = new jalview.appletgui.AnnotationLabels (this);
\r
79 this.setAnnotationVisible (av.isShowAnnotation ());
\r
80 this.idPanelHolder.add (this.idPanel, "Center");
\r
81 this.idSpaceFillerPanel1.add (this.idwidthAdjuster, "Center");
\r
82 this.annotationSpaceFillerHolder.add (this.alabels, "Center");
\r
83 this.scalePanelHolder.add (this.scalePanel, "Center");
\r
84 this.seqPanelHolder.add (this.seqPanel, "Center");
\r
85 this.fontChanged ();
\r
86 this.setScrollValues (0, 0);
\r
87 this.apvscroll.addAdjustmentListener (this);
\r
88 this.hscroll.addAdjustmentListener (this);
\r
89 this.vscroll.addAdjustmentListener (this);
\r
90 this.addComponentListener (((Clazz.isClassDefined ("jalview.appletgui.AlignmentPanel$1") ? 0 : jalview.appletgui.AlignmentPanel.$AlignmentPanel$1$ ()), Clazz.innerTypeInstance (jalview.appletgui.AlignmentPanel$1, this, Clazz.cloneFinals ("av", av))));
\r
91 var d = this.calculateIdWidth ();
\r
92 this.idPanel.idCanvas.setSize (d);
\r
93 this.hscrollFillerPanel.setSize (d.width, this.annotationPanel.getSize ().height);
\r
94 this.idPanel.idCanvas.setSize (d.width, this.seqPanel.seqCanvas.getSize ().height);
\r
95 this.annotationSpaceFillerHolder.setSize (d.width, this.annotationPanel.getSize ().height);
\r
96 this.alabels.setSize (d.width, this.annotationPanel.getSize ().height);
\r
98 av.addPropertyChangeListener (((Clazz.isClassDefined ("jalview.appletgui.AlignmentPanel$2") ? 0 : jalview.appletgui.AlignmentPanel.$AlignmentPanel$2$ ()), Clazz.innerTypeInstance (jalview.appletgui.AlignmentPanel$2, this, Clazz.cloneFinals ("ap", ap, "av", av))));
\r
99 }, "jalview.appletgui.AlignFrame,jalview.appletgui.AlignViewport");
\r
100 Clazz.overrideMethod (c$, "getAlignViewport",
\r
104 Clazz.defineMethod (c$, "getSequenceRenderer",
\r
106 return this.seqPanel.seqCanvas.sr;
\r
108 Clazz.overrideMethod (c$, "getFeatureRenderer",
\r
110 return this.seqPanel.seqCanvas.fr;
\r
112 Clazz.overrideMethod (c$, "cloneFeatureRenderer",
\r
114 var nfr = new jalview.appletgui.FeatureRenderer (this.av);
\r
115 nfr.transferSettings (this.seqPanel.seqCanvas.fr);
\r
118 Clazz.defineMethod (c$, "alignmentChanged",
\r
120 this.av.alignmentChanged (this);
\r
121 if (this.overviewPanel != null) {
\r
122 this.overviewPanel.updateOverviewImage ();
\r
123 }this.alignFrame.updateEditMenuBar ();
\r
126 Clazz.defineMethod (c$, "fontChanged",
\r
128 this.idPanel.idCanvas.image = null;
\r
129 var fm = this.getFontMetrics (this.av.getFont ());
\r
130 this.scalePanel.setSize ( new java.awt.Dimension (10, this.av.getCharHeight () + fm.getDescent ()));
\r
131 this.idwidthAdjuster.setSize ( new java.awt.Dimension (10, this.av.getCharHeight () + fm.getDescent ()));
\r
132 this.av.updateSequenceIdColours ();
\r
133 this.annotationPanel.image = null;
\r
134 var ap = this.annotationPanel.adjustPanelHeight (false);
\r
135 var d = this.calculateIdWidth ();
\r
136 d.setSize (d.width + 4, this.seqPanel.seqCanvas.getSize ().height);
\r
137 this.alabels.setSize (d.width + 4, ap);
\r
138 this.idPanel.idCanvas.setSize (d);
\r
139 this.hscrollFillerPanel.setSize (d);
\r
140 this.validateAnnotationDimensions (false);
\r
141 this.annotationPanel.repaint ();
\r
144 if (this.overviewPanel != null) {
\r
145 this.overviewPanel.updateOverviewImage ();
\r
147 Clazz.defineMethod (c$, "setIdWidth",
\r
149 this.idPanel.idCanvas.setSize (w, h);
\r
150 this.idPanelHolder.setSize (w, this.idPanelHolder.getSize ().height);
\r
151 this.annotationSpaceFillerHolder.setSize (w, this.annotationSpaceFillerHolder.getSize ().height);
\r
152 this.alabels.setSize (w, this.alabels.getSize ().height);
\r
155 Clazz.defineMethod (c$, "calculateIdWidth",
\r
157 if (this.av.nullFrame == null) {
\r
158 this.av.nullFrame = new awt2swing.Frame ();
\r
159 this.av.nullFrame.addNotify ();
\r
160 this.av.nullFrame.setFont (this.av.font);
\r
161 }var g = this.av.nullFrame.getGraphics ();
\r
162 var fm = g.getFontMetrics (this.av.font);
\r
163 var al = this.av.getAlignment ();
\r
167 while (i < al.getHeight () && al.getSequenceAt (i) != null) {
\r
168 var s = al.getSequenceAt (i);
\r
169 id = s.getDisplayId (this.av.getShowJVSuffix ());
\r
170 if (fm.stringWidth (id) > idWidth) {
\r
171 idWidth = fm.stringWidth (id);
\r
175 if (al.getAlignmentAnnotation () != null) {
\r
176 fm = g.getFontMetrics (this.av.nullFrame.getFont ());
\r
177 while (i < al.getAlignmentAnnotation ().length) {
\r
178 var label = al.getAlignmentAnnotation ()[i].label;
\r
179 if (fm.stringWidth (label) > idWidth) {
\r
180 idWidth = fm.stringWidth (label);
\r
183 }return new java.awt.Dimension (idWidth, this.idPanel.idCanvas.getSize ().height);
\r
185 Clazz.defineMethod (c$, "highlightSearchResults",
\r
186 function (results) {
\r
187 this.scrollToPosition (results);
\r
188 this.seqPanel.seqCanvas.highlightSearchResults (results);
\r
189 }, "jalview.datamodel.SearchResults");
\r
190 Clazz.defineMethod (c$, "scrollToPosition",
\r
191 function (results) {
\r
192 return this.scrollToPosition (results, true);
\r
193 }, "jalview.datamodel.SearchResults");
\r
194 Clazz.defineMethod (c$, "scrollToPosition",
\r
195 function (results, redrawOverview) {
\r
196 return this.scrollToPosition (results, redrawOverview, false);
\r
197 }, "jalview.datamodel.SearchResults,~B");
\r
198 Clazz.defineMethod (c$, "scrollToPosition",
\r
199 function (results, redrawOverview, centre) {
\r
200 if (results != null && results.getSize () > 0) {
\r
201 var alignment = this.av.getAlignment ();
\r
202 var seqIndex = alignment.findIndex (results);
\r
203 if (seqIndex == -1) {
\r
205 }var seq = alignment.getSequenceAt (seqIndex);
\r
206 var r = results.getResults (seq, 0, alignment.getWidth ());
\r
208 if (jalview.bin.JalviewLite.debug) {
\r
209 System.out.println ("DEBUG: scroll didn't happen - results not within alignment : " + seq.getStart () + "," + seq.getEnd ());
\r
211 }if (jalview.bin.JalviewLite.debug) {
\r
215 var offset = Clazz.doubleToInt ((this.av.getEndRes () - this.av.getStartRes () + 1) / 2) - 1;
\r
216 start = Math.max (start - offset, 0);
\r
217 end = Math.min (end + offset, seq.getEnd () - 1);
\r
220 }if (end == seq.getEnd ()) {
\r
222 }return this.scrollTo (start, end, seqIndex, false, redrawOverview);
\r
224 }, "jalview.datamodel.SearchResults,~B,~B");
\r
225 Clazz.defineMethod (c$, "scrollTo",
\r
226 function (ostart, end, seqIndex, scrollToNearest, redrawOverview) {
\r
233 if (this.av.hasHiddenColumns ()) {
\r
234 start = this.av.getColumnSelection ().findColumnPosition (ostart);
\r
235 end = this.av.getColumnSelection ().findColumnPosition (end);
\r
236 if (start == end) {
\r
237 if (!scrollToNearest && !this.av.getColumnSelection ().isVisible (ostart)) {
\r
241 }if (!this.av.getWrapAlignment ()) {
\r
242 if ((startv = this.av.getStartRes ()) >= start) {
\r
243 this.setScrollValues (start - 1, seqIndex);
\r
244 } else if ((endv = this.av.getEndRes ()) <= end) {
\r
245 this.setScrollValues (startv + 1 + end - endv, seqIndex);
\r
246 } else if ((starts = this.av.getStartSeq ()) > seqIndex) {
\r
247 this.setScrollValues (this.av.getStartRes (), seqIndex);
\r
248 } else if ((ends = this.av.getEndSeq ()) <= seqIndex) {
\r
249 this.setScrollValues (this.av.getStartRes (), starts + seqIndex - ends + 1);
\r
251 this.scrollToWrappedVisible (start);
\r
252 }if (redrawOverview && this.overviewPanel != null) {
\r
253 this.overviewPanel.setBoxPosition ();
\r
254 }this.paintAlignment (redrawOverview);
\r
256 }, "~N,~N,~N,~B,~B");
\r
257 Clazz.defineMethod (c$, "scrollToWrappedVisible",
\r
259 var cwidth = this.seqPanel.seqCanvas.getWrappedCanvasWidth (this.seqPanel.seqCanvas.getSize ().width);
\r
260 if (res <= this.av.getStartRes () || res >= (this.av.getStartRes () + cwidth)) {
\r
261 this.vscroll.setValue (Clazz.doubleToInt (res / cwidth));
\r
262 this.av.startRes = this.vscroll.getValue () * cwidth;
\r
264 Clazz.defineMethod (c$, "getOverviewPanel",
\r
266 return this.overviewPanel;
\r
268 Clazz.defineMethod (c$, "setOverviewPanel",
\r
270 this.overviewPanel = op;
\r
271 }, "jalview.appletgui.OverviewPanel");
\r
272 Clazz.defineMethod (c$, "setAnnotationVisible",
\r
274 if (!this.av.getWrapAlignment ()) {
\r
275 this.annotationSpaceFillerHolder.setVisible (b);
\r
276 this.annotationPanelHolder.setVisible (b);
\r
278 this.annotationSpaceFillerHolder.setVisible (false);
\r
279 this.annotationPanelHolder.setVisible (false);
\r
283 Clazz.overrideMethod (c$, "adjustAnnotationHeight",
\r
285 if (this.alignFrame.getSize ().height == 0) {
\r
286 System.out.println ("adjustAnnotationHeight frame size zero NEEDS FIXING");
\r
287 }this.fontChanged ();
\r
288 this.validateAnnotationDimensions (true);
\r
289 this.apvscroll.addNotify ();
\r
290 this.hscroll.addNotify ();
\r
292 this.paintAlignment (true);
\r
294 Clazz.defineMethod (c$, "validateAnnotationDimensions",
\r
295 function (adjustPanelHeight) {
\r
296 var rowHeight = this.av.getCharHeight ();
\r
297 var alignmentHeight = rowHeight * this.av.getAlignment ().getHeight ();
\r
298 var annotationHeight = this.av.calcPanelHeight ();
\r
299 var mheight = annotationHeight;
\r
300 var d = this.sequenceHolderPanel.getSize ();
\r
301 var availableHeight = d.height - this.scalePanelHolder.getHeight ();
\r
302 if (adjustPanelHeight) {
\r
303 if (annotationHeight + alignmentHeight > availableHeight) {
\r
304 annotationHeight = Math.min (annotationHeight, availableHeight - 2 * rowHeight);
\r
306 annotationHeight = this.annotationPanelHolder.getSize ().height;
\r
307 }if (availableHeight - annotationHeight < 5) {
\r
308 annotationHeight = availableHeight;
\r
309 }this.annotationPanel.setSize ( new java.awt.Dimension (d.width, annotationHeight));
\r
310 this.annotationPanelHolder.setSize ( new java.awt.Dimension (d.width, annotationHeight));
\r
311 this.seqPanel.seqCanvas.setSize (d.width, this.seqPanel.seqCanvas.getSize ().height);
\r
312 var e = this.idPanel.getSize ();
\r
313 this.alabels.setSize ( new java.awt.Dimension (e.width, annotationHeight));
\r
314 this.annotationSpaceFillerHolder.setSize ( new java.awt.Dimension (e.width, annotationHeight));
\r
315 var s = this.apvscroll.getValue ();
\r
316 if (s > mheight - annotationHeight) {
\r
318 }this.apvscroll.setValues (s, annotationHeight, 0, mheight);
\r
319 this.annotationPanel.setScrollOffset (this.apvscroll.getValue (), false);
\r
320 this.alabels.setScrollOffset (this.apvscroll.getValue (), false);
\r
322 Clazz.defineMethod (c$, "setWrapAlignment",
\r
324 this.av.startSeq = 0;
\r
325 this.av.startRes = 0;
\r
326 this.scalePanelHolder.setVisible (!wrap);
\r
327 this.hscroll.setVisible (!wrap);
\r
328 this.idwidthAdjuster.setVisible (!wrap);
\r
330 this.annotationPanelHolder.setVisible (false);
\r
331 this.annotationSpaceFillerHolder.setVisible (false);
\r
332 } else if (this.av.isShowAnnotation ()) {
\r
333 this.annotationPanelHolder.setVisible (true);
\r
334 this.annotationSpaceFillerHolder.setVisible (true);
\r
335 }this.idSpaceFillerPanel1.setVisible (!wrap);
\r
336 this.fontChanged ();
\r
338 this.sequenceHolderPanel.validate ();
\r
341 Clazz.defineMethod (c$, "scrollUp",
\r
344 if (this.vscroll.getValue () < 1) {
\r
346 }this.setScrollValues (this.hscroll.getValue (), this.vscroll.getValue () - 1);
\r
348 if (this.vextent + this.vscroll.getValue () >= this.av.getAlignment ().getHeight ()) {
\r
350 }this.setScrollValues (this.hscroll.getValue (), this.vscroll.getValue () + 1);
\r
354 Clazz.defineMethod (c$, "scrollRight",
\r
357 if (this.hscroll.getValue () < 1) {
\r
359 }this.setScrollValues (this.hscroll.getValue () - 1, this.vscroll.getValue ());
\r
361 if (this.hextent + this.hscroll.getValue () >= this.av.getAlignment ().getWidth ()) {
\r
363 }this.setScrollValues (this.hscroll.getValue () + 1, this.vscroll.getValue ());
\r
367 Clazz.defineMethod (c$, "setScrollValues",
\r
369 var width = this.av.getAlignment ().getWidth ();
\r
370 var height = this.av.getAlignment ().getHeight ();
\r
371 if (this.av.hasHiddenColumns ()) {
\r
372 width = this.av.getColumnSelection ().findColumnPosition (width);
\r
375 };this.hextent = Clazz.doubleToInt (this.seqPanel.seqCanvas.getSize ().width / this.av.getCharWidth ());
\r
376 this.vextent = Clazz.doubleToInt (this.seqPanel.seqCanvas.getSize ().height / this.av.getCharHeight ());
\r
377 if (this.hextent > width) {
\r
378 this.hextent = width;
\r
379 }if (this.vextent > height) {
\r
380 this.vextent = height;
\r
381 }if ((this.hextent + x) > width) {
\r
382 System.err.println ("hextent was " + this.hextent + " and x was " + x);
\r
383 x = width - this.hextent;
\r
384 }if ((this.vextent + y) > height) {
\r
385 y = height - this.vextent;
\r
389 System.err.println ("x was " + x);
\r
391 }this.av.setStartSeq (y);
\r
392 var endSeq = y + this.vextent;
\r
393 if (endSeq > this.av.getAlignment ().getHeight ()) {
\r
394 endSeq = this.av.getAlignment ().getHeight ();
\r
395 }this.av.setEndSeq (endSeq);
\r
396 this.av.setStartRes (x);
\r
397 this.av.setEndRes ((x + (Clazz.doubleToInt (this.seqPanel.seqCanvas.getSize ().width / this.av.getCharWidth ()))) - 1);
\r
398 this.hscroll.setValues (x, this.hextent, 0, width);
\r
399 this.vscroll.setValues (y, this.vextent, 0, height);
\r
400 if (this.overviewPanel != null) {
\r
401 this.overviewPanel.setBoxPosition ();
\r
402 }this.sendViewPosition ();
\r
404 Clazz.overrideMethod (c$, "adjustmentValueChanged",
\r
406 if (this.annotationPanel == null) return;
\r
407 var oldX = this.av.getStartRes ();
\r
408 var oldY = this.av.getStartSeq ();
\r
409 if (evt == null || evt.getSource () === this.apvscroll) {
\r
410 this.annotationPanel.setScrollOffset (this.apvscroll.getValue (), false);
\r
411 this.alabels.setScrollOffset (this.apvscroll.getValue (), false);
\r
412 }if (evt == null || evt.getSource () === this.hscroll) {
\r
413 var x = this.hscroll.getValue ();
\r
414 this.av.setStartRes (x);
\r
415 this.av.setEndRes (x + Clazz.doubleToInt (this.seqPanel.seqCanvas.getSize ().width / this.av.getCharWidth ()) - 1);
\r
416 }if (evt == null || evt.getSource () === this.vscroll) {
\r
417 var offy = this.vscroll.getValue ();
\r
418 if (this.av.getWrapAlignment ()) {
\r
419 var rowSize = this.seqPanel.seqCanvas.getWrappedCanvasWidth (this.seqPanel.seqCanvas.getSize ().width);
\r
420 this.av.setStartRes (this.vscroll.getValue () * rowSize);
\r
421 this.av.setEndRes ((this.vscroll.getValue () + 1) * rowSize);
\r
423 this.av.setStartSeq (offy);
\r
424 this.av.setEndSeq (offy + Clazz.doubleToInt (this.seqPanel.seqCanvas.getSize ().height / this.av.getCharHeight ()));
\r
425 }}if (this.overviewPanel != null) {
\r
426 this.overviewPanel.setBoxPosition ();
\r
427 }var scrollX = this.av.startRes - oldX;
\r
428 var scrollY = this.av.startSeq - oldY;
\r
429 if (this.av.getWrapAlignment () || !this.fastPaint || this.av.MAC) {
\r
432 if (scrollX > this.av.endRes - this.av.startRes) {
\r
433 scrollX = this.av.endRes - this.av.startRes;
\r
434 } else if (scrollX < this.av.startRes - this.av.endRes) {
\r
435 scrollX = this.av.startRes - this.av.endRes;
\r
436 }this.idPanel.idCanvas.fastPaint (scrollY);
\r
437 this.seqPanel.seqCanvas.fastPaint (scrollX, scrollY);
\r
438 this.scalePanel.repaint ();
\r
439 if (this.av.isShowAnnotation ()) {
\r
440 this.annotationPanel.fastPaint (this.av.getStartRes () - oldX);
\r
441 }}this.sendViewPosition ();
\r
442 if (this.isFollowingComplementScroll ()) {
\r
443 this.setFollowingComplementScroll (false);
\r
445 var ap = this.getComplementPanel ();
\r
446 this.av.scrollComplementaryAlignment (ap);
\r
447 }}, "java.awt.event.AdjustmentEvent");
\r
448 Clazz.defineMethod (c$, "getComplementPanel",
\r
449 ($fz = function () {
\r
451 if (this.alignFrame != null) {
\r
452 var sf = this.alignFrame.getSplitFrame ();
\r
454 var other = sf.getComplement (this.alignFrame);
\r
455 if (other != null) {
\r
456 ap = other.alignPanel;
\r
458 }, $fz.isPrivate = true, $fz));
\r
459 Clazz.defineMethod (c$, "scrollToCentre",
\r
460 function (sr, seqOffset) {
\r
461 var mappedTo = sr.getResultSequence (0);
\r
462 var seqs = this.av.getAlignment ().getSequences ();
\r
463 var sequenceIndex = 0;
\r
464 var matched = false;
\r
465 for (var seq, $seq = seqs.iterator (); $seq.hasNext () && ((seq = $seq.next ()) || true);) {
\r
466 if (mappedTo === seq.getDatasetSequence ()) {
\r
473 }sequenceIndex = Math.max (0, sequenceIndex - seqOffset);
\r
474 sr.getResults ().get (0).setSequence (this.av.getAlignment ().getSequenceAt (sequenceIndex));
\r
475 this.setFollowingComplementScroll (true);
\r
476 this.scrollToPosition (sr, true, true);
\r
477 }, "jalview.datamodel.SearchResults,~N");
\r
478 Clazz.defineMethod (c$, "sendViewPosition",
\r
479 ($fz = function () {
\r
480 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.av.applet).sendViewPosition (this, this.av.startRes, this.av.endRes, this.av.startSeq, this.av.endSeq);
\r
481 }, $fz.isPrivate = true, $fz));
\r
482 Clazz.overrideMethod (c$, "paintAlignment",
\r
483 function (updateOverview) {
\r
484 var sorter = new jalview.analysis.AnnotationSorter (this.getAlignment (), this.av.isShowAutocalculatedAbove ());
\r
485 sorter.sort (this.getAlignment ().getAlignmentAnnotation (), this.av.getSortAnnotationsBy ());
\r
487 if (updateOverview) {
\r
488 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.av.applet).sequenceColoursChanged (this);
\r
489 if (this.overviewPanel != null) {
\r
490 this.overviewPanel.updateOverviewImage ();
\r
492 Clazz.overrideMethod (c$, "paintComponent",
\r
494 System.out.println ("alignframe paintcomp");
\r
495 this.invalidate ();
\r
496 var d = this.idPanel.idCanvas.getSize ();
\r
497 var canvasHeight = this.seqPanel.seqCanvas.getSize ().height;
\r
498 if (canvasHeight != d.height) {
\r
499 this.idPanel.idCanvas.setSize (d.width, canvasHeight);
\r
500 }if (this.av.getWrapAlignment ()) {
\r
501 var maxwidth = this.av.getAlignment ().getWidth ();
\r
502 if (this.av.hasHiddenColumns ()) {
\r
503 maxwidth = this.av.getColumnSelection ().findColumnPosition (maxwidth) - 1;
\r
504 }var canvasWidth = this.seqPanel.seqCanvas.getWrappedCanvasWidth (this.seqPanel.seqCanvas.getSize ().width);
\r
505 if (canvasWidth > 0) {
\r
506 var max = Clazz.doubleToInt (maxwidth / canvasWidth);
\r
507 this.vscroll.setMaximum (1 + max);
\r
508 this.vscroll.setUnitIncrement (1);
\r
509 this.vscroll.setVisibleAmount (1);
\r
511 this.setScrollValues (this.av.getStartRes (), this.av.getStartSeq ());
\r
512 }}, "java.awt.Graphics");
\r
513 Clazz.defineMethod (c$, "jbInit",
\r
514 ($fz = function () {
\r
515 this.setLayout ( new java.awt.BorderLayout ());
\r
516 this.sequenceHolderPanel.setLayout ( new java.awt.BorderLayout ());
\r
517 this.seqPanelHolder.setLayout ( new java.awt.BorderLayout ());
\r
518 this.scalePanelHolder.setBackground (java.awt.Color.white);
\r
519 this.scalePanelHolder.setLayout ( new java.awt.BorderLayout ());
\r
520 this.idPanelHolder.setLayout ( new java.awt.BorderLayout ());
\r
521 this.idSpaceFillerPanel1.setBackground (java.awt.Color.white);
\r
522 this.idSpaceFillerPanel1.setLayout ( new java.awt.BorderLayout ());
\r
523 this.annotationSpaceFillerHolder.setBackground (java.awt.Color.white);
\r
524 this.annotationSpaceFillerHolder.setLayout ( new java.awt.BorderLayout ());
\r
525 this.hscroll.setOrientation (0);
\r
526 var hscrollHolder = new awt2swing.Panel ();
\r
527 hscrollHolder.setLayout ( new java.awt.BorderLayout ());
\r
528 this.hscrollFillerPanel.setBackground (java.awt.Color.white);
\r
529 this.apvscroll.setOrientation (1);
\r
530 this.apvscroll.setVisible (true);
\r
531 this.apvscroll.addAdjustmentListener (this);
\r
532 this.annotationPanelHolder.setBackground (java.awt.Color.white);
\r
533 this.annotationPanelHolder.setLayout ( new java.awt.BorderLayout ());
\r
534 this.annotationPanelHolder.add (this.apvscroll, "East");
\r
535 hscrollHolder.setBackground (java.awt.Color.white);
\r
536 this.seqPanelHolder.setBackground (java.awt.Color.white);
\r
537 this.idPanelHolder.setBackground (java.awt.Color.white);
\r
538 this.sequenceHolderPanel.add (this.scalePanelHolder, "North");
\r
539 this.sequenceHolderPanel.add (this.seqPanelHolder, "Center");
\r
540 this.seqPanelHolder.add (this.vscroll, "East");
\r
541 this.add (this.idPanelHolder, "West");
\r
542 this.idPanelHolder.add (this.idSpaceFillerPanel1, "North");
\r
543 this.idPanelHolder.add (this.annotationSpaceFillerHolder, "South");
\r
544 this.add (hscrollHolder, "South");
\r
545 hscrollHolder.add (this.hscroll, "Center");
\r
546 hscrollHolder.add (this.hscrollFillerPanel, "West");
\r
547 this.add (this.sequenceHolderPanel, "Center");
\r
548 }, $fz.isPrivate = true, $fz));
\r
549 Clazz.defineMethod (c$, "updateAnnotation",
\r
551 this.updateAnnotation (false);
\r
553 Clazz.defineMethod (c$, "updateAnnotation",
\r
554 function (applyGlobalSettings) {
\r
555 this.updateAnnotation (applyGlobalSettings, false);
\r
557 Clazz.defineMethod (c$, "updateAnnotation",
\r
558 function (applyGlobalSettings, preserveNewGroupSettings) {
\r
559 this.av.updateGroupAnnotationSettings (applyGlobalSettings, preserveNewGroupSettings);
\r
560 this.adjustAnnotationHeight ();
\r
562 Clazz.overrideMethod (c$, "getAlignment",
\r
564 return this.av.getAlignment ();
\r
566 Clazz.overrideMethod (c$, "getViewName",
\r
568 return this.getName ();
\r
570 Clazz.overrideMethod (c$, "getStructureSelectionManager",
\r
572 return jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.av.applet);
\r
574 Clazz.overrideMethod (c$, "raiseOOMWarning",
\r
575 function (string, error) {
\r
576 System.err.println ("Out of memory whilst '" + string + "'");
\r
577 error.printStackTrace ();
\r
578 }, "~S,OutOfMemoryError");
\r
579 Clazz.defineMethod (c$, "setFollowingComplementScroll",
\r
581 this.followingComplementScroll = b;
\r
583 Clazz.defineMethod (c$, "isFollowingComplementScroll",
\r
585 return this.followingComplementScroll;
\r
587 c$.$AlignmentPanel$1$ = function () {
\r
589 c$ = Clazz.declareAnonymous (jalview.appletgui, "AlignmentPanel$1", java.awt.event.ComponentAdapter);
\r
590 Clazz.overrideMethod (c$, "componentResized",
\r
592 this.b$["jalview.appletgui.AlignmentPanel"].setScrollValues (this.f$.av.getStartRes (), this.f$.av.getStartSeq ());
\r
593 if (this.b$["jalview.appletgui.AlignmentPanel"].getSize ().height > 0 && this.b$["jalview.appletgui.AlignmentPanel"].annotationPanelHolder.getSize ().height > 0) {
\r
594 this.b$["jalview.appletgui.AlignmentPanel"].validateAnnotationDimensions (false);
\r
595 }this.b$["jalview.appletgui.AlignmentPanel"].repaint ();
\r
596 }, "java.awt.event.ComponentEvent");
\r
599 c$.$AlignmentPanel$2$ = function () {
\r
601 c$ = Clazz.declareAnonymous (jalview.appletgui, "AlignmentPanel$2", null, java.beans.PropertyChangeListener);
\r
602 Clazz.overrideMethod (c$, "propertyChange",
\r
604 if (evt.getPropertyName ().equals ("alignment")) {
\r
605 jalview.appletgui.PaintRefresher.Refresh (this.f$.ap, this.f$.av.getSequenceSetId (), true, true);
\r
606 this.b$["jalview.appletgui.AlignmentPanel"].alignmentChanged ();
\r
607 }}, "java.beans.PropertyChangeEvent");
\r