[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal ...
Robert Stryker
rawblem at gmail.com
Wed Nov 22 16:39:46 EST 2006
User: rawb
Date: 06/11/22 16:39:46
Modified: core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal
PackageBuildDelegate.java
Log:
Events now fire properly on incremental build
Revision Changes Path
1.4 +29 -3 jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal/PackageBuildDelegate.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PackageBuildDelegate.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal/PackageBuildDelegate.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- PackageBuildDelegate.java 22 Nov 2006 21:03:24 -0000 1.3
+++ PackageBuildDelegate.java 22 Nov 2006 21:39:45 -0000 1.4
@@ -350,10 +350,15 @@
}
private Hashtable filesToCopy, filesToRemove;
+ /*
+ * This method is responsible for throwing the proper events itself
+ * as to which packages are going to be changed.
+ */
private void incrementalBuild(Map args, final IProgressMonitor monitor)
{
filesToCopy = new Hashtable();
filesToRemove = new Hashtable();
+ final ArrayList packagesBeingChanged = new ArrayList();
for (Iterator iter = referencedProjects.iterator(); iter.hasNext(); )
{
final IProject project = (IProject) iter.next();
@@ -364,7 +369,7 @@
delta.accept(new IResourceDeltaVisitor () {
public boolean visit(IResourceDelta delta) throws CoreException {
if (delta.getResource().getType() == IResource.FILE)
- processFileDelta(project, delta, monitor);
+ processFileDelta(project, delta, packagesBeingChanged, monitor);
return true;
}
});
@@ -374,6 +379,13 @@
}
}
+ // alert this package is being changed
+ for( int i = 0; i < packagesBeingChanged.size(); i++ ) {
+ IPackage p = (IPackage)packagesBeingChanged.get(i);
+ fireStartedBuildingPackage(p);
+ }
+
+
for (Iterator iter = filesToCopy.keySet().iterator(); iter.hasNext(); )
{
IFile file = (IFile)iter.next();
@@ -404,6 +416,13 @@
filesToCopy.clear();
filesToRemove.clear();
+
+ // alert this package is being changed
+ for( int i = 0; i < packagesBeingChanged.size(); i++ ) {
+ IPackage p = (IPackage)packagesBeingChanged.get(i);
+ fireFinishedBuildingPackage(p);
+ }
+
}
private IPackage getPackageFromFile (IFile file)
@@ -418,11 +437,10 @@
return null;
}
- private void processFileDelta (IProject project, IResourceDelta delta, IProgressMonitor monitor)
+ private void processFileDelta (IProject project, IResourceDelta delta, ArrayList packagesBeingChanged, IProgressMonitor monitor)
{
IFile file = (IFile) delta.getResource();
IPackageFileSet[] filesets = findMatchingFilesets(file);
-
IPackage pkg = getPackageFromFile(file);
if ((delta.getFlags() & IResourceDelta.REMOVED) > 0)
{
@@ -435,6 +453,14 @@
if (filesets != null && filesets.length > 0)
{
+ // Is this right?? Is the parent guarenteed to be a package?
+ for( int i = 0; i < filesets.length; i++ ) {
+ IPackageNode n = filesets[i].getParent();
+ if( n instanceof IPackage )
+ packagesBeingChanged.add(n);
+ }
+
+
if ((delta.getFlags() & IResourceDelta.ADDED) > 0)
{
filesToCopy.put(file, filesets);
More information about the jboss-cvs-commits
mailing list