JAL-1807 still testing
[jalviewjs.git] / bin / jalview / appletgui / ScalePanel.js
index eddee91..755df0a 100644 (file)
-Clazz.declarePackage ("jalview.appletgui");
-Clazz.load (["awt2swing.Panel", "java.awt.event.MouseListener", "$.MouseMotionListener"], "jalview.appletgui.ScalePanel", ["awt2swing.MenuItem", "$.PopupMenu", "jalview.datamodel.SequenceGroup", "jalview.util.MessageManager", "java.awt.Color", "java.awt.event.ActionListener"], function () {
-c$ = Clazz.decorateAsClass (function () {
-this.offy = 4;
-this.$width = 0;
-this.av = null;
-this.ap = null;
-this.stretchingGroup = false;
-this.min = 0;
-this.max = 0;
-this.mouseDragging = false;
-this.reveal = null;
-Clazz.instantialize (this, arguments);
-}, jalview.appletgui, "ScalePanel", awt2swing.Panel, [java.awt.event.MouseMotionListener, java.awt.event.MouseListener]);
-Clazz.makeConstructor (c$, 
-function (av, ap) {
-Clazz.superConstructor (this, jalview.appletgui.ScalePanel, []);
-this.setName ("scalePanel");
-this.setLayout (null);
-this.av = av;
-this.ap = ap;
-this.addMouseListener (this);
-this.addMouseMotionListener (this);
-}, "jalview.appletgui.AlignViewport,jalview.appletgui.AlignmentPanel");
-Clazz.overrideMethod (c$, "mousePressed", 
-function (evt) {
-var x = (Clazz.doubleToInt (evt.getX () / this.av.getCharWidth ())) + this.av.getStartRes ();
-var res;
-if (this.av.hasHiddenColumns ()) {
-res = this.av.getColumnSelection ().adjustForHiddenColumns (x);
-} else {
-res = x;
-}this.min = res;
-this.max = res;
-if ((evt.getModifiers () & 4) == 4) {
-var pop =  new awt2swing.PopupMenu ();
-if (this.reveal != null) {
-var item =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.reveal"));
-item.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.ScalePanel$1") ? 0 : jalview.appletgui.ScalePanel.$ScalePanel$1$ ()), Clazz.innerTypeInstance (jalview.appletgui.ScalePanel$1, this, null)));
-pop.add (item);
-if (this.av.getColumnSelection ().hasManyHiddenColumns ()) {
-item =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("action.reveal_all"));
-item.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.ScalePanel$2") ? 0 : jalview.appletgui.ScalePanel.$ScalePanel$2$ ()), Clazz.innerTypeInstance (jalview.appletgui.ScalePanel$2, this, null)));
-pop.add (item);
-}this.add (pop);
-pop.show (this, evt.getX (), evt.getY ());
-} else if (this.av.getColumnSelection ().contains (res)) {
-var item =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.hide_columns"));
-item.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.ScalePanel$3") ? 0 : jalview.appletgui.ScalePanel.$ScalePanel$3$ ()), Clazz.innerTypeInstance (jalview.appletgui.ScalePanel$3, this, Clazz.cloneFinals ("res", res))));
-pop.add (item);
-this.add (pop);
-pop.show (this, evt.getX (), evt.getY ());
-}} else {
-if (!evt.isControlDown () && !evt.isShiftDown ()) {
-this.av.getColumnSelection ().clear ();
-}this.av.getColumnSelection ().addElement (res);
-var sg =  new jalview.datamodel.SequenceGroup ();
-for (var i = 0; i < this.av.getAlignment ().getSequences ().size (); i++) {
-sg.addSequence (this.av.getAlignment ().getSequenceAt (i), false);
-}
-sg.setStartRes (res);
-sg.setEndRes (res);
-this.av.setSelectionGroup (sg);
-if (evt.isShiftDown ()) {
-var min = Math.min (this.av.getColumnSelection ().getMin (), res);
-var max = Math.max (this.av.getColumnSelection ().getMax (), res);
-for (var i = min; i < max; i++) {
-this.av.getColumnSelection ().addElement (i);
-}
-sg.setStartRes (min);
-sg.setEndRes (max);
-}}this.ap.paintAlignment (true);
-this.av.sendSelection ();
-}, "java.awt.event.MouseEvent");
-Clazz.overrideMethod (c$, "mouseReleased", 
-function (evt) {
-this.mouseDragging = false;
-var res = (Clazz.doubleToInt (evt.getX () / this.av.getCharWidth ())) + this.av.getStartRes ();
-if (res > this.av.getAlignment ().getWidth ()) {
-res = this.av.getAlignment ().getWidth () - 1;
-}if (this.av.hasHiddenColumns ()) {
-res = this.av.getColumnSelection ().adjustForHiddenColumns (res);
-}if (!this.stretchingGroup) {
-this.ap.paintAlignment (false);
-return;
-}var sg = this.av.getSelectionGroup ();
-if (res > sg.getStartRes ()) {
-sg.setEndRes (res);
-} else if (res < sg.getStartRes ()) {
-sg.setStartRes (res);
-}this.stretchingGroup = false;
-this.ap.paintAlignment (false);
-this.av.sendSelection ();
-}, "java.awt.event.MouseEvent");
-Clazz.overrideMethod (c$, "mouseDragged", 
-function (evt) {
-this.mouseDragging = true;
-var res = (Clazz.doubleToInt (evt.getX () / this.av.getCharWidth ())) + this.av.getStartRes ();
-if (res < 0) {
-res = 0;
-}if (this.av.hasHiddenColumns ()) {
-res = this.av.getColumnSelection ().adjustForHiddenColumns (res);
-}if (res > this.av.getAlignment ().getWidth ()) {
-res = this.av.getAlignment ().getWidth () - 1;
-}if (res < this.min) {
-this.min = res;
-}if (res > this.max) {
-this.max = res;
-}var sg = this.av.getSelectionGroup ();
-if (sg != null) {
-this.stretchingGroup = true;
-if (!this.av.getColumnSelection ().contains (res)) {
-this.av.getColumnSelection ().addElement (res);
-}if (res > sg.getStartRes ()) {
-sg.setEndRes (res);
-}if (res < sg.getStartRes ()) {
-sg.setStartRes (res);
-}var col;
-for (var i = this.min; i <= this.max; i++) {
-col = this.av.getColumnSelection ().adjustForHiddenColumns (i);
-if ((col < sg.getStartRes ()) || (col > sg.getEndRes ())) {
-this.av.getColumnSelection ().removeElement (col);
-} else {
-this.av.getColumnSelection ().addElement (col);
-}}
-this.ap.paintAlignment (false);
-}}, "java.awt.event.MouseEvent");
-Clazz.overrideMethod (c$, "mouseEntered", 
-function (evt) {
-if (this.mouseDragging) {
-this.ap.seqPanel.scrollCanvas (null);
-}}, "java.awt.event.MouseEvent");
-Clazz.overrideMethod (c$, "mouseExited", 
-function (evt) {
-if (this.mouseDragging) {
-this.ap.seqPanel.scrollCanvas (evt);
-}}, "java.awt.event.MouseEvent");
-Clazz.overrideMethod (c$, "mouseClicked", 
-function (evt) {
-}, "java.awt.event.MouseEvent");
-Clazz.overrideMethod (c$, "mouseMoved", 
-function (evt) {
-if (!this.av.hasHiddenColumns ()) {
-return;
-}var res = (Clazz.doubleToInt (evt.getX () / this.av.getCharWidth ())) + this.av.getStartRes ();
-res = this.av.getColumnSelection ().adjustForHiddenColumns (res);
-this.reveal = null;
-for (var region, $region = this.av.getColumnSelection ().getHiddenColumns ().iterator (); $region.hasNext () && ((region = $region.next ()) || true);) {
-if (res + 1 == region[0] || res - 1 == region[1]) {
-this.reveal = region;
-break;
-}}
-this.repaint ();
-}, "java.awt.event.MouseEvent");
-Clazz.overrideMethod (c$, "paintComponent", 
-function (g) {
-if (this.av.getWrapAlignment ()) return;
-this.drawScale (g, this.av.getStartRes (), this.av.getEndRes (), this.getSize ().width, this.getSize ().height);
-}, "java.awt.Graphics");
-Clazz.defineMethod (c$, "drawScale", 
-function (gg, startx, endx, width, height) {
-gg.setFont (this.av.getFont ());
-gg.setColor (java.awt.Color.white);
-gg.fillRect (0, 0, width, height);
-gg.setColor (java.awt.Color.black);
-var cs = this.av.getColumnSelection ();
-gg.setColor ( new java.awt.Color (220, 0, 0));
-var avcharWidth = this.av.getCharWidth ();
-var avcharHeight = this.av.getCharHeight ();
-for (var i = 0; i < cs.size (); i++) {
-var sel = cs.columnAt (i);
-if (this.av.hasHiddenColumns ()) {
-sel = this.av.getColumnSelection ().findColumnPosition (sel);
-}if ((sel >= startx) && (sel <= endx)) {
-gg.fillRect ((sel - startx) * avcharWidth, 0, avcharWidth, this.getSize ().height);
-}}
-gg.setColor (java.awt.Color.black);
-var scalestartx = (Clazz.doubleToInt (startx / 10)) * 10;
-var fm = gg.getFontMetrics (this.av.getFont ());
-var y = avcharHeight - fm.getDescent ();
-if ((scalestartx % 10) == 0) {
-scalestartx += 5;
-}var string;
-var maxX = 0;
-for (var i = scalestartx; i < endx; i += 5) {
-if ((i % 10) == 0) {
-string = String.valueOf (this.av.getColumnSelection ().adjustForHiddenColumns (i));
-if ((i - startx - 1) * avcharWidth > maxX) {
-gg.drawString (string, (i - startx - 1) * avcharWidth, y);
-maxX = (i - startx + 1) * avcharWidth + fm.stringWidth (string);
-}gg.drawLine (((i - startx - 1) * avcharWidth) + (Clazz.doubleToInt (avcharWidth / 2)), y + 2, ((i - startx - 1) * avcharWidth) + (Clazz.doubleToInt (avcharWidth / 2)), y + (fm.getDescent () * 2));
-} else {
-gg.drawLine (((i - startx - 1) * avcharWidth) + (Clazz.doubleToInt (avcharWidth / 2)), y + fm.getDescent (), ((i - startx - 1) * avcharWidth) + (Clazz.doubleToInt (avcharWidth / 2)), y + (fm.getDescent () * 2));
-}}
-if (this.av.hasHiddenColumns ()) {
-gg.setColor (java.awt.Color.blue);
-var res;
-if (this.av.getShowHiddenMarkers ()) {
-for (var i = 0; i < this.av.getColumnSelection ().getHiddenColumns ().size (); i++) {
-res = this.av.getColumnSelection ().findHiddenRegionPosition (i) - startx;
-if (res < 0 || res > endx - scalestartx) {
-continue;
-}gg.fillPolygon ( Clazz.newIntArray (-1, [res * avcharWidth - Clazz.doubleToInt (avcharHeight / 4), res * avcharWidth + Clazz.doubleToInt (avcharHeight / 4), res * avcharWidth]),  Clazz.newIntArray (-1, [y - Clazz.doubleToInt (avcharHeight / 2), y - Clazz.doubleToInt (avcharHeight / 2), y + 8]), 3);
-}
-}if (this.reveal != null && this.reveal[0] > startx && this.reveal[0] < endx) {
-gg.drawString (jalview.util.MessageManager.getString ("label.reveal_columns"), this.reveal[0] * avcharWidth, 0);
-}}}, "java.awt.Graphics,~N,~N,~N,~N");
-c$.$ScalePanel$1$ = function () {
-Clazz.pu$h ();
-c$ = Clazz.declareAnonymous (jalview.appletgui, "ScalePanel$1", null, java.awt.event.ActionListener);
-Clazz.overrideMethod (c$, "actionPerformed", 
-function (e) {
-this.b$["jalview.appletgui.ScalePanel"].av.showColumn (this.b$["jalview.appletgui.ScalePanel"].reveal[0]);
-this.b$["jalview.appletgui.ScalePanel"].reveal = null;
-this.b$["jalview.appletgui.ScalePanel"].ap.paintAlignment (true);
-if (this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel != null) {
-this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel.updateOverviewImage ();
-}}, "java.awt.event.ActionEvent");
-c$ = Clazz.p0p ();
-};
-c$.$ScalePanel$2$ = function () {
-Clazz.pu$h ();
-c$ = Clazz.declareAnonymous (jalview.appletgui, "ScalePanel$2", null, java.awt.event.ActionListener);
-Clazz.overrideMethod (c$, "actionPerformed", 
-function (e) {
-this.b$["jalview.appletgui.ScalePanel"].av.showAllHiddenColumns ();
-this.b$["jalview.appletgui.ScalePanel"].reveal = null;
-this.b$["jalview.appletgui.ScalePanel"].ap.paintAlignment (true);
-if (this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel != null) {
-this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel.updateOverviewImage ();
-}}, "java.awt.event.ActionEvent");
-c$ = Clazz.p0p ();
-};
-c$.$ScalePanel$3$ = function () {
-Clazz.pu$h ();
-c$ = Clazz.declareAnonymous (jalview.appletgui, "ScalePanel$3", null, java.awt.event.ActionListener);
-Clazz.overrideMethod (c$, "actionPerformed", 
-function (e) {
-this.b$["jalview.appletgui.ScalePanel"].av.hideColumns (this.f$.res, this.f$.res);
-if (this.b$["jalview.appletgui.ScalePanel"].av.getSelectionGroup () != null && this.b$["jalview.appletgui.ScalePanel"].av.getSelectionGroup ().getSize () == this.b$["jalview.appletgui.ScalePanel"].av.getAlignment ().getHeight ()) {
-this.b$["jalview.appletgui.ScalePanel"].av.setSelectionGroup (null);
-}this.b$["jalview.appletgui.ScalePanel"].ap.paintAlignment (true);
-if (this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel != null) {
-this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel.updateOverviewImage ();
-}}, "java.awt.event.ActionEvent");
-c$ = Clazz.p0p ();
-};
-});
+Clazz.declarePackage ("jalview.appletgui");\r
+Clazz.load (["awt2swing.Panel", "java.awt.event.MouseListener", "$.MouseMotionListener"], "jalview.appletgui.ScalePanel", ["awt2swing.MenuItem", "$.PopupMenu", "jalview.datamodel.SequenceGroup", "jalview.util.MessageManager", "java.awt.Color", "java.awt.event.ActionListener"], function () {\r
+c$ = Clazz.decorateAsClass (function () {\r
+this.offy = 4;\r
+this.$width = 0;\r
+this.av = null;\r
+this.ap = null;\r
+this.stretchingGroup = false;\r
+this.min = 0;\r
+this.max = 0;\r
+this.mouseDragging = false;\r
+this.reveal = null;\r
+Clazz.instantialize (this, arguments);\r
+}, jalview.appletgui, "ScalePanel", awt2swing.Panel, [java.awt.event.MouseMotionListener, java.awt.event.MouseListener]);\r
+Clazz.makeConstructor (c$, \r
+function (av, ap) {\r
+Clazz.superConstructor (this, jalview.appletgui.ScalePanel, []);\r
+this.setName ("scalePanel");\r
+this.setLayout (null);\r
+this.av = av;\r
+this.ap = ap;\r
+this.addMouseListener (this);\r
+this.addMouseMotionListener (this);\r
+}, "jalview.appletgui.AlignViewport,jalview.appletgui.AlignmentPanel");\r
+Clazz.overrideMethod (c$, "mousePressed", \r
+function (evt) {\r
+var x = (Clazz.doubleToInt (evt.getX () / this.av.getCharWidth ())) + this.av.getStartRes ();\r
+var res;\r
+if (this.av.hasHiddenColumns ()) {\r
+res = this.av.getColumnSelection ().adjustForHiddenColumns (x);\r
+} else {\r
+res = x;\r
+}this.min = res;\r
+this.max = res;\r
+if ((evt.getModifiers () & 4) == 4) {\r
+var pop =  new awt2swing.PopupMenu ();\r
+if (this.reveal != null) {\r
+var item =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.reveal"));\r
+item.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.ScalePanel$1") ? 0 : jalview.appletgui.ScalePanel.$ScalePanel$1$ ()), Clazz.innerTypeInstance (jalview.appletgui.ScalePanel$1, this, null)));\r
+pop.add (item);\r
+if (this.av.getColumnSelection ().hasManyHiddenColumns ()) {\r
+item =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("action.reveal_all"));\r
+item.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.ScalePanel$2") ? 0 : jalview.appletgui.ScalePanel.$ScalePanel$2$ ()), Clazz.innerTypeInstance (jalview.appletgui.ScalePanel$2, this, null)));\r
+pop.add (item);\r
+}this.add (pop);\r
+pop.show (this, evt.getX (), evt.getY ());\r
+} else if (this.av.getColumnSelection ().contains (res)) {\r
+var item =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.hide_columns"));\r
+item.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.ScalePanel$3") ? 0 : jalview.appletgui.ScalePanel.$ScalePanel$3$ ()), Clazz.innerTypeInstance (jalview.appletgui.ScalePanel$3, this, Clazz.cloneFinals ("res", res))));\r
+pop.add (item);\r
+this.add (pop);\r
+pop.show (this, evt.getX (), evt.getY ());\r
+}} else {\r
+if (!evt.isControlDown () && !evt.isShiftDown ()) {\r
+this.av.getColumnSelection ().clear ();\r
+}this.av.getColumnSelection ().addElement (res);\r
+var sg =  new jalview.datamodel.SequenceGroup ();\r
+for (var i = 0; i < this.av.getAlignment ().getSequences ().size (); i++) {\r
+sg.addSequence (this.av.getAlignment ().getSequenceAt (i), false);\r
+}\r
+sg.setStartRes (res);\r
+sg.setEndRes (res);\r
+this.av.setSelectionGroup (sg);\r
+if (evt.isShiftDown ()) {\r
+var min = Math.min (this.av.getColumnSelection ().getMin (), res);\r
+var max = Math.max (this.av.getColumnSelection ().getMax (), res);\r
+for (var i = min; i < max; i++) {\r
+this.av.getColumnSelection ().addElement (i);\r
+}\r
+sg.setStartRes (min);\r
+sg.setEndRes (max);\r
+}}this.ap.paintAlignment (true);\r
+this.av.sendSelection ();\r
+}, "java.awt.event.MouseEvent");\r
+Clazz.overrideMethod (c$, "mouseReleased", \r
+function (evt) {\r
+this.mouseDragging = false;\r
+var res = (Clazz.doubleToInt (evt.getX () / this.av.getCharWidth ())) + this.av.getStartRes ();\r
+if (res > this.av.getAlignment ().getWidth ()) {\r
+res = this.av.getAlignment ().getWidth () - 1;\r
+}if (this.av.hasHiddenColumns ()) {\r
+res = this.av.getColumnSelection ().adjustForHiddenColumns (res);\r
+}if (!this.stretchingGroup) {\r
+this.ap.paintAlignment (false);\r
+return;\r
+}var sg = this.av.getSelectionGroup ();\r
+if (res > sg.getStartRes ()) {\r
+sg.setEndRes (res);\r
+} else if (res < sg.getStartRes ()) {\r
+sg.setStartRes (res);\r
+}this.stretchingGroup = false;\r
+this.ap.paintAlignment (false);\r
+this.av.sendSelection ();\r
+}, "java.awt.event.MouseEvent");\r
+Clazz.overrideMethod (c$, "mouseDragged", \r
+function (evt) {\r
+this.mouseDragging = true;\r
+var res = (Clazz.doubleToInt (evt.getX () / this.av.getCharWidth ())) + this.av.getStartRes ();\r
+if (res < 0) {\r
+res = 0;\r
+}if (this.av.hasHiddenColumns ()) {\r
+res = this.av.getColumnSelection ().adjustForHiddenColumns (res);\r
+}if (res > this.av.getAlignment ().getWidth ()) {\r
+res = this.av.getAlignment ().getWidth () - 1;\r
+}if (res < this.min) {\r
+this.min = res;\r
+}if (res > this.max) {\r
+this.max = res;\r
+}var sg = this.av.getSelectionGroup ();\r
+if (sg != null) {\r
+this.stretchingGroup = true;\r
+if (!this.av.getColumnSelection ().contains (res)) {\r
+this.av.getColumnSelection ().addElement (res);\r
+}if (res > sg.getStartRes ()) {\r
+sg.setEndRes (res);\r
+}if (res < sg.getStartRes ()) {\r
+sg.setStartRes (res);\r
+}var col;\r
+for (var i = this.min; i <= this.max; i++) {\r
+col = this.av.getColumnSelection ().adjustForHiddenColumns (i);\r
+if ((col < sg.getStartRes ()) || (col > sg.getEndRes ())) {\r
+this.av.getColumnSelection ().removeElement (col);\r
+} else {\r
+this.av.getColumnSelection ().addElement (col);\r
+}}\r
+this.ap.paintAlignment (false);\r
+}}, "java.awt.event.MouseEvent");\r
+Clazz.overrideMethod (c$, "mouseEntered", \r
+function (evt) {\r
+if (this.mouseDragging) {\r
+this.ap.seqPanel.scrollCanvas (null);\r
+}}, "java.awt.event.MouseEvent");\r
+Clazz.overrideMethod (c$, "mouseExited", \r
+function (evt) {\r
+if (this.mouseDragging) {\r
+this.ap.seqPanel.scrollCanvas (evt);\r
+}}, "java.awt.event.MouseEvent");\r
+Clazz.overrideMethod (c$, "mouseClicked", \r
+function (evt) {\r
+}, "java.awt.event.MouseEvent");\r
+Clazz.overrideMethod (c$, "mouseMoved", \r
+function (evt) {\r
+if (!this.av.hasHiddenColumns ()) {\r
+return;\r
+}var res = (Clazz.doubleToInt (evt.getX () / this.av.getCharWidth ())) + this.av.getStartRes ();\r
+res = this.av.getColumnSelection ().adjustForHiddenColumns (res);\r
+this.reveal = null;\r
+for (var region, $region = this.av.getColumnSelection ().getHiddenColumns ().iterator (); $region.hasNext () && ((region = $region.next ()) || true);) {\r
+if (res + 1 == region[0] || res - 1 == region[1]) {\r
+this.reveal = region;\r
+break;\r
+}}\r
+this.repaint ();\r
+}, "java.awt.event.MouseEvent");\r
+Clazz.overrideMethod (c$, "paintComponent", \r
+function (g) {\r
+if (this.av.getWrapAlignment ()) return;\r
+this.drawScale (g, this.av.getStartRes (), this.av.getEndRes (), this.getSize ().width, this.getSize ().height);\r
+}, "java.awt.Graphics");\r
+Clazz.defineMethod (c$, "drawScale", \r
+function (gg, startx, endx, width, height) {\r
+gg.setFont (this.av.getFont ());\r
+gg.setColor (java.awt.Color.white);\r
+gg.fillRect (0, 0, width, height);\r
+gg.setColor (java.awt.Color.black);\r
+var cs = this.av.getColumnSelection ();\r
+gg.setColor ( new java.awt.Color (220, 0, 0));\r
+var avcharWidth = this.av.getCharWidth ();\r
+var avcharHeight = this.av.getCharHeight ();\r
+for (var i = 0; i < cs.size (); i++) {\r
+var sel = cs.columnAt (i);\r
+if (this.av.hasHiddenColumns ()) {\r
+sel = this.av.getColumnSelection ().findColumnPosition (sel);\r
+}if ((sel >= startx) && (sel <= endx)) {\r
+gg.fillRect ((sel - startx) * avcharWidth, 0, avcharWidth, this.getSize ().height);\r
+}}\r
+gg.setColor (java.awt.Color.black);\r
+var scalestartx = (Clazz.doubleToInt (startx / 10)) * 10;\r
+var fm = gg.getFontMetrics (this.av.getFont ());\r
+var y = avcharHeight - fm.getDescent ();\r
+if ((scalestartx % 10) == 0) {\r
+scalestartx += 5;\r
+}var string;\r
+var maxX = 0;\r
+for (var i = scalestartx; i < endx; i += 5) {\r
+if ((i % 10) == 0) {\r
+string = String.valueOf (this.av.getColumnSelection ().adjustForHiddenColumns (i));\r
+if ((i - startx - 1) * avcharWidth > maxX) {\r
+gg.drawString (string, (i - startx - 1) * avcharWidth, y);\r
+maxX = (i - startx + 1) * avcharWidth + fm.stringWidth (string);\r
+}gg.drawLine (((i - startx - 1) * avcharWidth) + (Clazz.doubleToInt (avcharWidth / 2)), y + 2, ((i - startx - 1) * avcharWidth) + (Clazz.doubleToInt (avcharWidth / 2)), y + (fm.getDescent () * 2));\r
+} else {\r
+gg.drawLine (((i - startx - 1) * avcharWidth) + (Clazz.doubleToInt (avcharWidth / 2)), y + fm.getDescent (), ((i - startx - 1) * avcharWidth) + (Clazz.doubleToInt (avcharWidth / 2)), y + (fm.getDescent () * 2));\r
+}}\r
+if (this.av.hasHiddenColumns ()) {\r
+gg.setColor (java.awt.Color.blue);\r
+var res;\r
+if (this.av.getShowHiddenMarkers ()) {\r
+for (var i = 0; i < this.av.getColumnSelection ().getHiddenColumns ().size (); i++) {\r
+res = this.av.getColumnSelection ().findHiddenRegionPosition (i) - startx;\r
+if (res < 0 || res > endx - scalestartx) {\r
+continue;\r
+}gg.fillPolygon ( Clazz.newIntArray (-1, [res * avcharWidth - Clazz.doubleToInt (avcharHeight / 4), res * avcharWidth + Clazz.doubleToInt (avcharHeight / 4), res * avcharWidth]),  Clazz.newIntArray (-1, [y - Clazz.doubleToInt (avcharHeight / 2), y - Clazz.doubleToInt (avcharHeight / 2), y + 8]), 3);\r
+}\r
+}if (this.reveal != null && this.reveal[0] > startx && this.reveal[0] < endx) {\r
+gg.drawString (jalview.util.MessageManager.getString ("label.reveal_columns"), this.reveal[0] * avcharWidth, 0);\r
+}}}, "java.awt.Graphics,~N,~N,~N,~N");\r
+c$.$ScalePanel$1$ = function () {\r
+Clazz.pu$h ();\r
+c$ = Clazz.declareAnonymous (jalview.appletgui, "ScalePanel$1", null, java.awt.event.ActionListener);\r
+Clazz.overrideMethod (c$, "actionPerformed", \r
+function (e) {\r
+this.b$["jalview.appletgui.ScalePanel"].av.showColumn (this.b$["jalview.appletgui.ScalePanel"].reveal[0]);\r
+this.b$["jalview.appletgui.ScalePanel"].reveal = null;\r
+this.b$["jalview.appletgui.ScalePanel"].ap.paintAlignment (true);\r
+if (this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel != null) {\r
+this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel.updateOverviewImage ();\r
+}}, "java.awt.event.ActionEvent");\r
+c$ = Clazz.p0p ();\r
+};\r
+c$.$ScalePanel$2$ = function () {\r
+Clazz.pu$h ();\r
+c$ = Clazz.declareAnonymous (jalview.appletgui, "ScalePanel$2", null, java.awt.event.ActionListener);\r
+Clazz.overrideMethod (c$, "actionPerformed", \r
+function (e) {\r
+this.b$["jalview.appletgui.ScalePanel"].av.showAllHiddenColumns ();\r
+this.b$["jalview.appletgui.ScalePanel"].reveal = null;\r
+this.b$["jalview.appletgui.ScalePanel"].ap.paintAlignment (true);\r
+if (this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel != null) {\r
+this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel.updateOverviewImage ();\r
+}}, "java.awt.event.ActionEvent");\r
+c$ = Clazz.p0p ();\r
+};\r
+c$.$ScalePanel$3$ = function () {\r
+Clazz.pu$h ();\r
+c$ = Clazz.declareAnonymous (jalview.appletgui, "ScalePanel$3", null, java.awt.event.ActionListener);\r
+Clazz.overrideMethod (c$, "actionPerformed", \r
+function (e) {\r
+this.b$["jalview.appletgui.ScalePanel"].av.hideColumns (this.f$.res, this.f$.res);\r
+if (this.b$["jalview.appletgui.ScalePanel"].av.getSelectionGroup () != null && this.b$["jalview.appletgui.ScalePanel"].av.getSelectionGroup ().getSize () == this.b$["jalview.appletgui.ScalePanel"].av.getAlignment ().getHeight ()) {\r
+this.b$["jalview.appletgui.ScalePanel"].av.setSelectionGroup (null);\r
+}this.b$["jalview.appletgui.ScalePanel"].ap.paintAlignment (true);\r
+if (this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel != null) {\r
+this.b$["jalview.appletgui.ScalePanel"].ap.overviewPanel.updateOverviewImage ();\r
+}}, "java.awt.event.ActionEvent");\r
+c$ = Clazz.p0p ();\r
+};\r
+});\r