Changeset 5536
- Timestamp:
- 07/10/08 16:31:28 (7 weeks ago)
- Location:
- branches/OmeroEditor/src
- Files:
-
- 1 added
- 7 modified
- 1 moved
-
fields (added)
-
fields/Field.java (moved) (moved from branches/OmeroEditor/src/treeModel/Field.java) (1 diff)
-
search/IndexTermFinder.java (modified) (2 diffs)
-
search/SearchController.java (modified) (6 diffs)
-
treeModel/DynamicTreeDemo.java (modified) (2 diffs)
-
treeModel/FieldRenderer.java (modified) (2 diffs)
-
treeModel/Tree.java (modified) (1 diff)
-
treeModel/TreeEditor.java (modified) (1 diff)
-
treeModel/editActions/DeleteFields.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/OmeroEditor/src/fields/Field.java
r5527 r5536 22 22 */ 23 23 24 package treeModel;24 package fields; 25 25 26 26 import java.util.HashMap; -
branches/OmeroEditor/src/search/IndexTermFinder.java
r5530 r5536 24 24 25 25 26 import java.io.IOException; 27 import java.util.ArrayList; 26 28 import java.util.Date; 27 29 30 import org.apache.lucene.index.CorruptIndexException; 28 31 import org.apache.lucene.index.IndexReader; 29 32 import org.apache.lucene.index.TermEnum; … … 61 64 public static String field = "contents"; 62 65 63 public static void main(String[] args) throws Exception{66 public static String[] getMatchingTerms(String searchString) { 64 67 65 68 66 69 Date start = new Date(); 67 70 68 String searchString = "ant";71 searchString = searchString.toLowerCase(); 69 72 70 73 String searchField = "contents"; 74 75 ArrayList<String> matchingTerms = new ArrayList<String>(); 71 76 72 IndexReader reader = IndexReader.open(index); 77 78 IndexReader reader; 79 try { 80 reader = IndexReader.open(index); 81 TermEnum terms = reader.terms(); 82 83 int termCounter = 0; 84 while (terms.next()) { 85 // ignore terms unless from the field of interest 86 String field = terms.term().field(); 87 if (! field.equals(searchField)) 88 continue; 89 90 String term = terms.term().toString(); 91 term = term.replaceFirst(field + ":", ""); 92 93 if (term.startsWith(searchString)) { 94 System.out.println(termCounter + " " + term); 95 termCounter++; 96 97 matchingTerms.add(term); 98 } 99 } 100 101 Date end = new Date(); 102 System.out.println("Search took " + (end.getTime() - start.getTime()) + 103 " milliseconds"); 104 105 reader.close(); 106 } catch (CorruptIndexException e) { 107 // TODO Auto-generated catch block 108 e.printStackTrace(); 109 } catch (IOException e) { 110 // TODO Auto-generated catch block 111 e.printStackTrace(); 112 } 73 113 74 TermEnum terms = reader.terms(); 75 76 int termCounter = 0; 77 while (terms.next()) { 78 // ignore terms unless from the field of interest 79 String field = terms.term().field(); 80 if (! field.equals(searchField)) 81 continue; 82 83 String term = terms.term().toString(); 84 term = term.replaceFirst(field + ":", ""); 85 86 if (term.startsWith(searchString)) { 87 System.out.println(termCounter + " " + term); 88 termCounter++; 89 } 114 String[] results = new String[matchingTerms.size()]; 115 int termIndex = 0; 116 for (String term : matchingTerms) { 117 results[termIndex] = term; 118 termIndex++; 90 119 } 91 120 92 Date end = new Date(); 93 System.out.println("Search took " + (end.getTime() - start.getTime()) + 94 " milliseconds"); 95 96 reader.close(); 121 return results; 97 122 } 98 123 } -
branches/OmeroEditor/src/search/SearchController.java
r5515 r5536 2 2 3 3 import java.awt.BorderLayout; 4 import java.awt.Rectangle; 4 5 import java.awt.event.ActionEvent; 5 6 import java.awt.event.ActionListener; 7 import java.beans.PropertyChangeEvent; 8 import java.beans.PropertyChangeListener; 6 9 import java.io.File; 7 10 import java.io.FileNotFoundException; … … 13 16 import javax.swing.Icon; 14 17 import javax.swing.JButton; 18 import javax.swing.JDialog; 15 19 import javax.swing.JPanel; 16 20 import javax.swing.JTextField; 21 import javax.swing.event.DocumentEvent; 22 import javax.swing.event.DocumentListener; 17 23 import javax.swing.text.JTextComponent; 18 24 25 import org.openmicroscopy.shoola.util.ui.HistoryDialog; 19 26 import org.xml.sax.SAXParseException; 20 27 … … 65 72 public class SearchController 66 73 extends AbstractComponent 67 implements ActionListener { 74 implements ActionListener, 75 DocumentListener, PropertyChangeListener { 68 76 69 77 /** … … 115 123 */ 116 124 boolean displayControllerPanel = true; 125 126 /** 127 * A popup to display the terms from the lucene index that match what the 128 * user is typing into the searchTermSource, so as to provide an 129 * Auto-Complete functionality. 130 */ 131 HistoryDialog popup; 117 132 118 133 /** … … 133 148 public void setSearchTermSource(JTextComponent searchTermSource) { 134 149 this.searchTermSource = searchTermSource; 150 searchTermSource.getDocument().addDocumentListener(this); 135 151 } 136 152 … … 312 328 else return null; 313 329 } 330 331 public void autoComplete() { 332 Rectangle rect = searchTermSource.getBounds(); 333 String text = searchTermSource.getText(); 334 if (text.length() < 2) return; 335 336 String[] matchingTerms = IndexTermFinder.getMatchingTerms(text); 337 338 popup = new HistoryDialog(matchingTerms, rect.width); 339 popup.addPropertyChangeListener( 340 HistoryDialog.SELECTION_PROPERTY, this); 341 342 popup.show(searchTermSource, 0, rect.height); 343 344 searchTermSource.requestFocusInWindow(); 345 } 346 347 public void insertUpdate(DocumentEvent e) { 348 autoComplete(); 349 } 350 351 public void changedUpdate(DocumentEvent e) { 352 autoComplete(); 353 } 354 public void removeUpdate(DocumentEvent e) { 355 autoComplete(); 356 } 357 358 public void propertyChange(PropertyChangeEvent evt) { 359 if (HistoryDialog.SELECTION_PROPERTY.equals(evt.getPropertyName())) { 360 Object item = evt.getNewValue(); 361 searchTermSource.setText(item.toString()); 362 363 popup.setVisible(false); 364 365 } 366 } 314 367 315 368 } -
branches/OmeroEditor/src/treeModel/DynamicTreeDemo.java
r5527 r5536 51 51 import javax.swing.tree.DefaultMutableTreeNode; 52 52 import javax.swing.tree.DefaultTreeModel; 53 54 import fields.Field; 53 55 54 56 public class DynamicTreeDemo extends JPanel … … 133 135 } else if (REMOVE_COMMAND.equals(command)) { 134 136 //Remove button clicked 135 treeEdit. removeCurrentNodes();137 treeEdit.deleteSelectedFields(); 136 138 } else if (UNDO_COMMAND.equals(command)) { 137 139 -
branches/OmeroEditor/src/treeModel/FieldRenderer.java
r5527 r5536 25 25 import java.awt.Component; 26 26 27 import javax.swing.Icon; 27 28 import javax.swing.JTree; 28 29 import javax.swing.tree.DefaultTreeCellRenderer; 29 30 import javax.swing.tree.TreeCellRenderer; 31 32 import util.ImageFactory; 30 33 31 34 //Java imports … … 58 61 hasFocus); 59 62 63 Icon bigIcon = ImageFactory.getInstance().getIcon( 64 ImageFactory.ALARM_ICON_64); 65 66 setIcon(bigIcon); 67 60 68 return this; 61 69 } -
branches/OmeroEditor/src/treeModel/Tree.java
r5527 r5536 45 45 import javax.swing.tree.DefaultMutableTreeNode; 46 46 import javax.swing.tree.DefaultTreeModel; 47 import javax.swing.tree.MutableTreeNode;48 47 import javax.swing.tree.TreePath; 49 import javax.swing.tree.TreeSelectionModel;50 48 import javax.swing.event.TreeModelEvent; 51 49 import javax.swing.event.TreeModelListener; -
branches/OmeroEditor/src/treeModel/TreeEditor.java
r5527 r5536 71 71 72 72 /** Remove the currently selected nodes. */ 73 public void removeCurrentNodes() {73 public void deleteSelectedFields() { 74 74 UndoableEdit edit = new DeleteFields(treeModel, tree.getSelectionPaths()); 75 75 undoSupport.postEdit(edit); 76 76 } 77 78 77 79 78 80 -
branches/OmeroEditor/src/treeModel/editActions/DeleteFields.java
r5527 r5536 87 87 } 88 88 89 public static boolean canDo(TreePath[] selectedPaths) { 90 return (selectedPaths.length > 0); 91 } 92 89 93 public void undo() { 90 94 TreeModelMethods.insertNodesInto(treeModel, deletedFields, parentNode,
