import com.google.common.collect.ClassToInstanceMap; import com.google.common.collect.ImmutableClassToInstanceMap; import javax.swing.*; import javax.swing.text.DefaultEditorKit; public class ActionHandler { private static final ClassToInstanceMap<Action> actionMap = new ImmutableClassToInstanceMap.Builder<Action>(). put(DefaultEditorKit.CutAction.class, new DefaultEditorKit.CutAction()). put(DefaultEditorKit.CopyAction.class, new DefaultEditorKit.CopyAction()). put(DefaultEditorKit.PasteAction.class, new DefaultEditorKit.PasteAction()). put(RefreshAction.class, new RefreshAction()). put(MinimizeAction.class, new MinimizeAction()). put(ZoomAction.class, new ZoomAction()). build(); public static Action getActionFor(Class<? extends Action> actionClasss) { return actionMap.getInstance(actionClasss); } }
/** * Creates a new instance of BrowserActionGroup. * * @param mainWidget the browser's main widget * @param configuration the browser's configuration */ public BrowserActionGroup( BrowserWidget mainWidget, BrowserConfiguration configuration ) { this.mainWidget = mainWidget; this.browserActionMap = new HashMap<String, BrowserViewActionProxy>(); TreeViewer viewer = mainWidget.getViewer(); openSortDialogAction = new OpenSortDialogAction( configuration.getPreferences() ); showQuickSearchAction = new ShowQuickSearchAction( mainWidget.getQuickSearchWidget() ); collapseAllAction = new CollapseAllAction( viewer ); browserActionMap.put( openQuickSearchAction, new BrowserViewActionProxy( viewer, new OpenQuickSearchAction( mainWidget ) ) ); browserActionMap.put( upAction, new BrowserViewActionProxy( viewer, new UpAction( viewer ) ) ); browserActionMap.put( refreshAction, new BrowserViewActionProxy( viewer, new RefreshAction() ) ); browserActionMap.put( filterChildrenAction, new BrowserViewActionProxy( viewer, new FilterChildrenAction() ) ); browserActionMap .put( unfilterChildrenAction, new BrowserViewActionProxy( viewer, new UnfilterChildrenAction() ) ); browserActionMap.put( propertyDialogAction, new BrowserViewActionProxy( viewer, new PropertiesAction() ) ); }