1 20 21 package org.apache.directory.ldapstudio.browser.common.widgets.browser; 22 23 24 import org.apache.directory.ldapstudio.browser.common.BrowserCommonActivator; 25 import org.eclipse.jface.action.IMenuManager; 26 import org.eclipse.jface.action.MenuManager; 27 import org.eclipse.jface.viewers.DecoratingLabelProvider; 28 import org.eclipse.jface.viewers.TreeViewer; 29 import org.eclipse.swt.widgets.Menu; 30 31 32 40 public class BrowserConfiguration 41 { 42 43 44 private boolean disposed = false; 45 46 47 protected BrowserSorter sorter; 48 49 50 protected BrowserPreferences preferences; 51 52 53 protected BrowserContentProvider contentProvider; 54 55 56 protected BrowserLabelProvider labelProvider; 57 58 59 protected DecoratingLabelProvider decoratingLabelProvider; 60 61 62 protected MenuManager contextMenuManager; 63 64 65 68 public BrowserConfiguration() 69 { 70 } 71 72 73 76 public void dispose() 77 { 78 if ( !disposed ) 79 { 80 if ( sorter != null ) 81 { 82 sorter.dispose(); 83 sorter = null; 84 } 85 86 if ( preferences != null ) 87 { 88 preferences.dispose(); 89 preferences = null; 90 } 91 92 if ( contentProvider != null ) 93 { 94 contentProvider.dispose(); 95 contentProvider = null; 96 } 97 98 if ( labelProvider != null ) 99 { 100 labelProvider.dispose(); 101 labelProvider = null; 102 decoratingLabelProvider.dispose(); 103 decoratingLabelProvider = null; 104 } 105 106 if ( contextMenuManager != null ) 107 { 108 contextMenuManager.dispose(); 109 contextMenuManager = null; 110 } 111 112 disposed = true; 113 } 114 } 115 116 117 124 public IMenuManager getContextMenuManager( TreeViewer viewer ) 125 { 126 if ( contextMenuManager == null ) 127 { 128 contextMenuManager = new MenuManager(); 129 Menu menu = contextMenuManager.createContextMenu( viewer.getControl() ); 130 viewer.getControl().setMenu( menu ); 131 } 132 133 return contextMenuManager; 134 } 135 136 137 144 public BrowserContentProvider getContentProvider( TreeViewer viewer ) 145 { 146 if ( contentProvider == null ) 147 { 148 contentProvider = new BrowserContentProvider( getPreferences(), getSorter() ); 149 } 150 151 return contentProvider; 152 } 153 154 155 162 public DecoratingLabelProvider getLabelProvider( TreeViewer viewer ) 163 { 164 if ( labelProvider == null ) 165 { 166 labelProvider = new BrowserLabelProvider( getPreferences() ); 167 decoratingLabelProvider = new DecoratingLabelProvider( labelProvider, BrowserCommonActivator.getDefault().getWorkbench() 168 .getDecoratorManager().getLabelDecorator() ); 169 } 170 171 return decoratingLabelProvider; 172 } 173 174 175 180 public BrowserSorter getSorter() 181 { 182 if ( sorter == null ) 183 { 184 sorter = new BrowserSorter( getPreferences() ); 185 } 186 187 return sorter; 188 } 189 190 191 196 public BrowserPreferences getPreferences() 197 { 198 if ( preferences == null ) 199 { 200 preferences = new BrowserPreferences(); 201 } 202 203 return preferences; 204 } 205 206 } 207 | Popular Tags |