3m9 compatible;
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / core / CreateElementInCUOperation.java
index 20d2ebb..9793413 100644 (file)
  *******************************************************************************/
 package net.sourceforge.phpdt.internal.core;
 
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+
 import net.sourceforge.phpdt.core.IBuffer;
 import net.sourceforge.phpdt.core.ICompilationUnit;
 import net.sourceforge.phpdt.core.IJavaElement;
@@ -20,6 +24,7 @@ import net.sourceforge.phpdt.core.jdom.DOMFactory;
 import net.sourceforge.phpdt.core.jdom.IDOMCompilationUnit;
 import net.sourceforge.phpdt.core.jdom.IDOMNode;
 import net.sourceforge.phpdt.internal.core.jdom.DOMNode;
+import net.sourceforge.phpdt.internal.core.util.Util;
 
 /**
  * <p>This abstract class implements behavior common to <code>CreateElementInCUOperations</code>.
@@ -99,7 +104,7 @@ public abstract class CreateElementInCUOperation extends JavaModelOperation {
         * Only allow cancelling if this operation is not nested.
         */
        protected void checkCanceled() {
-               if (!fNested) {
+               if (!isNested) {
                        super.checkCanceled();
                }
        }
@@ -137,7 +142,7 @@ public abstract class CreateElementInCUOperation extends JavaModelOperation {
                                if (buffer  == null) return;
                                char[] bufferContents = buffer.getCharacters();
                                if (bufferContents == null) return;
-                               char[] elementContents = net.sourceforge.phpdt.internal.core.Util.normalizeCRs(fCreatedElement.getCharacters(), bufferContents);
+                               char[] elementContents = net.sourceforge.phpdt.internal.core.util.Util.normalizeCRs(fCreatedElement.getCharacters(), bufferContents);
                                switch (fReplacementLength) {
                                        case -1 : 
                                                // element is append at the end
@@ -156,12 +161,12 @@ public abstract class CreateElementInCUOperation extends JavaModelOperation {
                                if (!isWorkingCopy)
                                        this.setAttribute(HAS_MODIFIED_RESOURCE_ATTR, TRUE);
                                worked(1);
-                               fResultElements = generateResultHandles();
+                               resultElements = generateResultHandles();
                                if (!isWorkingCopy // if unit is working copy, then save will have already fired the delta
                                                && !Util.isExcluded(unit)
                                                && unit.getParent().exists()) {
-                                       for (int i = 0; i < fResultElements.length; i++) {
-                                               delta.added(fResultElements[i]);
+                                       for (int i = 0; i < resultElements.length; i++) {
+                                               delta.added(resultElements[i]);
                                        }
                                        addDelta(delta);
                                } // else unit is created outside classpath
@@ -220,11 +225,17 @@ public abstract class CreateElementInCUOperation extends JavaModelOperation {
         * progress reporting.
         */
        public abstract String getMainTaskName();
+       
+       protected ISchedulingRule getSchedulingRule() {
+               IResource resource = getCompilationUnit().getResource();
+               IWorkspace workspace = resource.getWorkspace();
+               return workspace.getRuleFactory().modifyRule(resource);
+       }
        /**
         * Returns the elements created by this operation.
         */
        public IJavaElement[] getResultElements() {
-               return fResultElements;
+               return resultElements;
        }
        /**
         * Sets the default position in which to create the new type