diff options
Diffstat (limited to 'bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/packageview/PackageExplorerActionGroup.java')
-rw-r--r-- | bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/packageview/PackageExplorerActionGroup.java | 393 |
1 files changed, 0 insertions, 393 deletions
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/packageview/PackageExplorerActionGroup.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/packageview/PackageExplorerActionGroup.java deleted file mode 100644 index eb27f5ac..00000000 --- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/packageview/PackageExplorerActionGroup.java +++ /dev/null @@ -1,393 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package org.eclipse.wst.jsdt.internal.ui.packageview; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.IToolBarManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.jface.util.IPropertyChangeListener; -import org.eclipse.jface.util.OpenStrategy; -import org.eclipse.jface.util.PropertyChangeEvent; -import org.eclipse.jface.viewers.DoubleClickEvent; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.ITreeSelection; -import org.eclipse.jface.viewers.OpenEvent; -import org.eclipse.jface.viewers.TreePath; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.ui.IActionBars; -import org.eclipse.ui.IMemento; -import org.eclipse.ui.IWorkbenchActionConstants; -import org.eclipse.ui.IWorkbenchPartSite; -import org.eclipse.ui.IWorkingSet; -import org.eclipse.ui.IWorkingSetManager; -import org.eclipse.ui.actions.ActionFactory; -import org.eclipse.ui.actions.ActionGroup; -import org.eclipse.ui.actions.OpenInNewWindowAction; -import org.eclipse.ui.views.framelist.BackAction; -import org.eclipse.ui.views.framelist.ForwardAction; -import org.eclipse.ui.views.framelist.Frame; -import org.eclipse.ui.views.framelist.FrameAction; -import org.eclipse.ui.views.framelist.FrameList; -import org.eclipse.ui.views.framelist.GoIntoAction; -import org.eclipse.ui.views.framelist.TreeFrame; -import org.eclipse.ui.views.framelist.UpAction; -import org.eclipse.wst.jsdt.core.IClassFile; -import org.eclipse.wst.jsdt.core.IJavaScriptUnit; -import org.eclipse.wst.jsdt.core.IJavaScriptElement; -import org.eclipse.wst.jsdt.core.IOpenable; -import org.eclipse.wst.jsdt.core.JavaScriptCore; -import org.eclipse.wst.jsdt.internal.ui.actions.CompositeActionGroup; -import org.eclipse.wst.jsdt.internal.ui.actions.NewWizardsActionGroup; -import org.eclipse.wst.jsdt.internal.ui.actions.SelectAllAction; -//import org.eclipse.wst.jsdt.internal.ui.wizards.buildpaths.newsourcepage.GenerateBuildPathActionGroup; -import org.eclipse.wst.jsdt.internal.ui.workingsets.ViewActionGroup; -import org.eclipse.wst.jsdt.ui.IContextMenuConstants; -import org.eclipse.wst.jsdt.ui.PreferenceConstants; -import org.eclipse.wst.jsdt.ui.actions.BuildActionGroup; -import org.eclipse.wst.jsdt.ui.actions.CCPActionGroup; -import org.eclipse.wst.jsdt.ui.actions.CustomFiltersActionGroup; -import org.eclipse.wst.jsdt.ui.actions.GenerateActionGroup; -import org.eclipse.wst.jsdt.ui.actions.ImportActionGroup; -import org.eclipse.wst.jsdt.ui.actions.JavaSearchActionGroup; -import org.eclipse.wst.jsdt.ui.actions.JdtActionConstants; -import org.eclipse.wst.jsdt.ui.actions.NavigateActionGroup; -import org.eclipse.wst.jsdt.ui.actions.OpenProjectAction; -import org.eclipse.wst.jsdt.ui.actions.ProjectActionGroup; -import org.eclipse.wst.jsdt.ui.actions.RefactorActionGroup; - -class PackageExplorerActionGroup extends CompositeActionGroup { - - private PackageExplorerPart fPart; - - private FrameList fFrameList; - private GoIntoAction fZoomInAction; - private BackAction fBackAction; - private ForwardAction fForwardAction; - private UpAction fUpAction; - private GotoTypeAction fGotoTypeAction; - private GotoPackageAction fGotoPackageAction; - private GotoResourceAction fGotoResourceAction; - private CollapseAllAction fCollapseAllAction; - private SelectAllAction fSelectAllAction; - - - private ToggleLinkingAction fToggleLinkingAction; - - private RefactorActionGroup fRefactorActionGroup; - private NavigateActionGroup fNavigateActionGroup; - private ViewActionGroup fViewActionGroup; - - private CustomFiltersActionGroup fCustomFiltersActionGroup; - - private IAction fGotoRequiredProjectAction; - - private ProjectActionGroup fProjectActionGroup; - - public PackageExplorerActionGroup(PackageExplorerPart part) { - super(); - fPart= part; - TreeViewer viewer= part.getTreeViewer(); - - IPropertyChangeListener workingSetListener= new IPropertyChangeListener() { - public void propertyChange(PropertyChangeEvent event) { - doWorkingSetChanged(event); - } - }; - - IWorkbenchPartSite site = fPart.getSite(); - setGroups(new ActionGroup[] { - new NewWizardsActionGroup(site), - fNavigateActionGroup= new NavigateActionGroup(fPart), - new CCPActionGroup(fPart), - /*new GenerateBuildPathActionGroup(fPart),*/ - new GenerateActionGroup(fPart), - fRefactorActionGroup= new RefactorActionGroup(fPart), - new ImportActionGroup(fPart), - new BuildActionGroup(fPart), - new JavaSearchActionGroup(fPart), - fProjectActionGroup= new ProjectActionGroup(fPart), - fViewActionGroup= new ViewActionGroup(fPart.getRootMode(), workingSetListener, site), - fCustomFiltersActionGroup= new CustomFiltersActionGroup(fPart, viewer), - new LayoutActionGroup(fPart) - }); - - - fViewActionGroup.fillFilters(viewer); - - PackagesFrameSource frameSource= new PackagesFrameSource(fPart); - fFrameList= new FrameList(frameSource); - frameSource.connectTo(fFrameList); - - fZoomInAction= new GoIntoAction(fFrameList); - fBackAction= new BackAction(fFrameList); - fForwardAction= new ForwardAction(fFrameList); - fUpAction= new UpAction(fFrameList); - - fGotoTypeAction= new GotoTypeAction(fPart); - fGotoPackageAction= new GotoPackageAction(fPart); - fGotoResourceAction= new GotoResourceAction(fPart); - fCollapseAllAction= new CollapseAllAction(fPart); - fToggleLinkingAction = new ToggleLinkingAction(fPart); - fGotoRequiredProjectAction= new GotoRequiredProjectAction(fPart); - fSelectAllAction= new SelectAllAction(fPart.getTreeViewer()); - } - - public void dispose() { - super.dispose(); - } - - - //---- Persistent state ----------------------------------------------------------------------- - - /* package */ void restoreFilterAndSorterState(IMemento memento) { - fViewActionGroup.restoreState(memento); - fCustomFiltersActionGroup.restoreState(memento); - } - - /* package */ void saveFilterAndSorterState(IMemento memento) { - fViewActionGroup.saveState(memento); - fCustomFiltersActionGroup.saveState(memento); - } - - //---- Action Bars ---------------------------------------------------------------------------- - - public void fillActionBars(IActionBars actionBars) { - super.fillActionBars(actionBars); - setGlobalActionHandlers(actionBars); - fillToolBar(actionBars.getToolBarManager()); - fillViewMenu(actionBars.getMenuManager()); - } - - /* package */ void updateActionBars(IActionBars actionBars) { - actionBars.getToolBarManager().removeAll(); - actionBars.getMenuManager().removeAll(); - fillActionBars(actionBars); - actionBars.updateActionBars(); - fZoomInAction.setEnabled(true); - } - - private void setGlobalActionHandlers(IActionBars actionBars) { - // Navigate Go Into and Go To actions. - actionBars.setGlobalActionHandler(IWorkbenchActionConstants.GO_INTO, fZoomInAction); - actionBars.setGlobalActionHandler(ActionFactory.BACK.getId(), fBackAction); - actionBars.setGlobalActionHandler(ActionFactory.FORWARD.getId(), fForwardAction); - actionBars.setGlobalActionHandler(IWorkbenchActionConstants.UP, fUpAction); - actionBars.setGlobalActionHandler(IWorkbenchActionConstants.GO_TO_RESOURCE, fGotoResourceAction); - actionBars.setGlobalActionHandler(JdtActionConstants.GOTO_TYPE, fGotoTypeAction); - actionBars.setGlobalActionHandler(JdtActionConstants.GOTO_PACKAGE, fGotoPackageAction); - actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), fSelectAllAction); - - fRefactorActionGroup.retargetFileMenuActions(actionBars); - } - - /* package */ void fillToolBar(IToolBarManager toolBar) { - toolBar.add(fBackAction); - toolBar.add(fForwardAction); - toolBar.add(fUpAction); - - toolBar.add(new Separator()); - toolBar.add(fCollapseAllAction); - toolBar.add(fToggleLinkingAction); - - } - - /* package */ void fillViewMenu(IMenuManager menu) { - menu.add(new Separator()); - menu.add(fToggleLinkingAction); - menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); - menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS+"-end"));//$NON-NLS-1$ - } - - //---- Context menu ------------------------------------------------------------------------- - - public void fillContextMenu(IMenuManager menu) { - IStructuredSelection selection= (IStructuredSelection)getContext().getSelection(); - int size= selection.size(); - Object element= selection.getFirstElement(); - - if (element instanceof JsGlobalScopeContainer.RequiredProjectWrapper) - menu.appendToGroup(IContextMenuConstants.GROUP_SHOW, fGotoRequiredProjectAction); - - addGotoMenu(menu, element, size); - - addOpenNewWindowAction(menu, element); - - super.fillContextMenu(menu); - } - - private void addGotoMenu(IMenuManager menu, Object element, int size) { - boolean enabled= size == 1 && fPart.getTreeViewer().isExpandable(element) && (isGoIntoTarget(element) || element instanceof IContainer); - fZoomInAction.setEnabled(enabled); - if (enabled) - menu.appendToGroup(IContextMenuConstants.GROUP_GOTO, fZoomInAction); - } - - private boolean isGoIntoTarget(Object element) { - if (element == null) - return false; - if (element instanceof IJavaScriptElement) { - int type= ((IJavaScriptElement)element).getElementType(); - return type == IJavaScriptElement.JAVASCRIPT_PROJECT || - type == IJavaScriptElement.PACKAGE_FRAGMENT_ROOT || - type == IJavaScriptElement.PACKAGE_FRAGMENT; - } - if (element instanceof IWorkingSet) { - return true; - } - return false; - } - - private void addOpenNewWindowAction(IMenuManager menu, Object element) { - if (element instanceof IJavaScriptElement) { - element= ((IJavaScriptElement)element).getResource(); - - } - // fix for 64890 Package explorer out of sync when open/closing projects [package explorer] 64890 - if (element instanceof IProject && !((IProject)element).isOpen()) - return; - - if (!(element instanceof IContainer)) - return; - menu.appendToGroup( - IContextMenuConstants.GROUP_OPEN, - new OpenInNewWindowAction(fPart.getSite().getWorkbenchWindow(), (IContainer)element)); - } - - //---- Key board and mouse handling ------------------------------------------------------------ - - /* package*/ void handleDoubleClick(DoubleClickEvent event) { - TreeViewer viewer= fPart.getTreeViewer(); - IStructuredSelection selection= (IStructuredSelection)event.getSelection(); - Object element= selection.getFirstElement(); - if (viewer.isExpandable(element)) { - if (doubleClickGoesInto()) { - // don't zoom into compilation units and class files - if (element instanceof IJavaScriptUnit || element instanceof IClassFile) - return; - if (element instanceof IOpenable || element instanceof IContainer || element instanceof IWorkingSet) { - fZoomInAction.run(); - } - } else { - IAction openAction= fNavigateActionGroup.getOpenAction(); - if (openAction != null && openAction.isEnabled() && OpenStrategy.getOpenMethod() == OpenStrategy.DOUBLE_CLICK) - return; - if (selection instanceof ITreeSelection) { - TreePath[] paths= ((ITreeSelection)selection).getPathsFor(element); - for (int i= 0; i < paths.length; i++) { - viewer.setExpandedState(paths[i], !viewer.getExpandedState(paths[i])); - } - } else { - viewer.setExpandedState(element, !viewer.getExpandedState(element)); - } - } - } else if (element instanceof IProject && !((IProject) element).isOpen()) { - OpenProjectAction openProjectAction= fProjectActionGroup.getOpenProjectAction(); - if (openProjectAction.isEnabled()) { - openProjectAction.run(); - } - } - } - - /* package */ void handleOpen(OpenEvent event) { - IAction openAction= fNavigateActionGroup.getOpenAction(); - if (openAction != null && openAction.isEnabled()) { - openAction.run(); - return; - } - } - - /* package */ void handleKeyEvent(KeyEvent event) { - if (event.stateMask != 0) - return; - - if (event.keyCode == SWT.BS) { - if (fUpAction != null && fUpAction.isEnabled()) { - fUpAction.run(); - event.doit= false; - } - } - } - - private void doWorkingSetChanged(PropertyChangeEvent event) { - if (ViewActionGroup.MODE_CHANGED.equals(event.getProperty())) { - fPart.rootModeChanged(((Integer)event.getNewValue()).intValue()); - Object oldInput= null; - Object newInput= null; - if (fPart.showProjects()) { - oldInput= fPart.getWorkingSetModel(); - newInput= JavaScriptCore.create(ResourcesPlugin.getWorkspace().getRoot()); - } else if (fPart.showWorkingSets()) { - oldInput= JavaScriptCore.create(ResourcesPlugin.getWorkspace().getRoot()); - newInput= fPart.getWorkingSetModel(); - } - if (oldInput != null && newInput != null) { - Frame frame; - for (int i= 0; (frame= fFrameList.getFrame(i)) != null; i++) { - if (frame instanceof TreeFrame) { - TreeFrame treeFrame= (TreeFrame)frame; - if (oldInput.equals(treeFrame.getInput())) - treeFrame.setInput(newInput); - } - } - } - } else { - IWorkingSet workingSet= (IWorkingSet) event.getNewValue(); - - String workingSetLabel= null; - if (workingSet != null) - workingSetLabel= workingSet.getLabel(); - fPart.setWorkingSetLabel(workingSetLabel); - fPart.updateTitle(); - - String property= event.getProperty(); - if (IWorkingSetManager.CHANGE_WORKING_SET_CONTENT_CHANGE.equals(property)) { - TreeViewer viewer= fPart.getTreeViewer(); - viewer.getControl().setRedraw(false); - viewer.refresh(); - viewer.getControl().setRedraw(true); - } - } - } - - private boolean doubleClickGoesInto() { - return PreferenceConstants.DOUBLE_CLICK_GOES_INTO.equals(PreferenceConstants.getPreferenceStore().getString(PreferenceConstants.DOUBLE_CLICK)); - } - - public FrameAction getUpAction() { - return fUpAction; - } - - public FrameAction getBackAction() { - return fBackAction; - } - public FrameAction getForwardAction() { - return fForwardAction; - } - - public ViewActionGroup getWorkingSetActionGroup() { - return fViewActionGroup; - } - - public CustomFiltersActionGroup getCustomFilterActionGroup() { - return fCustomFiltersActionGroup; - } - - public FrameList getFrameList() { - return fFrameList; - } -} |