JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / bin / jalview / appletgui / Finder.js
1 Clazz.declarePackage ("jalview.appletgui");
2 Clazz.load (["awt2swing.Panel", "java.awt.event.ActionListener", "awt2swing.Button", "$.Checkbox", "$.Label", "$.TextField", "java.awt.GridLayout"], "jalview.appletgui.Finder", ["awt2swing.Frame", "jalview.analysis.Finder", "jalview.bin.JalviewLite", "jalview.datamodel.SequenceFeature", "jalview.util.MessageManager", "java.awt.Font", "$.Rectangle", "java.awt.event.KeyAdapter", "$.WindowAdapter"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.av = null;
5 this.ap = null;
6 this.frame = null;
7 this.searchResults = null;
8 this.seqIndex = 0;
9 this.resIndex = -1;
10 this.jLabel1 = null;
11 this.textfield = null;
12 this.findAll = null;
13 this.findNext = null;
14 this.actionsPanel = null;
15 this.gridLayout1 = null;
16 this.createNewGroup = null;
17 this.caseSensitive = null;
18 this.searchDescription = null;
19 Clazz.instantialize (this, arguments);
20 }, jalview.appletgui, "Finder", awt2swing.Panel, java.awt.event.ActionListener);
21 Clazz.prepareFields (c$, function () {
22 this.jLabel1 =  new awt2swing.Label ();
23 this.textfield =  new awt2swing.TextField ();
24 this.findAll =  new awt2swing.Button ();
25 this.findNext =  new awt2swing.Button ();
26 this.actionsPanel =  new awt2swing.Panel ();
27 this.gridLayout1 =  new java.awt.GridLayout ();
28 this.createNewGroup =  new awt2swing.Button ();
29 this.caseSensitive =  new awt2swing.Checkbox ();
30 this.searchDescription =  new awt2swing.Checkbox ();
31 });
32 Clazz.makeConstructor (c$, 
33 function (ap) {
34 Clazz.superConstructor (this, jalview.appletgui.Finder, []);
35 try {
36 this.jbInit ();
37 } catch (e) {
38 if (Clazz.exceptionOf (e, Exception)) {
39 e.printStackTrace ();
40 } else {
41 throw e;
42 }
43 }
44 this.av = ap.av;
45 this.ap = ap;
46 this.frame =  new awt2swing.Frame ();
47 this.frame.add (this);
48 jalview.bin.JalviewLite.addFrame (this.frame, jalview.util.MessageManager.getString ("action.find"), 340, 120);
49 this.frame.repaint ();
50 this.frame.addWindowListener (((Clazz.isClassDefined ("jalview.appletgui.Finder$1") ? 0 : jalview.appletgui.Finder.$Finder$1$ ()), Clazz.innerTypeInstance (jalview.appletgui.Finder$1, this, Clazz.cloneFinals ("ap", ap))));
51 this.textfield.requestFocus ();
52 }, "jalview.appletgui.AlignmentPanel");
53 Clazz.overrideMethod (c$, "actionPerformed", 
54 function (evt) {
55 if (evt.getSource () === this.textfield) {
56 this.doSearch (false);
57 } else if (evt.getSource () === this.findNext) {
58 this.doSearch (false);
59 } else if (evt.getSource () === this.findAll) {
60 this.resIndex = -1;
61 this.seqIndex = 0;
62 this.doSearch (true);
63 } else if (evt.getSource () === this.createNewGroup) {
64 this.createNewGroup_actionPerformed ();
65 }}, "java.awt.event.ActionEvent");
66 Clazz.defineMethod (c$, "createNewGroup_actionPerformed", 
67 function () {
68 var seqs =  new Array (this.searchResults.getSize ());
69 var features =  new Array (this.searchResults.getSize ());
70 for (var i = 0; i < this.searchResults.getSize (); i++) {
71 seqs[i] = this.searchResults.getResultSequence (i);
72 features[i] =  new jalview.datamodel.SequenceFeature (this.textfield.getText ().trim (), "Search Results", null, this.searchResults.getResultStart (i), this.searchResults.getResultEnd (i), "Search Results");
73 }
74 if (this.ap.seqPanel.seqCanvas.getFeatureRenderer ().amendFeatures (seqs, features, true, this.ap)) {
75 this.ap.alignFrame.sequenceFeatures.setState (true);
76 this.av.setShowSequenceFeatures (true);
77 this.ap.highlightSearchResults (null);
78 }});
79 Clazz.defineMethod (c$, "doSearch", 
80 function (findAll) {
81 if (this.ap.av.applet.currentAlignFrame != null) {
82 this.ap = this.ap.av.applet.currentAlignFrame.alignPanel;
83 this.av = this.ap.av;
84 }this.createNewGroup.setEnabled (false);
85 var finder =  new jalview.analysis.Finder (this.av.getAlignment (), this.av.getSelectionGroup (), this.seqIndex, this.resIndex);
86 finder.setCaseSensitive (this.caseSensitive.getState ());
87 finder.setIncludeDescription (this.searchDescription.getState ());
88 finder.setFindAll (findAll);
89 var searchString = this.textfield.getText ();
90 finder.find (searchString);
91 this.seqIndex = finder.getSeqIndex ();
92 this.resIndex = finder.getResIndex ();
93 this.searchResults = finder.getSearchResults ();
94 var idMatch = finder.getIdMatch ();
95 var haveResults = false;
96 if ((idMatch.size () > 0)) {
97 haveResults = true;
98 this.ap.idPanel.highlightSearchResults (idMatch);
99 } else {
100 this.ap.idPanel.highlightSearchResults (null);
101 }if (this.searchResults.getSize () > 0) {
102 haveResults = true;
103 this.createNewGroup.setEnabled (true);
104 } else {
105 this.searchResults = null;
106 }this.ap.highlightSearchResults (this.searchResults);
107 if (!haveResults) {
108 this.ap.alignFrame.setStatus (jalview.util.MessageManager.getString ("label.finished_searching"));
109 this.resIndex = -1;
110 this.seqIndex = 0;
111 } else {
112 if (findAll) {
113 var message = (idMatch.size () > 0) ? "" + idMatch.size () + " IDs" : "";
114 if (idMatch.size () > 0 && this.searchResults != null && this.searchResults.getSize () > 0) {
115 message += " and ";
116 }if (this.searchResults != null) {
117 message += this.searchResults.getSize () + " subsequence matches.";
118 }this.ap.alignFrame.setStatus (jalview.util.MessageManager.formatMessage ("label.search_results",  Clazz.newArray (-1, [searchString, message])));
119 } else {
120 this.ap.alignFrame.setStatus (jalview.util.MessageManager.formatMessage ("label.found_match_for",  Clazz.newArray (-1, [searchString])));
121 }}}, "~B");
122 Clazz.defineMethod (c$, "jbInit", 
123 ($fz = function () {
124 this.jLabel1.setFont ( new java.awt.Font ("Verdana", 0, 12));
125 this.jLabel1.setText (jalview.util.MessageManager.getString ("action.find"));
126 this.jLabel1.setBounds ( new java.awt.Rectangle (3, 30, 34, 15));
127 this.setLayout (null);
128 this.textfield.setFont ( new java.awt.Font ("Verdana", 0, 10));
129 this.textfield.setText ("");
130 this.textfield.setBounds ( new java.awt.Rectangle (40, 17, 133, 21));
131 this.textfield.addKeyListener (((Clazz.isClassDefined ("jalview.appletgui.Finder$2") ? 0 : jalview.appletgui.Finder.$Finder$2$ ()), Clazz.innerTypeInstance (jalview.appletgui.Finder$2, this, null)));
132 this.textfield.addActionListener (this);
133 this.findAll.setFont ( new java.awt.Font ("Verdana", 0, 10));
134 this.findAll.setLabel (jalview.util.MessageManager.getString ("action.find_all"));
135 this.findAll.addActionListener (this);
136 this.findNext.setEnabled (false);
137 this.findNext.setFont ( new java.awt.Font ("Verdana", 0, 10));
138 this.findNext.setLabel (jalview.util.MessageManager.getString ("action.find_next"));
139 this.findNext.addActionListener (this);
140 this.actionsPanel.setBounds ( new java.awt.Rectangle (195, 5, 141, 64));
141 this.actionsPanel.setLayout (this.gridLayout1);
142 this.gridLayout1.setHgap (0);
143 this.gridLayout1.setRows (3);
144 this.gridLayout1.setVgap (2);
145 this.createNewGroup.setEnabled (false);
146 this.createNewGroup.setFont ( new java.awt.Font ("Verdana", 0, 10));
147 this.createNewGroup.setLabel (jalview.util.MessageManager.getString ("label.new_feature"));
148 this.createNewGroup.addActionListener (this);
149 this.caseSensitive.setLabel (jalview.util.MessageManager.getString ("label.match_case"));
150 this.caseSensitive.setBounds ( new java.awt.Rectangle (30, 39, 126, 23));
151 this.searchDescription.setLabel (jalview.util.MessageManager.getString ("label.include_description"));
152 this.searchDescription.setBounds ( new java.awt.Rectangle (30, 59, 170, 23));
153 this.actionsPanel.add (this.findNext, null);
154 this.actionsPanel.add (this.findAll, null);
155 this.actionsPanel.add (this.createNewGroup, null);
156 this.add (this.caseSensitive);
157 this.add (this.textfield, null);
158 this.add (this.jLabel1, null);
159 this.add (this.actionsPanel, null);
160 this.add (this.searchDescription);
161 }, $fz.isPrivate = true, $fz));
162 Clazz.defineMethod (c$, "textfield_keyTyped", 
163 function (e) {
164 this.findNext.setEnabled (true);
165 }, "java.awt.event.KeyEvent");
166 c$.$Finder$1$ = function () {
167 Clazz.pu$h ();
168 c$ = Clazz.declareAnonymous (jalview.appletgui, "Finder$1", java.awt.event.WindowAdapter);
169 Clazz.overrideMethod (c$, "windowClosing", 
170 function (evt) {
171 this.f$.ap.highlightSearchResults (null);
172 }, "java.awt.event.WindowEvent");
173 c$ = Clazz.p0p ();
174 };
175 c$.$Finder$2$ = function () {
176 Clazz.pu$h ();
177 c$ = Clazz.declareAnonymous (jalview.appletgui, "Finder$2", java.awt.event.KeyAdapter);
178 Clazz.overrideMethod (c$, "keyTyped", 
179 function (e) {
180 this.b$["jalview.appletgui.Finder"].textfield_keyTyped (e);
181 }, "java.awt.event.KeyEvent");
182 c$ = Clazz.p0p ();
183 };
184 });