You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2014/06/04 21:41:08 UTC

svn commit: r1600470 - in /sling/trunk/tooling/ide/eclipse-ui: ./ META-INF/ src/org/apache/sling/ide/eclipse/ui/internal/ src/org/apache/sling/ide/eclipse/ui/propertyPages/

Author: rombert
Date: Wed Jun  4 19:41:08 2014
New Revision: 1600470

URL: http://svn.apache.org/r1600470
Log:
SLING-3031 - [Tooling] add whitelabel support for slingclipse

Allow overriding the property page to show for Sling projects.

Added:
    sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/
    sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/SlingProjectPropertyPage.java   (contents, props changed)
      - copied, changed from r1600324, sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingProjectPropertyPage.java
Removed:
    sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingProjectPropertyPage.java
Modified:
    sling/trunk/tooling/ide/eclipse-ui/META-INF/MANIFEST.MF
    sling/trunk/tooling/ide/eclipse-ui/plugin.xml
    sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizardPage.java

Modified: sling/trunk/tooling/ide/eclipse-ui/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-ui/META-INF/MANIFEST.MF?rev=1600470&r1=1600469&r2=1600470&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-ui/META-INF/MANIFEST.MF (original)
+++ sling/trunk/tooling/ide/eclipse-ui/META-INF/MANIFEST.MF Wed Jun  4 19:41:08 2014
@@ -90,4 +90,5 @@ Require-Bundle: org.eclipse.wst.common.p
 Service-Component: OSGI-INF/*.xml
 Export-Package: org.apache.sling.ide.eclipse.ui,
  org.apache.sling.ide.eclipse.ui.internal;x-friends:="org.apache.sling.ide.eclipse-test",
+ org.apache.sling.ide.eclipse.ui.propertyPages,
  org.apache.sling.ide.eclipse.ui.wizards

Modified: sling/trunk/tooling/ide/eclipse-ui/plugin.xml
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-ui/plugin.xml?rev=1600470&r1=1600469&r2=1600470&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-ui/plugin.xml (original)
+++ sling/trunk/tooling/ide/eclipse-ui/plugin.xml Wed Jun  4 19:41:08 2014
@@ -169,7 +169,7 @@
         <page 
             id="org.apache.sling.ide.projectPropertyPage" 
             name="Sling" 
-            class="org.apache.sling.ide.eclipse.ui.internal.SlingProjectPropertyPage"> 
+            class="org.apache.sling.ide.eclipse.ui.propertyPages.SlingProjectPropertyPage"> 
             <enabledWhen>
             <and>
              	<instanceof

Modified: sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizardPage.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizardPage.java?rev=1600470&r1=1600469&r2=1600470&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizardPage.java (original)
+++ sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizardPage.java Wed Jun  4 19:41:08 2014
@@ -19,6 +19,7 @@ package org.apache.sling.ide.eclipse.ui.
 
 import org.apache.sling.ide.eclipse.core.ProjectUtil;
 import org.apache.sling.ide.eclipse.core.internal.ProjectHelper;
+import org.apache.sling.ide.eclipse.ui.propertyPages.SlingProjectPropertyPage;
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -28,7 +29,6 @@ import org.eclipse.core.resources.IWorks
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.preference.PreferenceDialog;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -45,7 +45,6 @@ import org.eclipse.swt.widgets.Link;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.dialogs.ContainerSelectionDialog;
 import org.eclipse.ui.dialogs.ISelectionValidator;
-import org.eclipse.ui.dialogs.PreferencesUtil;
 import org.eclipse.ui.dialogs.WizardDataTransferPage;
 import org.eclipse.wst.server.core.IServer;
 
@@ -202,10 +201,8 @@ public class ImportWizardPage extends Wi
         openPropertiesLink.setText("(<a>change</a>)");
         openPropertiesLink.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
-				PreferenceDialog dialog = PreferencesUtil.createPropertyDialogOn(getShell(), project, 
-						"org.apache.sling.ide.projectPropertyPage", 
-						new String[] {"org.apache.sling.ide.projectPropertyPage"}, null);
-				dialog.open();
+
+                SlingProjectPropertyPage.openPropertyDialog(getShell(), project);
 				updateWidgetEnablements();
 			}
 		});

Copied: sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/SlingProjectPropertyPage.java (from r1600324, sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingProjectPropertyPage.java)
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/SlingProjectPropertyPage.java?p2=sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/SlingProjectPropertyPage.java&p1=sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingProjectPropertyPage.java&r1=1600324&r2=1600470&rev=1600470&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/SlingProjectPropertyPage.java (original)
+++ sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/SlingProjectPropertyPage.java Wed Jun  4 19:41:08 2014
@@ -1,10 +1,15 @@
-package org.apache.sling.ide.eclipse.ui.internal;
+package org.apache.sling.ide.eclipse.ui.propertyPages;
+
+import java.util.List;
 
 import org.apache.sling.ide.eclipse.core.ProjectUtil;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.preference.IPreferenceNode;
+import org.eclipse.jface.preference.PreferenceDialog;
+import org.eclipse.jface.preference.PreferenceManager;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -16,13 +21,43 @@ import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.dialogs.ContainerSelectionDialog;
 import org.eclipse.ui.dialogs.ISelectionValidator;
+import org.eclipse.ui.dialogs.PreferencesUtil;
 import org.eclipse.ui.dialogs.PropertyPage;
+import org.eclipse.ui.internal.dialogs.PropertyPageContributorManager;
+import org.eclipse.ui.internal.dialogs.PropertyPageManager;
 
 public class SlingProjectPropertyPage extends PropertyPage {
 
+    private static final String PAGE_ID = "org.apache.sling.ide.projectPropertyPage";
+    private static final String PAGE_ID_OVERRIDE = PAGE_ID + ".override";
+
+    public static void openPropertyDialog(Shell shell, IProject project) {
+
+        // find out if the override page is contributed, and show that instead of the default one
+        // TODO - stop relying on internals
+
+        PropertyPageManager pageManager = new PropertyPageManager();
+        PropertyPageContributorManager.getManager().contribute(pageManager, project);
+
+        List<?> nodes = pageManager.getElements(PreferenceManager.PRE_ORDER);
+        boolean overridePresent = false;
+        for (Object node : nodes) {
+            if (((IPreferenceNode) node).getId().equals(PAGE_ID_OVERRIDE)) {
+                overridePresent = true;
+                break;
+            }
+        }
+
+        String pageId = overridePresent ? PAGE_ID_OVERRIDE : PAGE_ID;
+
+        PreferenceDialog dialog = PreferencesUtil.createPropertyDialogOn(shell, project,
+                pageId, new String[] { pageId }, null);
+        dialog.open();
+    }
 
     private Text folderText;
 

Propchange: sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/SlingProjectPropertyPage.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/propertyPages/SlingProjectPropertyPage.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev URL