Author: rob.stryker(a)jboss.com
Date: 2009-04-02 02:00:28 -0400 (Thu, 02 Apr 2009)
New Revision: 14442
Added:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/PostBuildRefresher.java
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceArchivesCore.java
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceChangeListener.java
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/ModelChangeListenerWithRefresh.java
Log:
Adding a refresher external
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceArchivesCore.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceArchivesCore.java 2009-04-02
05:59:36 UTC (rev 14441)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceArchivesCore.java 2009-04-02
06:00:28 UTC (rev 14442)
@@ -12,13 +12,13 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.osgi.util.NLS;
-import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.build.ModelChangeListenerWithRefresh;
+import org.jboss.ide.eclipse.archives.core.build.PostBuildRefresher;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
import org.jboss.ide.eclipse.archives.core.model.IArchivesLogger;
+import org.jboss.ide.eclipse.archives.core.model.IArchivesVFS;
import org.jboss.ide.eclipse.archives.core.model.IExtensionManager;
import org.jboss.ide.eclipse.archives.core.model.IPreferenceManager;
-import org.jboss.ide.eclipse.archives.core.model.IArchivesVFS;
import org.jboss.ide.eclipse.archives.core.model.other.internal.ArchivesWorkspaceLogger;
import
org.jboss.ide.eclipse.archives.core.model.other.internal.WorkspaceExtensionManager;
import
org.jboss.ide.eclipse.archives.core.model.other.internal.WorkspacePreferenceManager;
@@ -34,6 +34,7 @@
super(WORKSPACE);
ArchivesCore.setInstance(this);
ArchivesModel.instance().addModelListener(new ModelChangeListenerWithRefresh());
+ ArchivesModel.instance().addBuildListener(new PostBuildRefresher());
}
protected IExtensionManager createExtensionManager() {
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceChangeListener.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceChangeListener.java 2009-04-02
05:59:36 UTC (rev 14441)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceChangeListener.java 2009-04-02
06:00:28 UTC (rev 14442)
@@ -41,6 +41,7 @@
public class WorkspaceChangeListener implements IResourceChangeListener {
public void resourceChanged(IResourceChangeEvent event) {
+ // The comparator
Comparator c = new Comparator() {
public int compare(Object o1, Object o2) {
if( o1 instanceof IProject && o2 instanceof IProject)
@@ -49,27 +50,20 @@
return 0;
}
};
+
+ // Unregister a project if a project is being deleted
if (event.getType() == IResourceChangeEvent.PRE_DELETE || event.getType() ==
IResourceChangeEvent.PRE_CLOSE) {
IResource resource = event.getResource();
if (resource instanceof IProject) {
final IProject project = (IProject) resource;
IResource packages = project.findMember(IArchiveModel.DEFAULT_PACKAGES_FILE);
if (ArchivesModel.instance().isProjectRegistered(project.getLocation()) || packages
!= null) {
- WorkspaceJob job = new WorkspaceJob(ArchivesCoreMessages.UnregisterProject) {
-
- @Override
- public IStatus runInWorkspace(IProgressMonitor monitor)
- throws CoreException {
- ArchivesModel.instance().unregisterProject(project.getLocation(), new
NullProgressMonitor());
- return Status.OK_STATUS;
- }
-
- };
- job.schedule();
+ unregister(project);
}
}
}
+ // Recurse delta to find a packages file, add to set
final Set<IProject> projects = new TreeSet<IProject>(c);
IResourceDelta delta = event.getDelta();
try {
@@ -88,11 +82,13 @@
}
} catch( CoreException ce ) {
}
+
+ // If we're deleting the .packages file or closing the project, unregister
if (event.getType() == IResourceChangeEvent.PRE_DELETE || event.getType() ==
IResourceChangeEvent.PRE_CLOSE) {
Iterator<IProject> i = projects.iterator();
while(i.hasNext()) {
final IProject p = i.next();
- ArchivesModel.instance().unregisterProject(p.getLocation(), new
NullProgressMonitor());
+ unregister(p);
}
} else {
Iterator<IProject> i = projects.iterator();
@@ -125,4 +121,16 @@
}
}
+ protected void unregister(final IProject project) {
+ WorkspaceJob job = new WorkspaceJob(ArchivesCoreMessages.UnregisterProject) {
+ public IStatus runInWorkspace(IProgressMonitor monitor)
+ throws CoreException {
+ ArchivesModel.instance().unregisterProject(
+ project.getLocation(), new NullProgressMonitor());
+ return Status.OK_STATUS;
+ }
+ };
+ job.schedule();
+ }
+
}
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/ModelChangeListenerWithRefresh.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/ModelChangeListenerWithRefresh.java 2009-04-02
05:59:36 UTC (rev 14441)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/ModelChangeListenerWithRefresh.java 2009-04-02
06:00:28 UTC (rev 14442)
@@ -80,12 +80,6 @@
}
} catch( CoreException ce ) {
}
-
- try {
- proj.setSessionProperty(new QualifiedName(ArchivesCorePlugin.PLUGIN_ID,
"localname"), null); //$NON-NLS-1$
- } catch( CoreException ce ) {
- }
-
}
}
}
Added:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/PostBuildRefresher.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/PostBuildRefresher.java
(rev 0)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/PostBuildRefresher.java 2009-04-02
06:00:28 UTC (rev 14442)
@@ -0,0 +1,96 @@
+package org.jboss.ide.eclipse.archives.core.build;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.jboss.ide.eclipse.archives.core.model.IArchive;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
+import org.jboss.ide.eclipse.archives.core.util.PathUtils;
+
+public class PostBuildRefresher implements IArchiveBuildListener {
+
+ public void buildFailed(IArchive pkg, IStatus status) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void cleanArchive(IArchive pkg) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void cleanProject(IPath project) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void error(IArchiveNode node, IStatus[] multi) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void fileRemoved(IArchive topLevelArchive, IArchiveFileSet fileset,
+ IPath filePath) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void fileUpdated(IArchive topLevelArchive, IArchiveFileSet fileset,
+ IPath filePath) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void finishedBuild(IPath project) {
+
+ // TODO Auto-generated method stub
+
+ }
+
+ public void finishedBuildingArchive(IArchive pkg) {
+ // TODO Auto-generated method stub
+ if( pkg.isDestinationInWorkspace()) {
+ IPath loc = PathUtils.getGlobalLocation(pkg);
+ IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(loc);
+ for( int i = 0; i < files.length; i++ ) {
+ try {
+ files[i].refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ } catch( CoreException ce ) {}
+ }
+ IContainer[] folders =
ResourcesPlugin.getWorkspace().getRoot().findContainersForLocation(loc);
+ for( int i = 0; i < folders.length; i++ ) {
+ try {
+ folders[i].refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ } catch( CoreException ce ) {}
+ }
+ }
+ }
+
+ public void finishedCollectingFileSet(IArchiveFileSet fileset) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void startedBuild(IPath project) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void startedBuildingArchive(IArchive pkg) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void startedCollectingFileSet(IArchiveFileSet fileset) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Show replies by date