1 11 package org.eclipse.pde.internal.ui.editor.plugin; 12 13 import org.eclipse.jface.viewers.TreeViewer; 14 import org.eclipse.pde.internal.ui.editor.FormEntryAdapter; 15 import org.eclipse.pde.internal.ui.editor.FormLayoutFactory; 16 import org.eclipse.pde.internal.ui.editor.IContextPart; 17 import org.eclipse.pde.internal.ui.parts.FormEntry; 18 import org.eclipse.swt.SWT; 19 import org.eclipse.swt.layout.GridData; 20 import org.eclipse.swt.layout.GridLayout; 21 import org.eclipse.swt.widgets.Composite; 22 import org.eclipse.swt.widgets.Text; 23 import org.eclipse.ui.dialogs.FilteredTree; 24 import org.eclipse.ui.dialogs.PatternFilter; 25 import org.eclipse.ui.forms.events.HyperlinkEvent; 26 import org.eclipse.ui.forms.widgets.FormToolkit; 27 28 public class FormFilteredTree extends FilteredTree { 29 30 private FormToolkit toolkit; 31 32 private FormEntry fEntryFilter; 33 34 public FormFilteredTree(Composite parent, int treeStyle, 35 PatternFilter filter) { 36 super(parent, treeStyle, filter); 37 } 38 39 protected void createControl(Composite parent, int treeStyle) { 40 toolkit = new FormToolkit(parent.getDisplay()); 41 GridLayout layout = FormLayoutFactory.createClearGridLayout(false, 1); 42 layout.verticalSpacing = 3; 44 setLayout(layout); 45 setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); 46 47 if (showFilterControls){ 48 filterComposite = new Composite(this, SWT.NONE); 49 GridLayout filterLayout = FormLayoutFactory.createClearGridLayout(false, 2); 50 filterLayout.horizontalSpacing = 5; 51 filterComposite.setLayout(filterLayout); 52 filterComposite.setFont(parent.getFont()); 53 createFilterControls(filterComposite); 54 filterComposite.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, 55 true, false)); 56 } 57 58 treeComposite = new Composite(this, SWT.NONE); 59 treeComposite.setLayout(FormLayoutFactory.createClearGridLayout(false, 1)); 60 GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); 61 treeComposite.setLayoutData(data); 62 createTreeControl(treeComposite, treeStyle); 63 } 64 65 68 public void dispose() { 69 if (toolkit != null) { 70 toolkit.dispose(); 71 toolkit = null; 72 } 73 super.dispose(); 74 } 75 76 protected Text doCreateFilterText(Composite parent) { 77 int style = SWT.SINGLE | toolkit.getBorderStyle(); 78 fEntryFilter = new FormEntry(parent, toolkit, null, style); 79 toolkit.paintBordersFor(parent); 81 setBackground(toolkit.getColors().getBackground()); 82 return fEntryFilter.getText(); 83 } 84 85 protected TreeViewer doCreateTreeViewer(Composite parent, int style) { 86 TreeViewer viewer = super.doCreateTreeViewer(parent, toolkit.getBorderStyle()); 87 toolkit.paintBordersFor(viewer.getTree().getParent()); 88 return viewer; 89 } 90 91 94 public void createUIListenerEntryFilter(IContextPart part) { 95 fEntryFilter.setFormEntryListener(new FormEntryAdapter(part) { 98 public void browseButtonSelected(FormEntry entry) { 101 } 103 public void linkActivated(HyperlinkEvent e) { 104 } 106 public void linkEntered(HyperlinkEvent e) { 107 } 109 public void linkExited(HyperlinkEvent e) { 110 } 112 public void selectionChanged(FormEntry entry) { 113 } 115 public void textDirty(FormEntry entry) { 116 } 118 public void textValueChanged(FormEntry entry) { 119 } 121 }); 122 } 123 124 } 125 | Popular Tags |