add rebuildDependencies method to be called by text project editor widget when saved (fix for FELIX-1905)


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@885227 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilProject.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilProject.java
index 08c29a6..1ac0c99 100644
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilProject.java
+++ b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilProject.java
@@ -109,9 +109,15 @@
     {
         SubMonitor progress = SubMonitor.convert( monitor, 100 );
 
-        calculateUses();
-
         bldProjectFile.setContents( buildContents(), IFile.KEEP_HISTORY, progress.newChild( 10 ) );
+        
+        rebuildDependencies(progress.newChild(90));
+    }
+
+    public void rebuildDependencies(IProgressMonitor monitor) throws CoreException {
+        SubMonitor progress = SubMonitor.convert( monitor, 100 );
+        
+        calculateUses();
 
         IRepositoryManager manager = SigilCore.getRepositoryManager( this );
         ResolutionConfig config = new ResolutionConfig( ResolutionConfig.INCLUDE_OPTIONAL );
@@ -130,12 +136,11 @@
             throw SigilCore.newCoreException( "Failed to synchronize dependencies", e );
         }
 
-        progress.setWorkRemaining( 40 );
+        progress.setWorkRemaining( 30 );
 
-        SigilCore.rebuildBundleDependencies( this, progress.newChild( 20 ) );
+        SigilCore.rebuildBundleDependencies( this, progress.newChild( 30 ) );
     }
 
-
     /**
      * Returns the project custom preference pool.
      * Project preferences may include custom encoding.
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilProjectModel.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilProjectModel.java
index 5379ac6..917db29 100644
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilProjectModel.java
+++ b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilProjectModel.java
@@ -22,6 +22,7 @@
 
 import java.util.Collection;
 
+
 import org.apache.felix.sigil.config.IBldProject;
 import org.apache.felix.sigil.core.BldCore;
 import org.apache.felix.sigil.model.ICompoundModelElement;
@@ -72,6 +73,8 @@
      * @throws CoreException
      */
     void save( IProgressMonitor monitor ) throws CoreException;
+    
+    void rebuildDependencies(IProgressMonitor monitor) throws CoreException;
 
 
     /**
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/SigilProjectEditorPart.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/SigilProjectEditorPart.java
index e2a362f..e6471c2 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/SigilProjectEditorPart.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/SigilProjectEditorPart.java
@@ -109,6 +109,7 @@
                                 }
                             } );
                             project.setBundle( null );
+                            project.rebuildDependencies(monitor);
                         }
                         else if ( isDirty() )
                         {