| package org.eclipse.ui.internal; |
| |
| /* |
| * (c) Copyright IBM Corp. 2000, 2002. |
| * All Rights Reserved. |
| */ |
| |
| import org.eclipse.core.resources.*; |
| import org.eclipse.core.resources.IncrementalProjectBuilder; |
| import org.eclipse.core.resources.ResourcesPlugin; |
| import org.eclipse.core.runtime.CoreException; |
| |
| import org.eclipse.jface.action.*; |
| import org.eclipse.jface.preference.IPreferenceStore; |
| import org.eclipse.jface.util.IPropertyChangeListener; |
| import org.eclipse.jface.util.PropertyChangeEvent; |
| import org.eclipse.jface.viewers.ISelection; |
| import org.eclipse.jface.viewers.IStructuredSelection; |
| |
| import org.eclipse.ui.*; |
| import org.eclipse.ui.actions.*; |
| import org.eclipse.ui.help.WorkbenchHelp; |
| |
| /** |
| * This is used to add actions to the workbench. |
| */ |
| public class WorkbenchActionBuilder implements IPropertyChangeListener { |
| |
| private static final String saveActionDefId = "org.eclipse.ui.file.save"; //$NON-NLS-1$ |
| private static final String saveAllActionDefId = "org.eclipse.ui.file.saveAll"; //$NON-NLS-1$ |
| private static final String printActionDefId = "org.eclipse.ui.file.print"; //$NON-NLS-1$ |
| private static final String closeActionDefId = "org.eclipse.ui.file.close"; //$NON-NLS-1$ |
| private static final String closeAllActionDefId = "org.eclipse.ui.file.closeAll"; //$NON-NLS-1$ |
| private static final String closeAllSavedActionDefId = "org.eclipse.ui.file.closeAllSaved"; //$NON-NLS-1$ |
| private static final String undoActionDefId = "org.eclipse.ui.edit.undo"; //$NON-NLS-1$ |
| private static final String redoActionDefId = "org.eclipse.ui.edit.redo"; //$NON-NLS-1$ |
| private static final String cutActionDefId = "org.eclipse.ui.edit.cut"; //$NON-NLS-1$ |
| private static final String copyActionDefId = "org.eclipse.ui.edit.copy"; //$NON-NLS-1$ |
| private static final String pasteActionDefId = "org.eclipse.ui.edit.paste"; //$NON-NLS-1$ |
| private static final String deleteActionDefId = "org.eclipse.ui.edit.delete"; //$NON-NLS-1$ |
| private static final String selectAllActionDefId = "org.eclipse.ui.edit.selectAll"; //$NON-NLS-1$ |
| private static final String findActionDefId = "org.eclipse.ui.edit.findReplace"; //$NON-NLS-1$ |
| private static final String addBookmarkActionDefId = "org.eclipse.ui.edit.addBookmark"; //$NON-NLS-1$ |
| private static final String showViewMenuActionDefId = "org.eclipse.ui.window.showViewMenu"; //$NON-NLS-1$ |
| private static final String showPartPaneMenuActionDefId = "org.eclipse.ui.window.showSystemMenu"; //$NON-NLS-1$ |
| private static final String nextEditorActionDefId = "org.eclipse.ui.window.nextEditor"; //$NON-NLS-1$ |
| private static final String prevEditorActionDefId = "org.eclipse.ui.window.previousEditor"; //$NON-NLS-1$ |
| private static final String nextPartActionDefId = "org.eclipse.ui.window.nextView"; //$NON-NLS-1$ |
| private static final String prevPartActionDefId = "org.eclipse.ui.window.previousView"; //$NON-NLS-1$ |
| private static final String nextPerspectiveActionDefId = "org.eclipse.ui.window.nextPerspective"; //$NON-NLS-1$ |
| private static final String prevPerspectiveActionDefId = "org.eclipse.ui.window.previousPerspective"; //$NON-NLS-1$ |
| private static final String activateEditorActionDefId = "org.eclipse.ui.window.activateEditor"; //$NON-NLS-1$ |
| private static final String workbenchEditorsActionDefId = "org.eclipse.ui.window.switchToEditor"; //$NON-NLS-1$ |
| private static final String buildAllActionDefId = "org.eclipse.ui.project.buildAll"; //$NON-NLS-1$ |
| private static final String rebuildAllActionDefId = "org.eclipse.ui.project.rebuildAll"; //$NON-NLS-1$ |
| private static final String backwardHistoryActionDefId = "org.eclipse.ui.navigate.backwardHistory"; //$NON-NLS-1$ |
| private static final String forwardHistoryActionDefId = "org.eclipse.ui.navigate.forwardHistory"; //$NON-NLS-1$ |
| private static final String showInActionDefId = "org.eclipse.ui.navigate.showIn"; //$NON-NLS-1$ |
| |
| private static final String workbenchToolGroupId = "org.eclipse.ui.internal"; //$NON-NLS-1$ |
| |
| //pin editor group in the toolbar |
| private static final String pinEditorGroup = "pinEditorGroup"; //$NON-NLS-1$ |
| |
| //history group in the toolbar |
| private static final String historyGroup = "historyGroup"; //$NON-NLS-1$ |
| |
| // target |
| private WorkbenchWindow window; |
| |
| // actions |
| private NewWizardAction newWizardAction; |
| private NewWizardDropDownAction newWizardDropDownAction; |
| private NewWizardMenu newWizardMenu; |
| private CloseEditorAction closeAction; |
| private CloseAllAction closeAllAction; |
| private CloseAllSavedAction closeAllSavedAction; |
| private ImportResourcesAction importResourcesAction; |
| private ExportResourcesAction exportResourcesAction; |
| private GlobalBuildAction rebuildAllAction; // Full build |
| private GlobalBuildAction buildAllAction; // Incremental build |
| private SaveAction saveAction; |
| private SaveAllAction saveAllAction; |
| private AboutAction aboutAction; |
| private OpenPreferencesAction openPreferencesAction; |
| private QuickStartAction quickStartAction; |
| private SaveAsAction saveAsAction; |
| private ToggleEditorsVisibilityAction hideShowEditorAction; |
| private SavePerspectiveAction savePerspectiveAction; |
| private ResetPerspectiveAction resetPerspectiveAction; |
| private EditActionSetsAction editActionSetAction; |
| private ClosePerspectiveAction closePerspAction; |
| private LockToolBarAction lockToolBarAction; |
| private CloseAllPerspectivesAction closeAllPerspsAction; |
| private PinEditorAction pinEditorAction; |
| |
| private ShowViewMenuAction showViewMenuAction; |
| private ShowPartPaneMenuAction showPartPaneMenuAction; |
| private CyclePartAction nextPartAction; |
| private CyclePartAction prevPartAction; |
| private CycleEditorAction nextEditorAction; |
| private CycleEditorAction prevEditorAction; |
| private CyclePerspectiveAction nextPerspectiveAction; |
| private CyclePerspectiveAction prevPerspectiveAction; |
| private ActivateEditorAction activateEditorAction; |
| |
| private WorkbenchEditorsAction workbenchEditorsAction; |
| private WorkbenchShowInAction showInAction; |
| |
| // retarget actions. |
| private RetargetAction undoAction; |
| private RetargetAction redoAction; |
| private RetargetAction cutAction; |
| private RetargetAction copyAction; |
| private RetargetAction pasteAction; |
| private RetargetAction deleteAction; |
| private RetargetAction selectAllAction; |
| private RetargetAction findAction; |
| private RetargetAction addBookmarkAction; |
| private RetargetAction addTaskAction; |
| private RetargetAction printAction; |
| |
| private RetargetAction revertAction; |
| private RetargetAction refreshAction; |
| private RetargetAction propertiesAction; |
| private RetargetAction moveAction; |
| private RetargetAction renameAction; |
| private RetargetAction goIntoAction; |
| private RetargetAction backAction; |
| private RetargetAction forwardAction; |
| private RetargetAction upAction; |
| private RetargetAction nextAction; |
| private RetargetAction previousAction; |
| |
| private RetargetAction buildProjectAction; |
| private RetargetAction rebuildProjectAction; |
| private RetargetAction openProjectAction; |
| private RetargetAction closeProjectAction; |
| |
| private NavigationHistoryAction backwardHistoryAction; |
| private NavigationHistoryAction forwardHistoryAction; |
| |
| /** |
| * WorkbenchActionBuilder constructor comment. |
| */ |
| public WorkbenchActionBuilder() { |
| } |
| |
| /** |
| * Add the manual incremental build action |
| * to both the menu bar and the tool bar. |
| */ |
| protected void addManualIncrementalBuildAction() { |
| MenuManager menubar = window.getMenuBarManager(); |
| IMenuManager manager = menubar.findMenuUsingPath(IWorkbenchActionConstants.M_PROJECT); |
| if (manager != null) { |
| try { |
| manager.insertBefore(IWorkbenchActionConstants.REBUILD_PROJECT, buildProjectAction); |
| manager.insertBefore(IWorkbenchActionConstants.REBUILD_ALL, buildAllAction); |
| } catch (IllegalArgumentException e) { |
| // action not found! |
| } |
| } |
| IContributionManager cBarMgr = window.getCoolBarManager(); |
| CoolBarContributionItem groupItem = (CoolBarContributionItem)cBarMgr.find(workbenchToolGroupId); |
| IContributionManager tBarMgr = groupItem.getToolBarManager(); |
| tBarMgr.appendToGroup(IWorkbenchActionConstants.BUILD_EXT, buildAllAction); |
| tBarMgr.update(true); |
| } |
| |
| /** |
| * Build the workbench actions. |
| */ |
| public void buildActions(WorkbenchWindow win) { |
| window = win; |
| makeActions(); |
| createMenuBar(); |
| createToolBar(); |
| createShortcutBar(); |
| |
| // Listen for preference property changes to |
| // update the menubar and toolbar |
| IPreferenceStore store = WorkbenchPlugin.getDefault().getPreferenceStore(); |
| store.addPropertyChangeListener(this); |
| |
| // Listen to workbench page lifecycle methods to enable |
| // and disable the perspective menu items as needed. |
| window.addPageListener(new IPageListener() { |
| public void pageActivated(IWorkbenchPage page) { |
| enableActions(page.getPerspective() != null); |
| } |
| public void pageClosed(IWorkbenchPage page) { |
| IWorkbenchPage pg = window.getActivePage(); |
| enableActions(pg != null && pg.getPerspective() != null); |
| } |
| public void pageOpened(IWorkbenchPage page) { |
| } |
| }); |
| |
| // Listen to workbench perspective lifecycle methods to enable |
| // and disable the perspective menu items as needed. |
| window.getPerspectiveService().addPerspectiveListener(new IInternalPerspectiveListener() { |
| public void perspectiveClosed(IWorkbenchPage page, IPerspectiveDescriptor perspective) { |
| enableActions(page.getPerspective() != null); |
| } |
| public void perspectiveOpened(IWorkbenchPage page, IPerspectiveDescriptor perspective) { |
| } |
| public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) { |
| enableActions(true); |
| } |
| public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId) { |
| } |
| }); |
| |
| //Listen for the selection changing and update the |
| //actions that are interested |
| window.getSelectionService().addSelectionListener(new ISelectionListener(){ |
| /* |
| * @see ISelectionListener.selectionChanges |
| */ |
| public void selectionChanged(IWorkbenchPart part, ISelection selection){ |
| if(selection instanceof IStructuredSelection){ |
| IStructuredSelection structured = (IStructuredSelection) selection; |
| importResourcesAction.selectionChanged(structured); |
| exportResourcesAction.selectionChanged(structured); |
| } |
| } |
| }); |
| } |
| |
| /** |
| * Enables the menu items dependent on an active |
| * page and perspective. |
| * Note, the show view action already does its own |
| * listening so no need to do it here. |
| */ |
| private void enableActions(boolean value) { |
| hideShowEditorAction.setEnabled(value); |
| savePerspectiveAction.setEnabled(value); |
| lockToolBarAction.setEnabled(value); |
| resetPerspectiveAction.setEnabled(value); |
| editActionSetAction.setEnabled(value); |
| closePerspAction.setEnabled(value); |
| closeAllPerspsAction.setEnabled(value); |
| newWizardMenu.setEnabled(value); |
| newWizardDropDownAction.setEnabled(value); |
| importResourcesAction.setEnabled(value); |
| exportResourcesAction.setEnabled(value); |
| } |
| |
| /** |
| * Creates the menu bar. |
| */ |
| private void createMenuBar() { |
| // Get main menu. |
| MenuManager menubar = window.getMenuBarManager(); |
| menubar.add(createFileMenu()); |
| menubar.add(createEditMenu()); |
| menubar.add(createNavigateMenu()); |
| menubar.add(createProjectMenu()); |
| menubar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); |
| menubar.add(createWindowMenu()); |
| menubar.add(createHelpMenu()); |
| } |
| |
| /** |
| * Creates and returns the File menu. |
| */ |
| private MenuManager createFileMenu() { |
| MenuManager menu = new MenuManager(WorkbenchMessages.getString("Workbench.file"), IWorkbenchActionConstants.M_FILE); //$NON-NLS-1$ |
| menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_START)); |
| { |
| this.newWizardMenu = new NewWizardMenu(window); |
| MenuManager newMenu = new MenuManager(WorkbenchMessages.getString("Workbench.new")); //$NON-NLS-1$ |
| newMenu.add(this.newWizardMenu); |
| menu.add(newMenu); |
| } |
| |
| menu.add(new GroupMarker(IWorkbenchActionConstants.NEW_EXT)); |
| menu.add(new Separator()); |
| |
| menu.add(closeAction); |
| menu.add(closeAllAction); |
| // menu.add(closeAllSavedAction); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.CLOSE_EXT)); |
| menu.add(new Separator()); |
| menu.add(saveAction); |
| menu.add(saveAsAction); |
| menu.add(saveAllAction); |
| |
| menu.add(revertAction); |
| menu.add(new Separator()); |
| menu.add(moveAction); |
| menu.add(renameAction); |
| menu.add(new Separator()); |
| menu.add(refreshAction); |
| |
| menu.add(new GroupMarker(IWorkbenchActionConstants.SAVE_EXT)); |
| menu.add(new Separator()); |
| menu.add(printAction); |
| menu.add(new Separator()); |
| menu.add(importResourcesAction); |
| menu.add(exportResourcesAction); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.IMPORT_EXT)); |
| menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); |
| |
| menu.add(new Separator()); |
| menu.add(propertiesAction); |
| |
| menu.add(new ReopenEditorMenu(window, ((Workbench) window.getWorkbench()).getEditorHistory(), true)); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.MRU)); |
| menu.add(new Separator()); |
| menu.add(new QuitAction(window.getWorkbench())); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_END)); |
| return menu; |
| } |
| |
| /** |
| * Creates and returns the Edit menu. |
| */ |
| private MenuManager createEditMenu() { |
| MenuManager menu = new MenuManager(WorkbenchMessages.getString("Workbench.edit"), IWorkbenchActionConstants.M_EDIT); //$NON-NLS-1$ |
| menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_START)); |
| |
| menu.add(undoAction); |
| menu.add(redoAction); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.UNDO_EXT)); |
| menu.add(new Separator()); |
| |
| menu.add(cutAction); |
| menu.add(copyAction); |
| menu.add(pasteAction); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.CUT_EXT)); |
| menu.add(new Separator()); |
| |
| menu.add(deleteAction); |
| menu.add(selectAllAction); |
| menu.add(new Separator()); |
| |
| menu.add(findAction); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.FIND_EXT)); |
| menu.add(new Separator()); |
| |
| menu.add(addBookmarkAction); |
| menu.add(addTaskAction); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.ADD_EXT)); |
| |
| menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_END)); |
| menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); |
| return menu; |
| } |
| |
| // menu reorg |
| |
| /** |
| * Creates and returns the Navigate menu. |
| */ |
| private MenuManager createNavigateMenu() { |
| MenuManager menu = new MenuManager(WorkbenchMessages.getString("Workbench.navigate"), IWorkbenchActionConstants.M_NAVIGATE); //$NON-NLS-1$ |
| menu.add(new GroupMarker(IWorkbenchActionConstants.NAV_START)); |
| menu.add(goIntoAction); |
| |
| MenuManager goToSubMenu = new MenuManager(WorkbenchMessages.getString("Workbench.goTo"), IWorkbenchActionConstants.GO_TO); //$NON-NLS-1$ |
| menu.add(goToSubMenu); |
| goToSubMenu.add(backAction); |
| goToSubMenu.add(forwardAction); |
| goToSubMenu.add(upAction); |
| goToSubMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); |
| |
| menu.add(new Separator(IWorkbenchActionConstants.OPEN_EXT)); |
| for (int i = 2; i < 5; ++i) { |
| menu.add(new Separator(IWorkbenchActionConstants.OPEN_EXT + i)); |
| } |
| menu.add(new Separator(IWorkbenchActionConstants.SHOW_EXT)); |
| menu.add(showInAction); |
| for (int i = 2; i < 5; ++i) { |
| menu.add(new Separator(IWorkbenchActionConstants.SHOW_EXT + i)); |
| } |
| menu.add(new Separator()); |
| menu.add(nextAction); |
| menu.add(previousAction); |
| menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.NAV_END)); |
| |
| //TBD: Location of this actions |
| menu.add(new Separator()); |
| menu.add(backwardHistoryAction); |
| menu.add(forwardHistoryAction); |
| return menu; |
| } |
| |
| /** |
| * Creates and returns the Project menu. |
| */ |
| private MenuManager createProjectMenu() { |
| boolean autoBuild = ResourcesPlugin.getWorkspace().isAutoBuilding(); |
| MenuManager menu = new MenuManager(WorkbenchMessages.getString("Workbench.project"), IWorkbenchActionConstants.M_PROJECT); //$NON-NLS-1$ |
| menu.add(new Separator(IWorkbenchActionConstants.PROJ_START)); |
| |
| menu.add(openProjectAction); |
| menu.add(closeProjectAction); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.OPEN_EXT)); |
| menu.add(new Separator()); |
| |
| // Only add the manual incremental build if auto build off |
| if (!autoBuild) |
| menu.add(buildProjectAction); |
| menu.add(rebuildProjectAction); |
| if (!autoBuild) { |
| menu.add(buildAllAction); |
| } |
| menu.add(rebuildAllAction); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.BUILD_EXT)); |
| menu.add(new Separator()); |
| |
| menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.PROJ_END)); |
| return menu; |
| } |
| |
| // end menu reorg |
| |
| |
| /** |
| * Adds the perspective actions to the specified menu. |
| */ |
| private void addPerspectiveActions(MenuManager menu) { |
| { |
| String openText = WorkbenchMessages.getString("Workbench.openPerspective"); //$NON-NLS-1$ |
| MenuManager changePerspMenuMgr = new MenuManager(openText); //$NON-NLS-1$ |
| ChangeToPerspectiveMenu changePerspMenuItem = new ChangeToPerspectiveMenu(window); |
| changePerspMenuMgr.add(changePerspMenuItem); |
| menu.add(changePerspMenuMgr); |
| } |
| { |
| MenuManager showViewMenuMgr = new MenuManager(WorkbenchMessages.getString("Workbench.showView")); //$NON-NLS-1$ |
| ShowViewMenu showViewMenu = new ShowViewMenu(window); |
| showViewMenuMgr.add(showViewMenu); |
| menu.add(showViewMenuMgr); |
| } |
| menu.add(hideShowEditorAction); |
| menu.add(lockToolBarAction); |
| menu.add(new Separator()); |
| menu.add(editActionSetAction); |
| menu.add(savePerspectiveAction); |
| menu.add(resetPerspectiveAction); |
| menu.add(closePerspAction); |
| menu.add(closeAllPerspsAction); |
| } |
| |
| /** |
| * Creates and returns the Perspective menu. |
| */ |
| private MenuManager createPerspectiveMenu() { |
| MenuManager menu = new MenuManager(WorkbenchMessages.getString("Workbench.perspective"), IWorkbenchActionConstants.M_VIEW); //$NON-NLS-1$ |
| addPerspectiveActions(menu); |
| return menu; |
| } |
| |
| /** |
| * Creates and returns the Workbench menu. |
| */ |
| private MenuManager createWorkbenchMenu() { |
| MenuManager menu = new MenuManager(WorkbenchMessages.getString("Workbench.workbench"), IWorkbenchActionConstants.M_WORKBENCH); //$NON-NLS-1$ |
| menu.add(new GroupMarker(IWorkbenchActionConstants.WB_START)); |
| // Only add the manual incremental build if auto build off |
| if (!ResourcesPlugin.getWorkspace().isAutoBuilding()) |
| menu.add(buildAllAction); |
| menu.add(rebuildAllAction); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.WB_END)); |
| menu.add(new Separator()); |
| menu.add(openPreferencesAction); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); |
| return menu; |
| } |
| |
| /** |
| * Adds the keyboard navigation submenu to the specified menu. |
| */ |
| /* |
| private void addKeyboardShortcuts(MenuManager menu) { |
| MenuManager subMenu = new MenuManager(WorkbenchMessages.getString("Workbench.shortcuts")); //$NON-NLS-1$ |
| menu.add(subMenu); |
| subMenu.add(showPartPaneMenuAction); |
| subMenu.add(showViewMenuAction); |
| subMenu.add(new Separator()); |
| subMenu.add(activateEditorAction); |
| subMenu.add(nextEditorAction); |
| subMenu.add(prevEditorAction); |
| subMenu.add(new Separator()); |
| subMenu.add(nextPartAction); |
| subMenu.add(prevPartAction); |
| subMenu.add(new Separator()); |
| subMenu.add(nextPerspectiveAction); |
| subMenu.add(prevPerspectiveAction); |
| } |
| */ |
| |
| /** |
| * Creates and returns the Window menu. |
| */ |
| private MenuManager createWindowMenu() { |
| MenuManager menu = new MenuManager(WorkbenchMessages.getString("Workbench.window"), IWorkbenchActionConstants.M_WINDOW); //$NON-NLS-1$ |
| |
| OpenInNewWindowAction action = new OpenInNewWindowAction(window); |
| action.setText(WorkbenchMessages.getString("Workbench.openNewWindow")); //$NON-NLS-1$ |
| menu.add(action); |
| menu.add(new Separator()); |
| addPerspectiveActions(menu); |
| menu.add(new Separator()); |
| //addKeyboardShortcuts(menu); |
| //menu.add(new Separator()); |
| menu.add(workbenchEditorsAction); |
| menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); |
| menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS + "end")); //$NON-NLS-1$ |
| menu.add(openPreferencesAction); |
| menu.add(new SwitchToWindowMenu(window, true)); |
| return menu; |
| } |
| |
| /** |
| * Creates and returns the Help menu. |
| */ |
| private MenuManager createHelpMenu() { |
| MenuManager menu = new MenuManager(WorkbenchMessages.getString("Workbench.help"), IWorkbenchActionConstants.M_HELP); //$NON-NLS-1$ |
| // See if a welcome page is specified |
| if (quickStartAction != null) |
| menu.add(quickStartAction); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.HELP_START)); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.HELP_END)); |
| menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); |
| // about should always be at the bottom |
| menu.add(new Separator()); |
| menu.add(aboutAction); |
| return menu; |
| } |
| |
| /** |
| * Fills the shortcut bar |
| */ |
| private void createShortcutBar() { |
| ToolBarManager shortcutBar = window.getShortcutBar(); |
| shortcutBar.add(new PerspectiveContributionItem(window)); |
| shortcutBar.add(new Separator(window.GRP_PAGES)); |
| shortcutBar.add(new Separator(window.GRP_PERSPECTIVES)); |
| shortcutBar.add(new Separator(window.GRP_FAST_VIEWS)); |
| shortcutBar.add(new ShowFastViewContribution(window)); |
| } |
| /** |
| * Fills the menu bar by merging all the individual viewers' contributions |
| * and invariant (static) menus and menu items, as defined in MenuConstants interface. |
| */ |
| private void createToolBar() { |
| // Create a CoolBar item for the workbench |
| CoolBarManager cBarMgr = window.getCoolBarManager(); |
| CoolBarContributionItem coolBarItem = new CoolBarContributionItem(cBarMgr, workbenchToolGroupId); //$NON-NLS-1$ |
| cBarMgr.add(coolBarItem); |
| coolBarItem.setVisible(true); |
| IContributionManager toolsManager = (IContributionManager)coolBarItem.getToolBarManager(); |
| cBarMgr.addToMenu(new ActionContributionItem(lockToolBarAction)); |
| cBarMgr.addToMenu(new ActionContributionItem(editActionSetAction)); |
| |
| toolsManager.add(newWizardDropDownAction); |
| toolsManager.add(new GroupMarker(IWorkbenchActionConstants.NEW_EXT)); |
| toolsManager.add(new Separator()); |
| toolsManager.add(saveAction); |
| toolsManager.add(saveAsAction); |
| toolsManager.add(new GroupMarker(IWorkbenchActionConstants.SAVE_EXT)); |
| toolsManager.add(printAction); |
| toolsManager.add(new GroupMarker(IWorkbenchActionConstants.BUILD_EXT)); |
| toolsManager.prependToGroup(IWorkbenchActionConstants.BUILD_EXT, new Separator()); |
| toolsManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); |
| // Only add the manual incremental build if auto build off |
| if (!ResourcesPlugin.getWorkspace().isAutoBuilding()) { |
| toolsManager.appendToGroup(IWorkbenchActionConstants.BUILD_EXT, buildAllAction); |
| } |
| addHistoryActions(); |
| IPreferenceStore store = WorkbenchPlugin.getDefault().getPreferenceStore(); |
| if(store.getBoolean(IPreferenceConstants.REUSE_EDITORS_BOOLEAN)) { |
| addPinEditorAction(); |
| } |
| } |
| /** |
| * Remove the property change listener |
| */ |
| public void dispose() { |
| // Listen for preference property changes to |
| // update the menubar and toolbar |
| IPreferenceStore store = WorkbenchPlugin.getDefault().getPreferenceStore(); |
| store.removePropertyChangeListener(this); |
| } |
| /** |
| * Returns true if the menu with the given ID should |
| * be considered OLE container menu. Container menus |
| * are preserved in OLE menu merging. |
| */ |
| public static boolean isContainerMenu(String menuId) { |
| if (menuId.equals(IWorkbenchActionConstants.M_FILE)) |
| return true; |
| if (menuId.equals(IWorkbenchActionConstants.M_VIEW)) |
| return true; |
| if (menuId.equals(IWorkbenchActionConstants.M_WORKBENCH)) |
| return true; |
| if (menuId.equals(IWorkbenchActionConstants.M_WINDOW)) |
| return true; |
| return false; |
| } |
| /** |
| * Create actions for the menu bar and toolbar |
| */ |
| private void makeActions() { |
| |
| // The actions in jface do not have menu vs. enable, vs. disable vs. color |
| // There are actions in here being passed the workbench - problem |
| |
| // Get services for notification. |
| IPartService partService = window.getPartService(); |
| WWinKeyBindingService keyBindingService = window.getKeyBindingService(); |
| |
| // Many actions need the workbench. |
| IWorkbench workbench = window.getWorkbench(); |
| |
| newWizardAction = new NewWizardAction(); |
| // images for this action are set in its constructor |
| keyBindingService.registerGlobalAction(newWizardAction); |
| |
| newWizardDropDownAction = new NewWizardDropDownAction(workbench, newWizardAction); |
| newWizardDropDownAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_NEW_WIZ)); |
| newWizardDropDownAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_NEW_WIZ_HOVER)); |
| newWizardDropDownAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_NEW_WIZ_DISABLED)); |
| |
| importResourcesAction = new ImportResourcesAction(workbench); |
| importResourcesAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_IMPORT_WIZ)); |
| importResourcesAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_IMPORT_WIZ_HOVER)); |
| importResourcesAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_IMPORT_WIZ_DISABLED)); |
| |
| exportResourcesAction = new ExportResourcesAction(workbench,WorkbenchMessages.getString("ExportResourcesAction.fileMenuText")); |
| exportResourcesAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_EXPORT_WIZ)); |
| exportResourcesAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_EXPORT_WIZ_HOVER)); |
| exportResourcesAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_EXPORT_WIZ_DISABLED)); |
| |
| rebuildAllAction = new GlobalBuildAction(window, IncrementalProjectBuilder.FULL_BUILD); |
| // 1G82IWC - a new icon is needed for Rebuild All or Build |
| // rebuildAllAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_BUILD_EXEC)); |
| // rebuildAllAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_BUILD_EXEC_HOVER)); |
| // rebuildAllAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_BUILD_EXEC_DISABLED)); |
| rebuildAllAction.setActionDefinitionId(rebuildAllActionDefId); |
| |
| buildAllAction = new GlobalBuildAction(window, IncrementalProjectBuilder.INCREMENTAL_BUILD); |
| buildAllAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_BUILD_EXEC)); |
| buildAllAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_BUILD_EXEC_HOVER)); |
| buildAllAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_BUILD_EXEC_DISABLED)); |
| buildAllAction.setActionDefinitionId(buildAllActionDefId); |
| |
| saveAction = new SaveAction(window); |
| saveAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVE_EDIT)); |
| saveAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVE_EDIT_HOVER)); |
| saveAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVE_EDIT_DISABLED)); |
| partService.addPartListener(saveAction); |
| saveAction.setActionDefinitionId(saveActionDefId); |
| keyBindingService.registerGlobalAction(saveAction); |
| |
| saveAsAction = new SaveAsAction(window); |
| saveAsAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVEAS_EDIT)); |
| saveAsAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVEAS_EDIT_HOVER)); |
| saveAsAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVEAS_EDIT_DISABLED)); |
| partService.addPartListener(saveAsAction); |
| |
| saveAllAction = new SaveAllAction(window); |
| saveAllAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVEALL_EDIT)); |
| saveAllAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVEALL_EDIT_HOVER)); |
| saveAllAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVEALL_EDIT_DISABLED)); |
| partService.addPartListener(saveAllAction); |
| saveAllAction.setActionDefinitionId(saveAllActionDefId); |
| keyBindingService.registerGlobalAction(saveAllAction); |
| |
| undoAction = new LabelRetargetAction(IWorkbenchActionConstants.UNDO, WorkbenchMessages.getString("Workbench.undo")); //$NON-NLS-1$ |
| undoAction.setToolTipText(WorkbenchMessages.getString("Workbench.undoToolTip")); //$NON-NLS-1$ |
| undoAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_UNDO_EDIT)); |
| undoAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_UNDO_EDIT_HOVER)); |
| undoAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_UNDO_EDIT_DISABLED)); |
| partService.addPartListener(undoAction); |
| undoAction.setActionDefinitionId(undoActionDefId); |
| keyBindingService.registerGlobalAction(undoAction); |
| |
| redoAction = new LabelRetargetAction(IWorkbenchActionConstants.REDO, WorkbenchMessages.getString("Workbench.redo")); //$NON-NLS-1$ |
| redoAction.setToolTipText(WorkbenchMessages.getString("Workbench.redoToolTip")); //$NON-NLS-1$ |
| redoAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_REDO_EDIT)); |
| redoAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_REDO_EDIT_HOVER)); |
| redoAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_REDO_EDIT_DISABLED)); |
| partService.addPartListener(redoAction); |
| redoAction.setActionDefinitionId(redoActionDefId); |
| keyBindingService.registerGlobalAction(redoAction); |
| |
| cutAction = new RetargetAction(IWorkbenchActionConstants.CUT, WorkbenchMessages.getString("Workbench.cut")); //$NON-NLS-1$ |
| cutAction.setToolTipText(WorkbenchMessages.getString("Workbench.cutToolTip")); //$NON-NLS-1$ |
| cutAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_CUT_EDIT)); |
| cutAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_CUT_EDIT_HOVER)); |
| cutAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_CUT_EDIT_DISABLED)); |
| partService.addPartListener(cutAction); |
| cutAction.setActionDefinitionId(cutActionDefId); |
| keyBindingService.registerGlobalAction(cutAction); |
| |
| copyAction = new RetargetAction(IWorkbenchActionConstants.COPY, WorkbenchMessages.getString("Workbench.copy")); //$NON-NLS-1$ |
| copyAction.setToolTipText(WorkbenchMessages.getString("Workbench.copyToolTip")); //$NON-NLS-1$ |
| copyAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_COPY_EDIT)); |
| copyAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_COPY_EDIT_HOVER)); |
| copyAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_COPY_EDIT_DISABLED)); |
| partService.addPartListener(copyAction); |
| copyAction.setActionDefinitionId(copyActionDefId); |
| keyBindingService.registerGlobalAction(copyAction); |
| |
| pasteAction = new RetargetAction(IWorkbenchActionConstants.PASTE, WorkbenchMessages.getString("Workbench.paste")); //$NON-NLS-1$ |
| pasteAction.setToolTipText(WorkbenchMessages.getString("Workbench.pasteToolTip")); //$NON-NLS-1$ |
| pasteAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_PASTE_EDIT)); |
| pasteAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_PASTE_EDIT_HOVER)); |
| pasteAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_PASTE_EDIT_DISABLED)); |
| partService.addPartListener(pasteAction); |
| pasteAction.setActionDefinitionId(pasteActionDefId); |
| keyBindingService.registerGlobalAction(pasteAction); |
| |
| printAction = new RetargetAction(IWorkbenchActionConstants.PRINT, WorkbenchMessages.getString("Workbench.print")); //$NON-NLS-1$ |
| printAction.setToolTipText(WorkbenchMessages.getString("Workbench.printToolTip")); //$NON-NLS-1$ |
| printAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_PRINT_EDIT)); |
| printAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_PRINT_EDIT_HOVER)); |
| printAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_PRINT_EDIT_DISABLED)); |
| partService.addPartListener(printAction); |
| printAction.setActionDefinitionId(printActionDefId); |
| keyBindingService.registerGlobalAction(printAction); |
| |
| selectAllAction = new RetargetAction(IWorkbenchActionConstants.SELECT_ALL, WorkbenchMessages.getString("Workbench.selectAll")); //$NON-NLS-1$ |
| selectAllAction.setToolTipText(WorkbenchMessages.getString("Workbench.selectAllToolTip")); //$NON-NLS-1$ |
| partService.addPartListener(selectAllAction); |
| selectAllAction.setActionDefinitionId(selectAllActionDefId); |
| keyBindingService.registerGlobalAction(selectAllAction); |
| |
| findAction = new RetargetAction(IWorkbenchActionConstants.FIND, WorkbenchMessages.getString("Workbench.findReplace")); //$NON-NLS-1$ |
| findAction.setToolTipText(WorkbenchMessages.getString("Workbench.findReplaceToolTip")); //$NON-NLS-1$ |
| // Find's images commented out due to conflict with Search. |
| // See bug 16412. |
| // findAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SEARCH_SRC)); |
| // findAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SEARCH_SRC_HOVER)); |
| // findAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SEARCH_SRC_DISABLED)); |
| partService.addPartListener(findAction); |
| findAction.setActionDefinitionId(findActionDefId); |
| keyBindingService.registerGlobalAction(findAction); |
| |
| closeAction = new CloseEditorAction(window); |
| partService.addPartListener(closeAction); |
| closeAction.setActionDefinitionId(closeActionDefId); |
| keyBindingService.registerGlobalAction(closeAction); |
| |
| closeAllAction = new CloseAllAction(window); |
| partService.addPartListener(closeAllAction); |
| closeAllAction.setActionDefinitionId(closeAllActionDefId); |
| keyBindingService.registerGlobalAction(closeAllAction); |
| |
| closeAllSavedAction = new CloseAllSavedAction(window); |
| partService.addPartListener(closeAllSavedAction); |
| closeAllSavedAction.setActionDefinitionId(closeAllSavedActionDefId); |
| keyBindingService.registerGlobalAction(closeAllSavedAction); |
| |
| pinEditorAction = new PinEditorAction(window); |
| partService.addPartListener(pinEditorAction); |
| pinEditorAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_PIN_EDITOR)); |
| pinEditorAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_PIN_EDITOR_HOVER)); |
| pinEditorAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_PIN_EDITOR_DISABLED)); |
| |
| aboutAction = new AboutAction(window); |
| aboutAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_OBJS_DEFAULT_PROD)); |
| |
| openPreferencesAction = new OpenPreferencesAction(window); |
| |
| addBookmarkAction = new RetargetAction(IWorkbenchActionConstants.BOOKMARK, WorkbenchMessages.getString("Workbench.addBookMark")); //$NON-NLS-1$ |
| partService.addPartListener(addBookmarkAction); |
| addBookmarkAction.setToolTipText(WorkbenchMessages.getString("Workbench.addBookMarkToolTip")); //$NON-NLS-1$ |
| addBookmarkAction.setActionDefinitionId(addBookmarkActionDefId); |
| keyBindingService.registerGlobalAction(addBookmarkAction); |
| |
| addTaskAction = createGlobalAction(IWorkbenchActionConstants.ADD_TASK, "edit", false); //$NON-NLS-1$ |
| |
| showInAction = new WorkbenchShowInAction(window); |
| partService.addPartListener(showInAction); |
| showInAction.setActionDefinitionId(showInActionDefId); |
| keyBindingService.registerGlobalAction(showInAction); |
| |
| deleteAction = new RetargetAction(IWorkbenchActionConstants.DELETE, WorkbenchMessages.getString("Workbench.delete")); //$NON-NLS-1$ |
| deleteAction.setToolTipText(WorkbenchMessages.getString("Workbench.deleteToolTip")); //$NON-NLS-1$ |
| deleteAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_DELETE_EDIT)); |
| deleteAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_DELETE_EDIT_HOVER)); |
| deleteAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_DELETE_EDIT_DISABLED)); |
| deleteAction.enableAccelerator(false); |
| WorkbenchHelp.setHelp(deleteAction, IHelpContextIds.DELETE_RETARGET_ACTION); |
| partService.addPartListener(deleteAction); |
| deleteAction.setActionDefinitionId(deleteActionDefId); |
| // don't register the delete action with the key binding service. |
| // doing so would break cell editors that listen for keyPressed SWT |
| // events. |
| //keyBindingService.registerGlobalAction(deleteAction); |
| |
| // See if a welcome page is specified |
| AboutInfo[] infos = ((Workbench)workbench).getConfigurationInfo().getFeaturesInfo(); |
| for (int i = 0; i < infos.length; i++) { |
| if (infos[i].getWelcomePageURL() != null) { |
| quickStartAction = new QuickStartAction(workbench); |
| break; |
| } |
| } |
| |
| // Actions for invisible accelerators |
| showViewMenuAction = new ShowViewMenuAction(window); |
| showViewMenuAction.setActionDefinitionId(showViewMenuActionDefId); |
| keyBindingService.registerGlobalAction(showViewMenuAction); |
| |
| showPartPaneMenuAction = new ShowPartPaneMenuAction(window); |
| showPartPaneMenuAction.setActionDefinitionId(showPartPaneMenuActionDefId); |
| keyBindingService.registerGlobalAction(showPartPaneMenuAction); |
| |
| nextEditorAction = new CycleEditorAction(window, true); |
| nextEditorAction.setActionDefinitionId(nextEditorActionDefId); |
| keyBindingService.registerGlobalAction(nextEditorAction); |
| |
| prevEditorAction = new CycleEditorAction(window, false); |
| prevEditorAction.setActionDefinitionId(prevEditorActionDefId); |
| keyBindingService.registerGlobalAction(prevEditorAction); |
| |
| nextPartAction = new CyclePartAction(window, true); |
| nextPartAction.setActionDefinitionId(nextPartActionDefId); |
| keyBindingService.registerGlobalAction(nextPartAction); |
| |
| prevPartAction = new CyclePartAction(window, false); |
| prevPartAction.setActionDefinitionId(prevPartActionDefId); |
| keyBindingService.registerGlobalAction(prevPartAction); |
| |
| nextPerspectiveAction = new CyclePerspectiveAction(window, true); |
| nextPerspectiveAction.setActionDefinitionId(nextPerspectiveActionDefId); |
| keyBindingService.registerGlobalAction(nextPerspectiveAction); |
| |
| prevPerspectiveAction = new CyclePerspectiveAction(window, false); |
| prevPerspectiveAction.setActionDefinitionId(prevPerspectiveActionDefId); |
| keyBindingService.registerGlobalAction(prevPerspectiveAction); |
| |
| activateEditorAction = new ActivateEditorAction(window); |
| activateEditorAction.setActionDefinitionId(activateEditorActionDefId); |
| keyBindingService.registerGlobalAction(activateEditorAction); |
| |
| workbenchEditorsAction = new WorkbenchEditorsAction(window); |
| workbenchEditorsAction.setActionDefinitionId(workbenchEditorsActionDefId); |
| keyBindingService.registerGlobalAction(workbenchEditorsAction); |
| |
| hideShowEditorAction = new ToggleEditorsVisibilityAction(window); |
| savePerspectiveAction = new SavePerspectiveAction(window); |
| editActionSetAction = new EditActionSetsAction(window); |
| lockToolBarAction = new LockToolBarAction(window); |
| resetPerspectiveAction = new ResetPerspectiveAction(window); |
| closePerspAction = new ClosePerspectiveAction(window); |
| closeAllPerspsAction = new CloseAllPerspectivesAction(window); |
| |
| //Must change/copy the image. It is using a local toolbar image and colored. |
| backwardHistoryAction = new NavigationHistoryAction(window, false); |
| backwardHistoryAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_BACKWARD_NAV)); |
| backwardHistoryAction.setActionDefinitionId(backwardHistoryActionDefId); |
| keyBindingService.registerGlobalAction(backwardHistoryAction); |
| |
| forwardHistoryAction = new NavigationHistoryAction(window, true); |
| forwardHistoryAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_FORWARD_NAV)); |
| forwardHistoryAction.setActionDefinitionId(forwardHistoryActionDefId); |
| keyBindingService.registerGlobalAction(forwardHistoryAction); |
| |
| revertAction = createGlobalAction(IWorkbenchActionConstants.REVERT, "file", false); //$NON-NLS-1$ |
| refreshAction = createGlobalAction(IWorkbenchActionConstants.REFRESH, "file", false); //$NON-NLS-1$ |
| propertiesAction = createGlobalAction(IWorkbenchActionConstants.PROPERTIES, "file", false); //$NON-NLS-1$ |
| moveAction = createGlobalAction(IWorkbenchActionConstants.MOVE, "edit", false); //$NON-NLS-1$ |
| renameAction = createGlobalAction(IWorkbenchActionConstants.RENAME, "edit", false); //$NON-NLS-1$ |
| goIntoAction = createGlobalAction(IWorkbenchActionConstants.GO_INTO, "navigate", false); //$NON-NLS-1$ |
| backAction = createGlobalAction(IWorkbenchActionConstants.BACK, "navigate", true); //$NON-NLS-1$ |
| forwardAction = createGlobalAction(IWorkbenchActionConstants.FORWARD, "navigate", true); //$NON-NLS-1$ |
| upAction = createGlobalAction(IWorkbenchActionConstants.UP, "navigate", true); //$NON-NLS-1$ |
| nextAction = createGlobalAction(IWorkbenchActionConstants.NEXT, "navigate", true); //$NON-NLS-1$ |
| nextAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_NEXT_NAV)); |
| previousAction = createGlobalAction(IWorkbenchActionConstants.PREVIOUS, "navigate", true); //$NON-NLS-1$ |
| previousAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_PREVIOUS_NAV)); |
| buildProjectAction = createGlobalAction(IWorkbenchActionConstants.BUILD_PROJECT, "project", false); //$NON-NLS-1$ |
| rebuildProjectAction = createGlobalAction(IWorkbenchActionConstants.REBUILD_PROJECT, "project", false); //$NON-NLS-1$ |
| openProjectAction = createGlobalAction(IWorkbenchActionConstants.OPEN_PROJECT, "project", false); //$NON-NLS-1$ |
| closeProjectAction = createGlobalAction(IWorkbenchActionConstants.CLOSE_PROJECT, "project", false); //$NON-NLS-1$ |
| |
| // override the text and tooltip for certain actions, |
| // either to get the new text or a different mnemonic |
| savePerspectiveAction.setText(WorkbenchMessages.getString("Workbench.savePerspectiveAs")); //$NON-NLS-1$ |
| editActionSetAction.setText(WorkbenchMessages.getString("Workbench.customizePerspective")); //$NON-NLS-1$ |
| lockToolBarAction.setText(WorkbenchMessages.getString("Workbench.lockPerspectiveToolBar")); //$NON-NLS-1$ |
| resetPerspectiveAction.setText(WorkbenchMessages.getString("Workbench.resetPerspective")); //$NON-NLS-1$ |
| closePerspAction.setText(WorkbenchMessages.getString("Workbench.closePerspective")); //$NON-NLS-1$ |
| closeAllPerspsAction.setText(WorkbenchMessages.getString("Workbench.closeAllPerspectives")); //$NON-NLS-1$ |
| buildAllAction.setText(WorkbenchMessages.getString("Workbench.buildAll")); //$NON-NLS-1$ |
| buildAllAction.setToolTipText(WorkbenchMessages.getString("Workbench.buildAllToolTip")); //$NON-NLS-1$ |
| keyBindingService.registerGlobalAction(buildAllAction); |
| rebuildAllAction.setText(WorkbenchMessages.getString("Workbench.rebuildAll")); //$NON-NLS-1$ |
| rebuildAllAction.setToolTipText(WorkbenchMessages.getString("Workbench.rebuildAllToolTip")); //$NON-NLS-1$ |
| keyBindingService.registerGlobalAction(rebuildAllAction); |
| } |
| |
| private RetargetAction createGlobalAction(String id, String actionDefPrefix, boolean labelRetarget) { |
| RetargetAction action; |
| if (labelRetarget) { |
| action = new LabelRetargetAction(id, WorkbenchMessages.getString("Workbench." + id)); //$NON-NLS-1$ |
| } |
| else { |
| action = new RetargetAction(id, WorkbenchMessages.getString("Workbench." + id)); //$NON-NLS-1$ |
| } |
| action.setToolTipText(WorkbenchMessages.getString("Workbench." + id + "ToolTip")); //$NON-NLS-1$ //$NON-NLS-2$ |
| window.getPartService().addPartListener(action); |
| action.setActionDefinitionId(PlatformUI.PLUGIN_ID + "." + actionDefPrefix + "." + id); //$NON-NLS-1$ //$NON-NLS-2$ |
| window.getKeyBindingService().registerGlobalAction(action); |
| return action; |
| } |
| |
| /** |
| * Update the menubar and toolbar when |
| * changes to the preferences are done. |
| */ |
| public void propertyChange(PropertyChangeEvent event) { |
| // Allow manual incremental build only if the |
| // auto build setting is off. |
| IPreferenceStore store = WorkbenchPlugin.getDefault().getPreferenceStore(); |
| if (event.getProperty().equals(IPreferenceConstants.AUTO_BUILD)) { |
| // Auto build is stored in core. It is also in the preference store for use by import/export. |
| IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription(); |
| boolean autoBuildSetting = description.isAutoBuilding(); |
| boolean newAutoBuildSetting = store.getBoolean(IPreferenceConstants.AUTO_BUILD); |
| |
| if(autoBuildSetting != newAutoBuildSetting){ |
| description.setAutoBuilding(newAutoBuildSetting); |
| autoBuildSetting = newAutoBuildSetting; |
| try { |
| ResourcesPlugin.getWorkspace().setDescription(description); |
| } catch (CoreException e) { |
| WorkbenchPlugin.log("Error changing autobuild pref", e.getStatus()); |
| } |
| |
| // If auto build is turned on, then do a global incremental |
| // build on all the projects. |
| if (newAutoBuildSetting) { |
| GlobalBuildAction action = new GlobalBuildAction(window,IncrementalProjectBuilder.INCREMENTAL_BUILD); |
| action.doBuild(); |
| } |
| } |
| |
| |
| if (autoBuildSetting) |
| removeManualIncrementalBuildAction(); |
| else |
| addManualIncrementalBuildAction(); |
| |
| } else if (event.getProperty().equals(IPreferenceConstants.REUSE_EDITORS_BOOLEAN)) { |
| if(store.getBoolean(IPreferenceConstants.REUSE_EDITORS_BOOLEAN)) |
| addPinEditorAction(); |
| else |
| removePinEditorAction(); |
| } else if (event.getProperty().equals(IPreferenceConstants.REUSE_EDITORS)) { |
| pinEditorAction.updateState(); |
| } else if (event.getProperty().equals(IPreferenceConstants.RECENT_FILES)) { |
| Workbench wb = (Workbench) (Workbench) window.getWorkbench(); |
| int newValue = store.getInt(IPreferenceConstants.RECENT_FILES); |
| wb.getEditorHistory().reset(newValue); |
| if (newValue == 0) { |
| // the open recent menu item can go from enabled to disabled |
| window.updateActionBars(); |
| } |
| } |
| } |
| /* |
| * Adds the pin action to the toolbar. |
| */ |
| private void addHistoryActions() { |
| CoolBarManager cBarMgr = window.getCoolBarManager(); |
| CoolBarContributionItem coolBarItem = new CoolBarContributionItem(cBarMgr, historyGroup); //$NON-NLS-1$ |
| // we want to add the history cool item before the editor cool item (if it exists) |
| IContributionItem refItem = cBarMgr.findSubId(IWorkbenchActionConstants.GROUP_EDITOR); |
| if (refItem == null) { |
| cBarMgr.add(coolBarItem); |
| } else { |
| cBarMgr.insertBefore(refItem.getId(), coolBarItem); |
| } |
| coolBarItem.setVisible(true); |
| IToolBarManager tBarMgr = (IToolBarManager)coolBarItem.getToolBarManager(); |
| tBarMgr.add(new GroupMarker(historyGroup)); |
| tBarMgr.insertAfter(historyGroup,forwardHistoryAction); |
| tBarMgr.insertAfter(historyGroup,backwardHistoryAction); |
| cBarMgr.update(true); |
| } |
| /* |
| * Adds the pin action to the toolbar. |
| */ |
| private void addPinEditorAction() { |
| CoolBarManager cBarMgr = window.getCoolBarManager(); |
| CoolBarContributionItem coolBarItem = new CoolBarContributionItem(cBarMgr, pinEditorGroup); //$NON-NLS-1$ |
| // we want to add the pin editor cool item before the editor cool item (if |
| // it exists) |
| IContributionItem refItem = cBarMgr.findSubId(IWorkbenchActionConstants.GROUP_EDITOR); |
| if (refItem == null) { |
| cBarMgr.add(coolBarItem); |
| } else { |
| cBarMgr.insertBefore(refItem.getId(), coolBarItem); |
| } |
| coolBarItem.setVisible(true); |
| IToolBarManager tBarMgr = (IToolBarManager)coolBarItem.getToolBarManager(); |
| tBarMgr.add(new GroupMarker(pinEditorGroup)); |
| pinEditorAction.setVisible(true); |
| tBarMgr.insertAfter(pinEditorGroup,pinEditorAction); |
| cBarMgr.update(true); |
| } |
| /* |
| * Removes the pin action from the toolbar. |
| */ |
| private void removePinEditorAction() { |
| CoolBarManager cBarMgr = window.getCoolBarManager(); |
| CoolBarContributionItem coolBarItem = (CoolBarContributionItem)cBarMgr.find(pinEditorGroup); //$NON-NLS-1$ |
| if (coolBarItem != null) |
| coolBarItem.dispose(); |
| cBarMgr.update(true); |
| } |
| /** |
| * Remove the manual incremental build action |
| * from both the menu bar and the tool bar. |
| */ |
| protected void removeManualIncrementalBuildAction() { |
| MenuManager menubar = window.getMenuBarManager(); |
| IMenuManager manager = menubar.findMenuUsingPath(IWorkbenchActionConstants.M_PROJECT); |
| if (manager != null) { |
| try { |
| manager.remove(IWorkbenchActionConstants.BUILD); |
| manager.remove(IWorkbenchActionConstants.BUILD_PROJECT); |
| } catch (IllegalArgumentException e) { |
| // action was not in menu |
| } |
| } |
| CoolBarManager cBarMgr = window.getCoolBarManager(); |
| CoolBarContributionItem groupItem = (CoolBarContributionItem)cBarMgr.find(workbenchToolGroupId); |
| if (groupItem != null) { |
| IContributionManager tBarMgr = groupItem.getToolBarManager(); |
| try { |
| tBarMgr.remove(IWorkbenchActionConstants.BUILD); |
| tBarMgr.update(true); |
| } catch (IllegalArgumentException e) { |
| // action was not in toolbar |
| } |
| } |
| } |
| } |