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 58808 Details for
Bug 173302
[PropertiesDialog] allow Project References property page to be disabled
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
CDT usage as IEnablementVetoHolder implementor
EnablementVetoHolder_CDT.txt (text/plain), 4.44 KB, created by
Andrew Ferguson
on 2007-02-12 18:11:50 EST
(
hide
)
Description:
CDT usage as IEnablementVetoHolder implementor
Filename:
MIME Type:
Creator:
Andrew Ferguson
Created:
2007-02-12 18:11:50 EST
Size:
4.44 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.cdt.ui >Index: src/org/eclipse/cdt/internal/ui/CProjectAdapterFactory.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CProjectAdapterFactory.java,v >retrieving revision 1.1 >diff -u -r1.1 CProjectAdapterFactory.java >--- src/org/eclipse/cdt/internal/ui/CProjectAdapterFactory.java 18 Jan 2007 13:01:51 -0000 1.1 >+++ src/org/eclipse/cdt/internal/ui/CProjectAdapterFactory.java 12 Feb 2007 23:01:16 -0000 >@@ -11,6 +11,7 @@ > > package org.eclipse.cdt.internal.ui; > >+import org.eclipse.core.expressions.IEnablementVetoHolder; > import org.eclipse.core.resources.IProject; > import org.eclipse.core.runtime.IAdapterFactory; > >@@ -23,8 +24,18 @@ > */ > public class CProjectAdapterFactory implements IAdapterFactory { > >- private static final Class[] ADAPTERS = { IProject.class }; >+ private static final Class[] ADAPTERS = { IEnablementVetoHolder.class, IProject.class }; > >+ private final IEnablementVetoHolder vetoHolder; >+ >+ public CProjectAdapterFactory() { >+ vetoHolder = new IEnablementVetoHolder() { >+ public boolean vetoes(String id) { >+ return "org.eclipse.ui.propertypages.project.reference".equals(id); //$NON-NLS-1$ >+ } >+ }; >+ } >+ > /* > * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class) > */ >@@ -32,6 +43,9 @@ > if (IProject.class.equals(adapterType)) { > return ((ICProject)adaptableObject).getProject(); > } >+ if(IEnablementVetoHolder.class.equals(adapterType)) { >+ return vetoHolder; >+ } > return null; > } > >@@ -41,5 +55,4 @@ > public Class[] getAdapterList() { > return ADAPTERS; > } >- > } >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.ui/plugin.xml,v >retrieving revision 1.233 >diff -u -r1.233 plugin.xml >--- plugin.xml 6 Feb 2007 21:57:32 -0000 1.233 >+++ plugin.xml 12 Feb 2007 23:01:16 -0000 >@@ -42,6 +42,7 @@ > class="org.eclipse.cdt.internal.ui.CProjectAdapterFactory" > adaptableType="org.eclipse.cdt.core.model.ICProject"> > <adapter type="org.eclipse.core.resources.IProject"/> >+ <adapter type="org.eclipse.core.expressions.IEnablementVetoHolder"/> > </factory> > </extension> > >@@ -1640,6 +1641,9 @@ > <instanceof value="org.eclipse.cdt.ui.CElementGrouping"/> > </or> > </triggerPoints> >+ <override >+ policy="InvokeAlwaysRegardlessOfSuppressedExt" >+ suppressedExtensionId="org.eclipse.ui.navigator.resourceContent"/> > <possibleChildren> > <or> > <instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/> >@@ -1652,9 +1656,27 @@ > <instanceof value="org.eclipse.cdt.ui.CElementGrouping"/> > </or> > </possibleChildren> >- <override >- policy="InvokeAlwaysRegardlessOfSuppressedExt" >- suppressedExtensionId="org.eclipse.ui.navigator.resourceContent"/> >+ Mikhail has pointed out that the previous patch is unsuitable, as it relies on persitent properties on the project, and these are not preserved as part of the project when shared via source control. >+ >+This second patch introduces a new PropertyTester acting on any type (java.lang.Object) testing a property "org.eclipse.core.expressions.notVetoed" >+ >+If the object being tested can be Adapted to an IEnablementVetoHolder, then it is queried to see if it vetoes the enablement of the host object, otherwise it has no effect. >+ >+This would allow us to have the Project References enablement check to see if the object its acting upon vetoes its enablement: >+ >+<enabledWhen> >+ <and> >+ <test >+ args="org.eclipse.ui.propertypages.project.reference" >+ property="org.eclipse.core.expressions.notVetoed"> >+ </test> >+ <adapt >+ type="org.eclipse.core.resources.IProject"> >+ </adapt> >+ </and> >+</enabledWhen> >+ >+Note that the test operates on the object before it is adapted to an IProject - this would allow CDT a say over what pages are displayed in its ICProject properties pages, without taking control over what is displayed for IProject objects. > <commonSorter > class="org.eclipse.cdt.ui.CElementSorter" > id="org.eclipse.cdt.ui.commonSorter"/>
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 173302
:
58457
|
58807
|
58808
|
58810