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 () {
7 this.searchResults = null;
11 this.textfield = 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 ();
32 Clazz.makeConstructor (c$,
34 Clazz.superConstructor (this, jalview.appletgui.Finder, []);
38 if (Clazz.exceptionOf (e, Exception)) {
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",
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) {
63 } else if (evt.getSource () === this.createNewGroup) {
64 this.createNewGroup_actionPerformed ();
65 }}, "java.awt.event.ActionEvent");
66 Clazz.defineMethod (c$, "createNewGroup_actionPerformed",
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");
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);
79 Clazz.defineMethod (c$, "doSearch",
81 if (this.ap.av.applet.currentAlignFrame != null) {
82 this.ap = this.ap.av.applet.currentAlignFrame.alignPanel;
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)) {
98 this.ap.idPanel.highlightSearchResults (idMatch);
100 this.ap.idPanel.highlightSearchResults (null);
101 }if (this.searchResults.getSize () > 0) {
103 this.createNewGroup.setEnabled (true);
105 this.searchResults = null;
106 }this.ap.highlightSearchResults (this.searchResults);
108 this.ap.alignFrame.setStatus (jalview.util.MessageManager.getString ("label.finished_searching"));
113 var message = (idMatch.size () > 0) ? "" + idMatch.size () + " IDs" : "";
114 if (idMatch.size () > 0 && this.searchResults != null && this.searchResults.getSize () > 0) {
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])));
120 this.ap.alignFrame.setStatus (jalview.util.MessageManager.formatMessage ("label.found_match_for", Clazz.newArray (-1, [searchString])));
122 Clazz.defineMethod (c$, "jbInit",
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",
164 this.findNext.setEnabled (true);
165 }, "java.awt.event.KeyEvent");
166 c$.$Finder$1$ = function () {
168 c$ = Clazz.declareAnonymous (jalview.appletgui, "Finder$1", java.awt.event.WindowAdapter);
169 Clazz.overrideMethod (c$, "windowClosing",
171 this.f$.ap.highlightSearchResults (null);
172 }, "java.awt.event.WindowEvent");
175 c$.$Finder$2$ = function () {
177 c$ = Clazz.declareAnonymous (jalview.appletgui, "Finder$2", java.awt.event.KeyAdapter);
178 Clazz.overrideMethod (c$, "keyTyped",
180 this.b$["jalview.appletgui.Finder"].textfield_keyTyped (e);
181 }, "java.awt.event.KeyEvent");