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 221013 Details for
Bug 389036
Update PHP facet version accordingly to project PHP version
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]
Additional patch for sync the php version with facets version
org.eclipse.pdt.patch (text/plain), 12.72 KB, created by
Martin Eisengardt
on 2012-09-13 03:38:12 EDT
(
hide
)
Description:
Additional patch for sync the php version with facets version
Filename:
MIME Type:
Creator:
Martin Eisengardt
Created:
2012-09-13 03:38:12 EDT
Size:
12.72 KB
patch
obsolete
>diff --git a/plugins/org.eclipse.php.core/plugin.xml b/plugins/org.eclipse.php.core/plugin.xml >index c69e14b..7f62bc5 100644 >--- a/plugins/org.eclipse.php.core/plugin.xml >+++ b/plugins/org.eclipse.php.core/plugin.xml >@@ -361,19 +361,31 @@ > </project-facet-version> > > <action facet="php.core.component" version="1" type="install"> >- <delegate class="org.eclipse.php.internal.core.facet.DummyActionDelegate" /> >+ <delegate class="org.eclipse.php.internal.core.facet.InstallActionDelegate" /> > </action> > <action facet="php.component" version="4" type="install"> >- <delegate class="org.eclipse.php.internal.core.facet.DummyActionDelegate" /> >+ <delegate class="org.eclipse.php.internal.core.facet.InstallActionDelegate" /> > </action> > <action facet="php.component" version="5" type="install"> >- <delegate class="org.eclipse.php.internal.core.facet.DummyActionDelegate" /> >+ <delegate class="org.eclipse.php.internal.core.facet.InstallActionDelegate" /> > </action> > <action facet="php.component" version="5.3" type="install"> >- <delegate class="org.eclipse.php.internal.core.facet.DummyActionDelegate" /> >+ <delegate class="org.eclipse.php.internal.core.facet.InstallActionDelegate" /> > </action> > <action facet="php.component" version="5.4" type="install"> >- <delegate class="org.eclipse.php.internal.core.facet.DummyActionDelegate" /> >+ <delegate class="org.eclipse.php.internal.core.facet.InstallActionDelegate" /> >+ </action> >+ <action facet="php.component" version="4" type="version-change"> >+ <delegate class="org.eclipse.php.internal.core.facet.VersionChangeActionDelegate" /> >+ </action> >+ <action facet="php.component" version="5" type="version-change"> >+ <delegate class="org.eclipse.php.internal.core.facet.VersionChangeActionDelegate" /> >+ </action> >+ <action facet="php.component" version="5.3" type="version-change"> >+ <delegate class="org.eclipse.php.internal.core.facet.VersionChangeActionDelegate" /> >+ </action> >+ <action facet="php.component" version="5.4" type="version-change"> >+ <delegate class="org.eclipse.php.internal.core.facet.VersionChangeActionDelegate" /> > </action> > </extension> > </plugin> >diff --git a/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/InstallActionDelegate.java b/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/InstallActionDelegate.java >index 3ab7588..7342281 100644 >--- a/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/InstallActionDelegate.java >+++ b/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/InstallActionDelegate.java >@@ -6,7 +6,7 @@ > import org.eclipse.wst.common.project.facet.core.IDelegate; > import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; > >-public class DummyActionDelegate implements IDelegate { >+public class InstallActionDelegate implements IDelegate { > > public void execute(IProject arg0, IProjectFacetVersion arg1, Object arg2, > IProgressMonitor arg3) throws CoreException { >diff --git a/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/Messages.java b/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/Messages.java >new file mode 100644 >index 0000000..1b2a362 >--- /dev/null >+++ b/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/Messages.java >@@ -0,0 +1,15 @@ >+package org.eclipse.php.internal.core.facet; >+ >+import org.eclipse.osgi.util.NLS; >+ >+public class Messages extends NLS { >+ private static final String BUNDLE_NAME = "org.eclipse.php.internal.core.facet.messages"; //$NON-NLS-1$ >+ public static String PHPFacets_SettingVersionFailed; >+ static { >+ // initialize resource bundle >+ NLS.initializeMessages(BUNDLE_NAME, Messages.class); >+ } >+ >+ private Messages() { >+ } >+} >diff --git a/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/PHPFacets.java b/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/PHPFacets.java >index 0041ac0..c880ead 100644 >--- a/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/PHPFacets.java >+++ b/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/PHPFacets.java >@@ -4,8 +4,8 @@ > import java.util.Set; > > import org.eclipse.core.resources.IProject; >-import org.eclipse.core.runtime.CoreException; >-import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.*; >+import org.eclipse.php.internal.core.PHPCorePlugin; > import org.eclipse.php.internal.core.PHPVersion; > import org.eclipse.wst.common.project.facet.core.IFacetedProject; > import org.eclipse.wst.common.project.facet.core.IProjectFacet; >@@ -15,6 +15,39 @@ > public class PHPFacets { > > /** >+ * Synchronizes the php version for facets >+ * >+ * @param project >+ * @return the status of setting the version >+ */ >+ public static IStatus setFacetedVersion(IProject project, PHPVersion version) { >+ if (isFacetedProject(project)) { >+ try { >+ final IProjectFacetVersion facetedVersion = convertToFacetVersion(version); >+ final IProjectFacet phpFacet = ProjectFacetsManager >+ .getProjectFacet(PHPFacetsConstants.PHP_COMPONENT); >+ final IFacetedProject faceted = ProjectFacetsManager >+ .create(project); >+ if (!facetedVersion.equals(faceted >+ .getInstalledVersion(phpFacet))) { >+ final Set<IFacetedProject.Action> actions = new HashSet<IFacetedProject.Action>(); >+ actions.add(new IFacetedProject.Action( >+ IFacetedProject.Action.Type.VERSION_CHANGE, >+ facetedVersion, null)); >+ faceted.modify(actions, new NullProgressMonitor()); >+ } >+ } catch (CoreException ex) { >+ return new Status(IStatus.ERROR, PHPCorePlugin.ID, >+ Messages.PHPFacets_SettingVersionFailed, ex); >+ } catch (IllegalArgumentException ex) { >+ return new Status(IStatus.ERROR, PHPCorePlugin.ID, >+ Messages.PHPFacets_SettingVersionFailed, ex); >+ } >+ } >+ return Status.OK_STATUS; >+ } >+ >+ /** > * Returns true if the given project is a faceted project and the php core > * facet is installed > * >diff --git a/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/VersionChangeActionDelegate.java b/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/VersionChangeActionDelegate.java >new file mode 100644 >index 0000000..dfdc159 >--- /dev/null >+++ b/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/VersionChangeActionDelegate.java >@@ -0,0 +1,19 @@ >+package org.eclipse.php.internal.core.facet; >+ >+import org.eclipse.core.resources.IProject; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.wst.common.project.facet.core.IDelegate; >+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; >+ >+public class VersionChangeActionDelegate implements IDelegate { >+ >+ public void execute(IProject arg0, IProjectFacetVersion arg1, Object arg2, >+ IProgressMonitor arg3) throws CoreException { >+ // sync php version of the project >+ // check if there is any change to prevent endless loops >+ // (php options upgrade will invoke a version change and lead to this) >+ // TODO >+ } >+ >+} >diff --git a/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/messages.properties b/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/messages.properties >new file mode 100644 >index 0000000..00bf1e9 >--- /dev/null >+++ b/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/facet/messages.properties >@@ -0,0 +1 @@ >+PHPFacets_SettingVersionFailed=Changing the version failed because of unsatisfied constraints. Check your activated project facets. >diff --git a/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/OptionsConfigurationBlock.java b/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/OptionsConfigurationBlock.java >index 43644b8..dc14d48 100644 >--- a/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/OptionsConfigurationBlock.java >+++ b/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/OptionsConfigurationBlock.java >@@ -142,8 +142,8 @@ > fDisabledProjectSettings = new IdentityHashMap(); > for (int i = 0; i < allKeys.length; i++) { > Key curr = allKeys[i]; >- fDisabledProjectSettings.put(curr, curr.getStoredValue( >- fLookupOrder, false, fManager)); >+ fDisabledProjectSettings.put(curr, >+ curr.getStoredValue(fLookupOrder, false, fManager)); > } > } > >@@ -439,8 +439,8 @@ > for (int i = 0; i < fExpandedComposites.size(); i++) { > ExpandableComposite curr = (ExpandableComposite) fExpandedComposites > .get(i); >- settings.put(SETTINGS_EXPANDED + String.valueOf(i), curr >- .isExpanded()); >+ settings.put(SETTINGS_EXPANDED + String.valueOf(i), >+ curr.isExpanded()); > } > } > >@@ -615,6 +615,11 @@ > hasChanges = true; > } > >+ if (!this.checkChanges(currContext)) { >+ // check failed >+ return false; >+ } >+ > boolean doBuild = false; > if (needsBuild) { > String[] strings = getFullBuildDialogStrings(fProject == null); >@@ -657,6 +662,17 @@ > return true; > } > >+ /** >+ * Default implementation returns true. Override and return false if the >+ * changes are incompatible to the underlying project >+ * >+ * @param currContext >+ * @return false to deny the changes. >+ */ >+ protected boolean checkChanges(IScopeContext currContext) { >+ return true; >+ } >+ > protected void prepareForBuild() { > > // implement this method for any actions that need to be taken before >diff --git a/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PHPCoreOptionsConfigurationBlock.java b/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PHPCoreOptionsConfigurationBlock.java >index bfae90e..313d2e7 100644 >--- a/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PHPCoreOptionsConfigurationBlock.java >+++ b/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PHPCoreOptionsConfigurationBlock.java >@@ -12,7 +12,14 @@ > package org.eclipse.php.internal.ui.preferences; > > import org.eclipse.core.resources.IProject; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.preferences.IScopeContext; >+import org.eclipse.jface.dialogs.IDialogConstants; >+import org.eclipse.jface.dialogs.MessageDialog; > import org.eclipse.php.internal.core.PHPCorePlugin; >+import org.eclipse.php.internal.core.PHPVersion; >+import org.eclipse.php.internal.core.facet.PHPFacets; >+import org.eclipse.php.internal.core.preferences.CorePreferenceConstants.Keys; > import org.eclipse.php.internal.ui.preferences.util.Key; > import org.eclipse.swt.widgets.Composite; > import org.eclipse.swt.widgets.Control; >@@ -39,4 +46,21 @@ > return getKey(PHPCorePlugin.ID, key); > } > >+ protected boolean checkChanges(IScopeContext currContext) { >+ final Key versionKey = getPHPCoreKey(Keys.PHP_VERSION); >+ // synch the php facets version if needed >+ final String newVersion = versionKey.getStoredValue(currContext, >+ fManager); >+ final IStatus status = PHPFacets.setFacetedVersion(fProject, >+ PHPVersion.byAlias(newVersion)); >+ if (!status.isOK()) { >+ MessageDialog dialog = new MessageDialog( >+ getShell(), >+ PreferencesMessages.PHPCoreOptionsConfigurationBlock_SettingVersionFailed_Title, >+ null, status.getMessage(), MessageDialog.ERROR, >+ new String[] { IDialogConstants.CANCEL_LABEL }, 0); >+ dialog.open(); >+ } >+ return status.isOK(); >+ } > } >diff --git a/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PreferencesMessages.java b/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PreferencesMessages.java >index 3c12bfe..23fcc53 100644 >--- a/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PreferencesMessages.java >+++ b/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PreferencesMessages.java >@@ -802,4 +802,6 @@ > public static String FavoriteStaticMemberInputDialog_error_invalidTypeName; > public static String FavoriteStaticMemberInputDialog_error_entryExists; > >+ public static String PHPCoreOptionsConfigurationBlock_SettingVersionFailed_Title; >+ > } >diff --git a/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PreferencesMessages.properties b/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PreferencesMessages.properties >index c47cac2..008c431 100644 >--- a/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PreferencesMessages.properties >+++ b/plugins/org.eclipse.php.ui/src/org/eclipse/php/internal/ui/preferences/PreferencesMessages.properties >@@ -936,3 +936,5 @@ > > CleanUpPreferencePage_Description=A&ctive profile: > CleanUpPreferencePage_Title=Code Clean Up >+ >+PHPCoreOptionsConfigurationBlock_SettingVersionFailed_Title=Failed setting php version
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 389036
: 221013