1 20 21 package org.apache.directory.ldapstudio.browser.common.widgets.browser; 22 23 24 import org.apache.directory.ldapstudio.browser.common.widgets.ViewFormWidget; 25 import org.eclipse.jface.action.IMenuManager; 26 import org.eclipse.jface.action.IToolBarManager; 27 import org.eclipse.jface.viewers.TreeViewer; 28 import org.eclipse.swt.SWT; 29 import org.eclipse.swt.layout.GridData; 30 import org.eclipse.swt.widgets.Composite; 31 import org.eclipse.swt.widgets.Control; 32 import org.eclipse.swt.widgets.Tree; 33 import org.eclipse.ui.IActionBars; 34 35 36 47 public class BrowserWidget extends ViewFormWidget 48 { 49 50 51 private BrowserConfiguration configuration; 52 53 54 private IActionBars actionBars; 55 56 57 private Tree tree; 58 59 60 private TreeViewer viewer; 61 62 63 69 public BrowserWidget( BrowserConfiguration configuration, IActionBars actionBars ) 70 { 71 this.configuration = configuration; 72 this.actionBars = actionBars; 73 } 74 75 76 79 public void createWidget( Composite parent ) 80 { 81 if ( actionBars == null ) 82 { 83 super.createWidget( parent ); 84 } 85 else 86 { 87 createContent( parent ); 88 } 89 } 90 91 92 95 public IToolBarManager getToolBarManager() 96 { 97 if ( actionBars == null ) 98 { 99 return super.getToolBarManager(); 100 } 101 else 102 { 103 return actionBars.getToolBarManager(); 104 } 105 } 106 107 108 111 public IMenuManager getMenuManager() 112 { 113 if ( actionBars == null ) 114 { 115 return super.getMenuManager(); 116 } 117 else 118 { 119 return actionBars.getMenuManager(); 120 } 121 } 122 123 124 127 public IMenuManager getContextMenuManager() 128 { 129 if ( actionBars == null ) 130 { 131 return super.getContextMenuManager(); 132 } 133 else 134 { 135 return configuration.getContextMenuManager( viewer ); 136 } 137 } 138 139 140 143 protected Control createContent( Composite parent ) 144 { 145 146 tree = new Tree( parent, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER ); 148 GridData data = new GridData( GridData.FILL_BOTH ); 149 data.widthHint = 450; 150 data.heightHint = 250; 151 tree.setLayoutData( data ); 152 viewer = new TreeViewer( tree ); 153 viewer.setUseHashlookup( true ); 154 155 configuration.getSorter().connect( viewer ); 157 configuration.getPreferences().connect( viewer ); 158 159 viewer.setContentProvider( configuration.getContentProvider( viewer ) ); 161 viewer.setLabelProvider( configuration.getLabelProvider( viewer ) ); 162 163 return tree; 164 } 165 166 167 172 public void setInput( Object input ) 173 { 174 viewer.setInput( input ); 175 } 176 177 178 181 public void setFocus() 182 { 183 viewer.getTree().setFocus(); 184 } 185 186 187 190 public void dispose() 191 { 192 if ( this.viewer != null ) 193 { 194 this.configuration.dispose(); 195 this.configuration = null; 196 197 this.tree.dispose(); 198 this.tree = null; 199 this.viewer = null; 200 } 201 } 202 203 204 209 public TreeViewer getViewer() 210 { 211 return viewer; 212 } 213 214 } 215 | Popular Tags |