### Eclipse Workspace Patch 1.0 #P org.eclipse.ui.views.log Index: src/org/eclipse/ui/internal/views/log/LogView.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.views.log/src/org/eclipse/ui/internal/views/log/LogView.java,v retrieving revision 1.3 diff -u -r1.3 LogView.java --- src/org/eclipse/ui/internal/views/log/LogView.java 22 Oct 2007 15:18:42 -0000 1.3 +++ src/org/eclipse/ui/internal/views/log/LogView.java 24 Oct 2007 03:28:44 -0000 @@ -52,7 +52,6 @@ import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.jface.window.Window; @@ -94,6 +93,8 @@ import org.eclipse.ui.PlatformUI; import org.eclipse.ui.XMLMemento; import org.eclipse.ui.actions.ActionFactory; +import org.eclipse.ui.dialogs.FilteredTree; +import org.eclipse.ui.dialogs.PatternFilter; import org.eclipse.ui.part.ViewPart; import com.ibm.icu.text.DateFormat; @@ -145,7 +146,7 @@ private TreeColumn fColumn3; private Tree fTree; - private TreeViewer fTreeViewer; + private FilteredTree fFilteredTree; private LogViewLabelProvider fLabelProvider; private Action fPropertiesAction; @@ -155,7 +156,7 @@ private Action fActivateViewAction; private Action fOpenLogAction; private Action fExportAction; - + public LogView() { fLogs = new ArrayList(); fInputFile = Platform.getLogFileLocation().toFile(); @@ -167,7 +168,7 @@ createActions(); fClipboard = new Clipboard(fTree.getDisplay()); fTree.setToolTipText(""); //$NON-NLS-1$ - getSite().setSelectionProvider(fTreeViewer); + getSite().setSelectionProvider(fFilteredTree.getViewer()); initializeViewerSorter(); makeHoverShell(); @@ -271,7 +272,7 @@ private Action createCopyAction() { Action action = new Action(Messages.LogView_copy) { public void run() { - copyToClipboard(fTreeViewer.getSelection()); + copyToClipboard(fFilteredTree.getViewer().getSelection()); } }; action.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages() @@ -359,7 +360,7 @@ } private void createPropertiesAction() { - fPropertiesAction = new EventDetailsDialogAction(fTree.getShell(), fTreeViewer); + fPropertiesAction = new EventDetailsDialogAction(fTree.getShell(), fFilteredTree.getViewer()); fPropertiesAction.setImageDescriptor(SharedImages.getImageDescriptor(SharedImages.DESC_PROPERTIES)); fPropertiesAction.setDisabledImageDescriptor(SharedImages.getImageDescriptor(SharedImages.DESC_PROPERTIES_DISABLED)); fPropertiesAction.setToolTipText(Messages.LogView_properties_tooltip); @@ -380,28 +381,44 @@ } private void createViewer(Composite parent) { - fTreeViewer = new TreeViewer(parent, SWT.FULL_SELECTION); - fTree = fTreeViewer.getTree(); + fFilteredTree = new FilteredTree(parent, SWT.FULL_SELECTION, new PatternFilter() { + + protected boolean isLeafMatch(Viewer viewer, Object element) { + if (element instanceof LogEntry) { + LogEntry logEntry = (LogEntry) element; + + String message = logEntry.getMessage(); + String plugin = logEntry.getPluginId(); + String date = logEntry.getFormattedDate(); + + + return wordMatches(message) || wordMatches(plugin) || wordMatches(date); + } + return false; + } + }); + + fTree = fFilteredTree.getViewer().getTree(); fTree.setLinesVisible(true); createColumns(fTree); - fTreeViewer.setAutoExpandLevel(2); - fTreeViewer.setContentProvider(new LogViewContentProvider(this)); - fTreeViewer.setLabelProvider(fLabelProvider = new LogViewLabelProvider()); + fFilteredTree.getViewer().setAutoExpandLevel(2); + fFilteredTree.getViewer().setContentProvider(new LogViewContentProvider(this)); + fFilteredTree.getViewer().setLabelProvider(fLabelProvider = new LogViewLabelProvider()); fLabelProvider.connect(this); - fTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() { + fFilteredTree.getViewer().addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent e) { handleSelectionChanged(e.getSelection()); if (fPropertiesAction.isEnabled()) ((EventDetailsDialogAction) fPropertiesAction).resetSelection(); } }); - fTreeViewer.addDoubleClickListener(new IDoubleClickListener() { + fFilteredTree.getViewer().addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { ((EventDetailsDialogAction) fPropertiesAction).setComparator(fComparator); fPropertiesAction.run(); } }); - fTreeViewer.setInput(this); + fFilteredTree.getViewer().setInput(this); addMouseListeners(); } @@ -413,7 +430,7 @@ public void widgetSelected(SelectionEvent e) { MESSAGE_ORDER *= -1; ViewerComparator comparator = getViewerComparator(MESSAGE); - fTreeViewer.setComparator(comparator); + fFilteredTree.getViewer().setComparator(comparator); boolean isComparatorSet = ((EventDetailsDialogAction) fPropertiesAction).resetSelection(MESSAGE, MESSAGE_ORDER); setComparator(MESSAGE); @@ -432,7 +449,7 @@ public void widgetSelected(SelectionEvent e) { PLUGIN_ORDER *= -1; ViewerComparator comparator = getViewerComparator(PLUGIN); - fTreeViewer.setComparator(comparator); + fFilteredTree.getViewer().setComparator(comparator); boolean isComparatorSet = ((EventDetailsDialogAction) fPropertiesAction).resetSelection(PLUGIN, PLUGIN_ORDER); setComparator(PLUGIN); @@ -451,7 +468,7 @@ public void widgetSelected(SelectionEvent e) { DATE_ORDER *= -1; ViewerComparator comparator = getViewerComparator(DATE); - fTreeViewer.setComparator(comparator); + fFilteredTree.getViewer().setComparator(comparator); setComparator(DATE); ((EventDetailsDialogAction) fPropertiesAction).setComparator(fComparator); fMemento.putInteger(P_ORDER_VALUE, DATE_ORDER); @@ -466,7 +483,7 @@ private void initializeViewerSorter() { byte orderType = fMemento.getInteger(P_ORDER_TYPE).byteValue(); ViewerComparator comparator = getViewerComparator(orderType); - fTreeViewer.setComparator(comparator); + fFilteredTree.getViewer().setComparator(comparator); if (orderType == MESSAGE ) setColumnSorting(fColumn1, MESSAGE_ORDER); else if (orderType == PLUGIN) @@ -665,8 +682,8 @@ display.asyncExec(new Runnable() { public void run() { if (!fTree.isDisposed()) { - fTreeViewer.refresh(); - fTreeViewer.expandToLevel(2); + fFilteredTree.getViewer().refresh(); + fFilteredTree.getViewer().expandToLevel(2); fDeleteLogAction.setEnabled(fInputFile.exists() && fInputFile.equals(Platform.getLogFileLocation().toFile())); fOpenLogAction.setEnabled(fInputFile.exists()); @@ -699,7 +716,7 @@ status.setMessage(null); else { Object element = ((IStructuredSelection) selection).getFirstElement(); - status.setMessage(((LogViewLabelProvider) fTreeViewer.getLabelProvider()).getColumnText(element, 0)); + status.setMessage(((LogViewLabelProvider) fFilteredTree.getViewer().getLabelProvider()).getColumnText(element, 0)); } }