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 2015/10/09 17:09:51 UTC

svn commit: r1707756 - in /sling/trunk/tooling/ide/eclipse-sightly-core: META-INF/MANIFEST.MF src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java

Author: rombert
Date: Fri Oct  9 15:09:51 2015
New Revision: 1707756

URL: http://svn.apache.org/viewvc?rev=1707756&view=rev
Log:
SLING-4189 - Add basic code completion for Sightly 

Disable the HTML validator when installing the Sightly nature in order
to prevent it from marking Sightly-specific constructs as invalid.

Modified:
    sling/trunk/tooling/ide/eclipse-sightly-core/META-INF/MANIFEST.MF
    sling/trunk/tooling/ide/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java

Modified: sling/trunk/tooling/ide/eclipse-sightly-core/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-sightly-core/META-INF/MANIFEST.MF?rev=1707756&r1=1707755&r2=1707756&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-sightly-core/META-INF/MANIFEST.MF (original)
+++ sling/trunk/tooling/ide/eclipse-sightly-core/META-INF/MANIFEST.MF Fri Oct  9 15:09:51 2015
@@ -18,7 +18,9 @@ Import-Package: org.eclipse.jface.resour
  org.eclipse.wst.sse.core.internal.provisional.text,
  org.eclipse.wst.sse.core.internal.validate,
  org.eclipse.wst.validation,
+ org.eclipse.wst.validation.internal,
  org.eclipse.wst.validation.internal.core,
+ org.eclipse.wst.validation.internal.model,
  org.eclipse.wst.validation.internal.provisional.core,
  org.eclipse.wst.xml.core.internal.provisional.document,
  org.eclipse.wst.xml.core.internal.regions

Modified: sling/trunk/tooling/ide/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java?rev=1707756&r1=1707755&r2=1707756&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java (original)
+++ sling/trunk/tooling/ide/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java Fri Oct  9 15:09:51 2015
@@ -21,13 +21,55 @@ import org.eclipse.core.runtime.CoreExce
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.wst.common.project.facet.core.IDelegate;
 import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.validation.Validator;
+import org.eclipse.wst.validation.internal.ValManager;
+import org.eclipse.wst.validation.internal.ValPrefManagerProject;
+import org.eclipse.wst.validation.internal.ValidatorMutable;
+import org.eclipse.wst.validation.internal.model.ProjectPreferences;
 
+/**
+ * The <tt>SightlyFacetInstallDelegate</tt> ensures that the HTML validator is not active
+ * 
+ * <p>Since the Sightly validators delegate to the HTML counterparts and also ensure that 
+ * Sightly-specific constructs do not trigger validation problems it is completely safe
+ * to disable the HTML validator</p> 
+ */
+@SuppressWarnings("restriction")
 public class SightlyFacetInstallDelegate implements IDelegate {
 
+    private static final String HTML_VALIDATOR_ID = "org.eclipse.wst.html.core.HTMLValidator";
+
     @Override
     public void execute(IProject project, IProjectFacetVersion version, Object config, IProgressMonitor monitor)
             throws CoreException {
 
+        Validator[] validators = ValManager.getDefault().getValidators(project);
+        ValidatorMutable[] mutis = new ValidatorMutable[validators.length];
+        for ( int i = 0 ; i < validators.length; i++) {
+            mutis[i] = new ValidatorMutable(validators[i]);
+        }
+
+        boolean changed = false;
         
+        for ( ValidatorMutable validator : mutis ) {
+            if ( HTML_VALIDATOR_ID.equals(validator.getId()) ) {
+                if ( validator.isManualValidation() || validator.isBuildValidation() ) {
+                    validator.setBuildValidation(false);
+                    validator.setManualValidation(false);
+                    changed = true;
+                }
+            }
+        }
+
+        ProjectPreferences projectPreferences = ValManager.getDefault().getProjectPreferences(project);
+        if ( !projectPreferences.getOverride() ) {
+            projectPreferences = new ProjectPreferences(project, true, projectPreferences.getSuspend(), null);
+        }
+
+        if ( changed || !projectPreferences.getOverride() ) {
+            ValPrefManagerProject prefManager = new ValPrefManagerProject(project);
+            prefManager.savePreferences(projectPreferences, mutis);
+        }
+               
     }
 }