Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 37998 Details for
Bug 135565
[CommonNavigator][Java] Patch for various issues in the Java extension
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
The CN Extension update
org.eclipse.jdt.ui_CN_Update.txt (text/plain), 29.25 KB, created by
Michael D. Elder
on 2006-04-07 11:06:36 EDT
(
hide
)
Description:
The CN Extension update
Filename:
MIME Type:
Creator:
Michael D. Elder
Created:
2006-04-07 11:06:36 EDT
Size:
29.25 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.ui >Index: ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorContentProvider.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorContentProvider.java,v >retrieving revision 1.2 >diff -u -r1.2 JavaNavigatorContentProvider.java >--- ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorContentProvider.java 28 Mar 2006 16:53:23 -0000 1.2 >+++ ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorContentProvider.java 7 Apr 2006 14:59:39 -0000 >@@ -11,10 +11,14 @@ > package org.eclipse.jdt.internal.ui.navigator; > > import java.util.Arrays; >-import java.util.HashSet; > import java.util.Iterator; >+import java.util.LinkedHashSet; > import java.util.Set; > >+import org.eclipse.core.runtime.CoreException; >+ >+import org.eclipse.core.resources.IContainer; >+import org.eclipse.core.resources.IProject; > import org.eclipse.core.resources.IResource; > import org.eclipse.core.resources.IWorkspaceRoot; > >@@ -36,6 +40,8 @@ > > import org.eclipse.jdt.ui.PreferenceConstants; > >+import org.eclipse.jdt.internal.ui.JavaPlugin; >+import org.eclipse.jdt.internal.ui.model.JavaSynchronizationContentProvider; > import org.eclipse.jdt.internal.ui.navigator.IExtensionStateConstants.Values; > import org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider; > >@@ -55,14 +61,11 @@ > private IExtensionStateModel fStateModel; > > public void init(ICommonContentExtensionSite commonContentExtensionSite) { >- IExtensionStateModel stateModel= commonContentExtensionSite.getExtensionStateModel(); >- IMemento memento= commonContentExtensionSite.getMemento(); >- >- fStateModel = stateModel; >- // fManager = new WorkingSetModelManager(fStateModel, this); >- // expose the manager for the action provider >- // fStateModel.setProperty(WorkingSetModelManager.INSTANCE_KEY, >- // fManager); >+ IExtensionStateModel stateModel = commonContentExtensionSite >+ .getExtensionStateModel(); >+ IMemento memento = commonContentExtensionSite.getMemento(); >+ >+ fStateModel = stateModel; > restoreState(memento); > fStateModel.addPropertyChangeListener(new IPropertyChangeListener() { > public void propertyChange(PropertyChangeEvent event) { >@@ -133,40 +136,95 @@ > > public PipelinedShapeModification interceptAdd( > PipelinedShapeModification addModification) { >- // TODO Auto-generated method stub >- return null; >+ convertToJavaElements(addModification); >+ return addModification; > } > > public PipelinedShapeModification interceptRemove( > PipelinedShapeModification removeModification) { >- // TODO Auto-generated method stub >+ convertToJavaElements(removeModification.getChildren()); >+ return removeModification; >+ } >+ >+ /** >+ * Returns the java element associated with the project. >+ * >+ * Reused from {@link JavaSynchronizationContentProvider}. >+ * >+ * @param project >+ * the project >+ * @return the associated java element, or <code>null</code> if the >+ * project is not a java project >+ */ >+ private IJavaElement asJavaProject(final IProject project) { >+ try { >+ if (project.getDescription().hasNature(JavaCore.NATURE_ID)) >+ return JavaCore.create(project); >+ } catch (CoreException exception) { >+ JavaPlugin.log(exception); >+ } > return null; > } > >- public boolean interceptRefresh(PipelinedViewerUpdate refreshSynchronization) { >- IJavaElement javaElement; >- Set interceptedElements = new HashSet(); >- for (Iterator iter = refreshSynchronization.getRefreshTargets().iterator(); iter.hasNext();) { >- Object element = iter.next(); >- if (element instanceof IResource) { >- if ((javaElement = JavaCore.create((IResource) element)) != null && javaElement.exists()) { >- iter.remove(); >- interceptedElements.add(javaElement); >- } >+ /** >+ * Converts the shape modification to use Java elements. >+ * >+ * >+ * @param modification >+ * the shape modification to convert >+ */ >+ private boolean convertToJavaElements( >+ PipelinedShapeModification modification) { >+ Object parent = modification.getParent(); >+ if (parent instanceof IContainer) { >+ IJavaElement element = JavaCore.create((IContainer) parent); >+ if (element != null && element.exists()) { >+ // we don't convert the root >+ if( !(element instanceof IJavaModel)) >+ modification.setParent(element); >+ return convertToJavaElements(modification.getChildren()); >+ > } > } >- if (interceptedElements.size() > 0) { >- refreshSynchronization.getRefreshTargets().addAll( >- interceptedElements); >+ return false; >+ } >+ >+ /** >+ * Converts the shape modification to use Java elements. >+ * >+ * >+ * @param currentChildren >+ * The set of current children that would be contributed or refreshed in the viewer. >+ */ >+ private boolean convertToJavaElements(Set currentChildren) { >+ >+ LinkedHashSet convertedChildren = new LinkedHashSet(); >+ IJavaElement newChild; >+ for (Iterator childrenItr = currentChildren.iterator(); childrenItr >+ .hasNext();) { >+ Object child = childrenItr.next(); >+ if (child instanceof IResource) >+ if ((newChild = JavaCore.create((IResource) child)) != null >+ && newChild.exists()) { >+ childrenItr.remove(); >+ convertedChildren.add(newChild); >+ } >+ } >+ if (!convertedChildren.isEmpty()) { >+ currentChildren.addAll(convertedChildren); > return true; > } > return false; > > } > >- public boolean interceptUpdate(PipelinedViewerUpdate updateSynchronization) { >- // TODO Auto-generated method stub >- return false; >+ public boolean interceptRefresh(PipelinedViewerUpdate refreshSynchronization) { >+ return convertToJavaElements(refreshSynchronization.getRefreshTargets()); >+ >+ } >+ >+ public boolean interceptUpdate(PipelinedViewerUpdate updateSynchronization) { >+ return convertToJavaElements(updateSynchronization.getRefreshTargets()); > } > > protected void postAdd(final Object parent, final Object element) { >Index: ui/org/eclipse/jdt/internal/ui/navigator/PackageExplorerActionProvider.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/navigator/PackageExplorerActionProvider.java,v >retrieving revision 1.4 >diff -u -r1.4 PackageExplorerActionProvider.java >--- ui/org/eclipse/jdt/internal/ui/navigator/PackageExplorerActionProvider.java 28 Mar 2006 16:53:23 -0000 1.4 >+++ ui/org/eclipse/jdt/internal/ui/navigator/PackageExplorerActionProvider.java 7 Apr 2006 14:59:39 -0000 >@@ -1,26 +1,21 @@ >-/******************************************************************************* >- * Copyright (c) 2003, 2006 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 >+/*************************************************************************************************** >+ * Copyright (c) 2003, 2006 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 >- *******************************************************************************/ >+ * >+ * Contributors: IBM Corporation - initial API and implementation >+ **************************************************************************************************/ > package org.eclipse.jdt.internal.ui.navigator; > >-import org.eclipse.jface.action.IAction; > import org.eclipse.jface.action.IMenuManager; > import org.eclipse.jface.preference.IPreferenceStore; >-import org.eclipse.jface.viewers.TreeViewer; > > import org.eclipse.ui.IActionBars; > import org.eclipse.ui.IMemento; > import org.eclipse.ui.IViewPart; > import org.eclipse.ui.actions.ActionContext; > import org.eclipse.ui.navigator.CommonActionProvider; >-import org.eclipse.ui.navigator.ICommonActionConstants; > import org.eclipse.ui.navigator.ICommonActionExtensionSite; > import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite; > import org.eclipse.ui.navigator.IExtensionStateModel; >@@ -28,113 +23,102 @@ > import org.eclipse.jdt.ui.actions.CCPActionGroup; > import org.eclipse.jdt.ui.actions.GenerateActionGroup; > import org.eclipse.jdt.ui.actions.JavaSearchActionGroup; >-import org.eclipse.jdt.ui.actions.OpenAction; >-import org.eclipse.jdt.ui.actions.OpenEditorActionGroup; >+import org.eclipse.jdt.ui.actions.OpenViewActionGroup; > import org.eclipse.jdt.ui.actions.RefactorActionGroup; > > import org.eclipse.jdt.internal.ui.JavaPlugin; > import org.eclipse.jdt.internal.ui.navigator.IExtensionStateConstants.Values; > import org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage.GenerateBuildPathActionGroup; > >-public class PackageExplorerActionProvider extends CommonActionProvider { >+public class PackageExplorerActionProvider extends CommonActionProvider { > > private static final int HIERARCHICAL_LAYOUT = 0x1; > > private static final int FLAT_LAYOUT = 0x2; > > private static final String TAG_LAYOUT = "layout"; //$NON-NLS-1$ >- >+ > private CommonLayoutActionGroup fLayoutActionGroup; > > private boolean fHasFilledViewMenu = false; > > private IExtensionStateModel fStateModel; > >- private IAction fOpenAndExpand; >- >- private OpenEditorActionGroup fOpenGroup; >+ private OpenViewActionGroup fOpenViewGroup; > > private CCPActionGroup fCCPGroup; >- >- private RefactorActionGroup fRefactorGroup; >- >+ >+ private RefactorActionGroup fRefactorGroup; >+ > private JavaSearchActionGroup fSearchGroup; >- >+ > private GenerateBuildPathActionGroup fBuildPathGroup; >- >+ > private GenerateActionGroup fGenerateGroup; >- >+ > private boolean fInViewPart = false; > > public void fillActionBars(IActionBars actionBars) { >- if (!fHasFilledViewMenu) { >+ if (!fHasFilledViewMenu) { > fLayoutActionGroup.fillActionBars(actionBars); > fHasFilledViewMenu = true; > } >- if(fInViewPart) { >- fOpenGroup.fillActionBars(actionBars); >- fCCPGroup.fillActionBars(actionBars); >+ if (fInViewPart) { >+ fOpenViewGroup.fillActionBars(actionBars); >+ fCCPGroup.fillActionBars(actionBars); > fBuildPathGroup.fillActionBars(actionBars); >- fGenerateGroup.fillActionBars(actionBars); >+ fGenerateGroup.fillActionBars(actionBars); > fRefactorGroup.fillActionBars(actionBars); > fRefactorGroup.retargetFileMenuActions(actionBars); > fSearchGroup.fillActionBars(actionBars); >- >- if(fOpenAndExpand == null && fOpenGroup.getOpenAction().isEnabled()) // TODO: is not updated! >- actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, fOpenGroup.getOpenAction()); >- else if(fOpenAndExpand.isEnabled()) >- actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, fOpenAndExpand); > } > > } > > public void fillContextMenu(IMenuManager menu) { > >- if(fInViewPart) { >- fCCPGroup.fillContextMenu(menu); >+ if (fInViewPart) { >+ fOpenViewGroup.fillContextMenu(menu); >+ fCCPGroup.fillContextMenu(menu); > fBuildPathGroup.fillContextMenu(menu); > fGenerateGroup.fillContextMenu(menu); >- fRefactorGroup.fillContextMenu(menu); >+ fRefactorGroup.fillContextMenu(menu); > fSearchGroup.fillContextMenu(menu); > } > } >- >+ > public void init(ICommonActionExtensionSite site) { > > ICommonViewerWorkbenchSite workbenchSite = null; > if (site.getViewSite() instanceof ICommonViewerWorkbenchSite) > workbenchSite = (ICommonViewerWorkbenchSite) site.getViewSite(); > >- fStateModel = site.getExtensionStateModel(); >+ fStateModel = site.getExtensionStateModel(); > >- fLayoutActionGroup = new CommonLayoutActionGroup(site >- .getStructuredViewer(), fStateModel); >+ fLayoutActionGroup = new CommonLayoutActionGroup(site.getStructuredViewer(), fStateModel); > >- if (workbenchSite != null) { >- if (workbenchSite.getPart() != null >- && workbenchSite.getPart() instanceof IViewPart) { >+ if (workbenchSite != null) { >+ if (workbenchSite.getPart() != null && workbenchSite.getPart() instanceof IViewPart) { > IViewPart viewPart = (IViewPart) workbenchSite.getPart(); > >- fOpenGroup = new OpenEditorActionGroup(viewPart); >+ fOpenViewGroup = new OpenViewActionGroup(viewPart, site.getStructuredViewer(), false); > fCCPGroup = new CCPActionGroup(viewPart); >- fRefactorGroup = new RefactorActionGroup(viewPart); >+ fRefactorGroup = new RefactorActionGroup(viewPart); > fGenerateGroup = new GenerateActionGroup(viewPart); > fSearchGroup = new JavaSearchActionGroup(viewPart); > fBuildPathGroup = new GenerateBuildPathActionGroup(viewPart); >- >- if(site.getStructuredViewer() instanceof TreeViewer) >- fOpenAndExpand = new OpenAndExpand(workbenchSite.getSite(), (OpenAction) fOpenGroup.getOpenAction(), (TreeViewer)site.getStructuredViewer()); >+ > fInViewPart = true; > } > > } > > } >- >- public void setContext(ActionContext context) { >+ >+ public void setContext(ActionContext context) { > super.setContext(context); >- if(fInViewPart) { >- fOpenGroup.setContext(context); >+ if (fInViewPart) { >+ fOpenViewGroup.setContext(context); > fCCPGroup.setContext(context); > fRefactorGroup.setContext(context); > fGenerateGroup.setContext(context); >@@ -156,8 +140,7 @@ > > // If no memento try an restore from preference store > if (state == null) { >- IPreferenceStore store = JavaPlugin.getDefault() >- .getPreferenceStore(); >+ IPreferenceStore store = JavaPlugin.getDefault().getPreferenceStore(); > state = new Integer(store.getInt(TAG_LAYOUT)); > } > >@@ -166,9 +149,18 @@ > else if (state.intValue() == HIERARCHICAL_LAYOUT) > isCurrentLayoutFlat = false; > >- fStateModel.setBooleanProperty(Values.IS_LAYOUT_FLAT, >- isCurrentLayoutFlat); >+ fStateModel.setBooleanProperty(Values.IS_LAYOUT_FLAT, isCurrentLayoutFlat); > fLayoutActionGroup.setFlatLayout(isCurrentLayoutFlat); > } > >+ public void saveState(IMemento aMemento) { >+ super.saveState(aMemento); >+ IPreferenceStore store = JavaPlugin.getDefault().getPreferenceStore(); >+ if (fStateModel.getBooleanProperty(Values.IS_LAYOUT_FLAT)) >+ store.setValue(TAG_LAYOUT, FLAT_LAYOUT); >+ else >+ store.setValue(TAG_LAYOUT, HIERARCHICAL_LAYOUT); >+ >+ } >+ > } >Index: ui/org/eclipse/jdt/ui/actions/OpenViewActionGroup.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/OpenViewActionGroup.java,v >retrieving revision 1.29 >diff -u -r1.29 OpenViewActionGroup.java >--- ui/org/eclipse/jdt/ui/actions/OpenViewActionGroup.java 28 Mar 2006 16:53:23 -0000 1.29 >+++ ui/org/eclipse/jdt/ui/actions/OpenViewActionGroup.java 7 Apr 2006 14:59:39 -0000 >@@ -43,6 +43,7 @@ > public class OpenViewActionGroup extends ActionGroup { > > private boolean fEditorIsOwner; >+ private final boolean fShowProperties; > private boolean fIsTypeHiararchyViewerOwner; > private boolean fIsCallHiararchyViewerOwner; > >@@ -61,8 +62,8 @@ > * > * @param page the page that owns this action group > */ >- public OpenViewActionGroup(Page page) { >- createSiteActions(page.getSite(), null); >+ public OpenViewActionGroup(Page page) { >+ this(page.getSite(), null); > } > > /** >@@ -77,6 +78,7 @@ > * @since 3.2 > */ > public OpenViewActionGroup(Page page, ISelectionProvider selectionProvider) { >+ fShowProperties = true; > createSiteActions(page.getSite(), selectionProvider); > } > >@@ -103,6 +105,28 @@ > * @since 3.2 > */ > public OpenViewActionGroup(IViewPart part, ISelectionProvider selectionProvider) { >+ this(part, selectionProvider, true); >+ } >+ >+ >+ /** >+ * Creates a new <code>OpenActionGroup</code>. The group requires >+ * that the selection provided by the given selection provider is of type >+ * {@link IStructuredSelection}. >+ * >+ * <p> >+ * This constructor is for internal use only. Clients may not call this constructor. >+ * </p> >+ * >+ * @param part the view part that owns this action group >+ * @param selectionProvider the selection provider used instead of the >+ * page selection provider. >+ * @param showProperties True indicates that the properties dialog action should be shown >+ * >+ * @since 3.2 >+ */ >+ public OpenViewActionGroup(IViewPart part, ISelectionProvider selectionProvider, boolean showProperties) { >+ fShowProperties = showProperties; > createSiteActions(part.getSite(), selectionProvider); > // we do a name check here to avoid class loading. > String partName= part.getClass().getName(); >@@ -122,6 +146,7 @@ > * @since 3.2 > */ > public OpenViewActionGroup(IWorkbenchSite site, ISelectionProvider selectionProvider) { >+ fShowProperties = true; > createSiteActions(site, selectionProvider); > } > >@@ -131,6 +156,7 @@ > */ > public OpenViewActionGroup(JavaEditor part) { > fEditorIsOwner= true; >+ fShowProperties = true; > > fOpenSuperImplementation= new OpenSuperImplementationAction(part); > fOpenSuperImplementation.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_SUPER_IMPLEMENTATION); >@@ -170,8 +196,10 @@ > > ISelectionProvider provider= specialProvider != null ? specialProvider : site.getSelectionProvider(); > >- fOpenPropertiesDialog= new PropertyDialogAction(site, provider); >- fOpenPropertiesDialog.setActionDefinitionId(IWorkbenchActionDefinitionIds.PROPERTIES); >+ if(fShowProperties) { >+ fOpenPropertiesDialog= new PropertyDialogAction(site, provider); >+ fOpenPropertiesDialog.setActionDefinitionId(IWorkbenchActionDefinitionIds.PROPERTIES); >+ } > > initialize(provider); > } >@@ -184,11 +212,13 @@ > fOpenTypeHierarchy.update(selection); > fOpenCallHierarchy.update(selection); > if (!fEditorIsOwner) { >- if (selection instanceof IStructuredSelection) { >- IStructuredSelection ss= (IStructuredSelection)selection; >- fOpenPropertiesDialog.selectionChanged(ss); >- } else { >- fOpenPropertiesDialog.selectionChanged(selection); >+ if(fShowProperties) { >+ if (selection instanceof IStructuredSelection) { >+ IStructuredSelection ss= (IStructuredSelection)selection; >+ fOpenPropertiesDialog.selectionChanged(ss); >+ } else { >+ fOpenPropertiesDialog.selectionChanged(selection); >+ } > } > provider.addSelectionChangedListener(fOpenSuperImplementation); > provider.addSelectionChangedListener(fOpenExternalJavadoc); >@@ -217,7 +247,7 @@ > appendToGroup(menu, fOpenCallHierarchy); > appendToGroup(menu, fOpenSuperImplementation); > IStructuredSelection selection= getStructuredSelection(); >- if (fOpenPropertiesDialog != null && fOpenPropertiesDialog.isEnabled() && selection != null &&fOpenPropertiesDialog.isApplicableForSelection(selection)) >+ if (fShowProperties && fOpenPropertiesDialog != null && fOpenPropertiesDialog.isEnabled() && selection != null &&fOpenPropertiesDialog.isApplicableForSelection(selection)) > menu.appendToGroup(IContextMenuConstants.GROUP_PROPERTIES, fOpenPropertiesDialog); > } > >@@ -238,7 +268,7 @@ > actionBars.setGlobalActionHandler(JdtActionConstants.OPEN_TYPE_HIERARCHY, fOpenTypeHierarchy); > actionBars.setGlobalActionHandler(JdtActionConstants.OPEN_CALL_HIERARCHY, fOpenCallHierarchy); > >- if (!fEditorIsOwner) >+ if (!fEditorIsOwner && fShowProperties) > actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), fOpenPropertiesDialog); > } > >Index: plugin.xml >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.ui/plugin.xml,v >retrieving revision 1.660 >diff -u -r1.660 plugin.xml >--- plugin.xml 7 Apr 2006 13:15:30 -0000 1.660 >+++ plugin.xml 7 Apr 2006 14:59:39 -0000 >@@ -5088,6 +5088,7 @@ > </navigatorContent> > </extension> > >+ > <!-- CommonNavigator --> > > <extension >@@ -5100,8 +5101,8 @@ > </extension> > > <extension >- point="org.eclipse.ui.navigator.navigatorContent"> >- <navigatorContent >+ point="org.eclipse.ui.navigator.navigatorContent"> type="new" >+ <navigatorContent wizardId="org.eclipse.jdt.ui.wizards.JavaProjectWizard"/> <navigatorContent > activeByDefault="true" > contentProvider="org.eclipse.jdt.internal.ui.navigator.JavaNavigatorContentProvider" > icon="$nl$/icons/full/obj16/java_model.gif" >@@ -5164,9 +5165,7 @@ > </possibleChildren> > <actionProvider > class="org.eclipse.jdt.internal.ui.navigator.PackageExplorerActionProvider" >- overrides="org.eclipse.ui.navigator.resources.actions.RefactorActions"> >- <enablement> >- </enablement> >+ overrides="org.eclipse.ui.navigator.resources.actions.RefactorActions"> > </actionProvider> > <override > policy="InvokeAlwaysRegardlessOfSuppressedExt" >@@ -5174,7 +5173,109 @@ > <commonSorter > class="org.eclipse.jdt.ui.JavaElementSorter" > id="org.eclipse.jdt.ui.javaElementSorter"/> >+ <actionProvider >+ class="org.eclipse.jdt.internal.ui.navigator.PackageExplorerOpenActionProvider" >+ id="org.eclipse.jdt.internal.ui.navigator.PackageExplorerOpenActionProvider" >+ overrides="org.eclipse.ui.navigator.resources.OpenActions"> >+ </actionProvider> > </navigatorContent> >+ <commonWizard >+ type="new" >+ wizardId="org.eclipse.jdt.ui.wizards.NewPackageCreationWizard"> >+ <enablement> >+ <or> >+ <instanceof value="org.eclipse.jdt.core.IPackageFragment"/> >+ <instanceof value="org.eclipse.jdt.core.IPackageFragmentRoot"/> >+ <instanceof value="org.eclipse.jdt.core.ICompilationUnit"/> >+ <adapt type="org.eclipse.core.resources.IProject"> >+ <test >+ property="org.eclipse.core.resources.projectNature" >+ value="org.eclipse.jdt.core.javanature"/> >+ </adapt> >+ </or> >+ </enablement> >+ </commonWizard> >+ <commonWizard >+ type="new" >+ wizardId="org.eclipse.jdt.ui.wizards.NewClassCreationWizard"> >+ <enablement> >+ <or> >+ <instanceof value="org.eclipse.jdt.core.IPackageFragment"/> >+ <instanceof value="org.eclipse.jdt.core.IPackageFragmentRoot"/> >+ <instanceof value="org.eclipse.jdt.core.ICompilationUnit"/> >+ <adapt type="org.eclipse.core.resources.IProject"> >+ <test >+ property="org.eclipse.core.resources.projectNature" >+ value="org.eclipse.jdt.core.javanature"/> >+ </adapt> >+ </or> >+ </enablement> >+ </commonWizard> >+ >+ <commonWizard >+ type="new" >+ wizardId="org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard"> >+ <enablement> >+ <or> >+ <instanceof value="org.eclipse.jdt.core.IPackageFragment"/> >+ <instanceof value="org.eclipse.jdt.core.IPackageFragmentRoot"/> >+ <instanceof value="org.eclipse.jdt.core.ICompilationUnit"/> >+ <adapt type="org.eclipse.core.resources.IProject"> >+ <test >+ property="org.eclipse.core.resources.projectNature" >+ value="org.eclipse.jdt.core.javanature"/> >+ </adapt> >+ </or> >+ </enablement> >+ </commonWizard> >+ <commonWizard >+ type="new" >+ wizardId="org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard"> >+ <enablement> >+ <or> >+ <instanceof value="org.eclipse.jdt.core.IPackageFragment"/> >+ <instanceof value="org.eclipse.jdt.core.IPackageFragmentRoot"/> >+ <instanceof value="org.eclipse.jdt.core.ICompilationUnit"/> >+ <adapt type="org.eclipse.core.resources.IProject"> >+ <test >+ property="org.eclipse.core.resources.projectNature" >+ value="org.eclipse.jdt.core.javanature"/> >+ </adapt> >+ </or> >+ </enablement> >+ </commonWizard> >+ >+ <commonWizard >+ type="new" >+ wizardId="org.eclipse.jdt.ui.wizards.NewEnumCreationWizard"> >+ <enablement> >+ <or> >+ <instanceof value="org.eclipse.jdt.core.IPackageFragment"/> >+ <instanceof value="org.eclipse.jdt.core.IPackageFragmentRoot"/> >+ <instanceof value="org.eclipse.jdt.core.ICompilationUnit"/> >+ <adapt type="org.eclipse.core.resources.IProject"> >+ <test >+ property="org.eclipse.core.resources.projectNature" >+ value="org.eclipse.jdt.core.javanature"/> >+ </adapt> >+ </or> >+ </enablement> >+ </commonWizard> >+ <commonWizard >+ type="new" >+ wizardId="org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard"> >+ <enablement> >+ <or> >+ <instanceof value="org.eclipse.jdt.core.IPackageFragmentRoot"/> >+ <adapt type="org.eclipse.core.resources.IProject"> >+ <test >+ property="org.eclipse.core.resources.projectNature" >+ value="org.eclipse.jdt.core.javanature"/> >+ </adapt> >+ </or> >+ </enablement> >+ </commonWizard> >+ > </extension> > > </plugin> >Index: ui/org/eclipse/jdt/internal/ui/navigator/PackageExplorerOpenActionProvider.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/ui/navigator/PackageExplorerOpenActionProvider.java >diff -N ui/org/eclipse/jdt/internal/ui/navigator/PackageExplorerOpenActionProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/ui/navigator/PackageExplorerOpenActionProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,83 @@ >+/******************************************************************************* >+ * Copyright (c) 2003, 2004 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.jdt.internal.ui.navigator; >+ >+import org.eclipse.jface.action.IAction; >+import org.eclipse.jface.action.IMenuManager; >+import org.eclipse.jface.viewers.TreeViewer; >+ >+import org.eclipse.ui.IActionBars; >+import org.eclipse.ui.IViewPart; >+import org.eclipse.ui.actions.ActionContext; >+import org.eclipse.ui.navigator.CommonActionProvider; >+import org.eclipse.ui.navigator.ICommonActionConstants; >+import org.eclipse.ui.navigator.ICommonActionExtensionSite; >+import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite; >+ >+import org.eclipse.jdt.ui.actions.OpenAction; >+import org.eclipse.jdt.ui.actions.OpenEditorActionGroup; >+ >+public class PackageExplorerOpenActionProvider extends CommonActionProvider { >+ >+ >+ private IAction fOpenAndExpand; >+ private OpenEditorActionGroup fOpenGroup; >+ >+ private boolean fInViewPart = false; >+ >+ public void fillActionBars(IActionBars actionBars) { >+ if(fInViewPart) { >+ fOpenGroup.fillActionBars(actionBars); >+ >+ if(fOpenAndExpand == null && fOpenGroup.getOpenAction().isEnabled()) // TODO: is not updated! >+ actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, fOpenGroup.getOpenAction()); >+ else if(fOpenAndExpand.isEnabled()) >+ actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, fOpenAndExpand); >+ } >+ >+ } >+ >+ public void fillContextMenu(IMenuManager menu) { >+ >+ if (fInViewPart) { >+ if (fOpenGroup.getOpenAction().isEnabled()) { >+ fOpenGroup.fillContextMenu(menu); >+ } >+ } >+ } >+ >+ public void init(ICommonActionExtensionSite site) { >+ >+ ICommonViewerWorkbenchSite workbenchSite = null; >+ if (site.getViewSite() instanceof ICommonViewerWorkbenchSite) >+ workbenchSite = (ICommonViewerWorkbenchSite) site.getViewSite(); >+ >+ if (workbenchSite != null) { >+ if (workbenchSite.getPart() != null && workbenchSite.getPart() instanceof IViewPart) { >+ IViewPart viewPart = (IViewPart) workbenchSite.getPart(); >+ >+ fOpenGroup = new OpenEditorActionGroup(viewPart); >+ >+ if (site.getStructuredViewer() instanceof TreeViewer) >+ fOpenAndExpand = new OpenAndExpand(workbenchSite.getSite(), (OpenAction) fOpenGroup.getOpenAction(), (TreeViewer) site.getStructuredViewer()); >+ fInViewPart = true; >+ } >+ } >+ } >+ >+ public void setContext(ActionContext context) { >+ super.setContext(context); >+ if (fInViewPart) { >+ fOpenGroup.setContext(context); >+ } >+ } >+ >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 135565
: 37998