Author: rob.stryker(a)jboss.com
Date: 2009-02-04 02:24:11 -0500 (Wed, 04 Feb 2009)
New Revision: 13457
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/main/org/jboss/ide/eclipse/archives/core/ArchivesCoreMessages.java
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ArchivesCoreMessages.properties
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java
Log:
JBIDE-3638 - archives UI updates.
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-02-03
22:27:26 UTC (rev 13456)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/ModelChangeListenerWithRefresh.java 2009-02-04
07:24:11 UTC (rev 13457)
@@ -16,13 +16,19 @@
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.jboss.ide.eclipse.archives.core.ArchivesCoreMessages;
import org.jboss.ide.eclipse.archives.core.ArchivesCorePlugin;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
/**
* This class responds to model change events.
@@ -37,7 +43,24 @@
*
*/
public class ModelChangeListenerWithRefresh extends ModelChangeListener {
+
+ protected boolean shouldRun(IArchiveNodeDelta delta) {
+ return ( ResourcesPlugin.getWorkspace().isAutoBuilding()
+ && super.shouldRun(delta));
+ }
+
+ protected void executeAndLog(IArchiveNodeDelta delta) {
+ final IArchiveNodeDelta delta2 = delta;
+
+ new Job(ArchivesCoreMessages.UpdatingModelJob) {
+ public IStatus run(IProgressMonitor monitor) {
+ ModelChangeListenerWithRefresh.super.executeAndLog(delta2);
+ return Status.OK_STATUS;
+ }
+ }.schedule();
+ }
+
protected void postChange(IArchiveNode node) {
IArchive pack = node.getRootArchive();
if( pack != null ) {
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ArchivesCoreMessages.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ArchivesCoreMessages.java 2009-02-03
22:27:26 UTC (rev 13456)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ArchivesCoreMessages.java 2009-02-04
07:24:11 UTC (rev 13457)
@@ -69,4 +69,5 @@
public static String ErrorPreSave;
public static String SaveArchivesJob;
public static String CreatingDefaultJarConfig;
+ public static String UpdatingModelJob;
}
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ArchivesCoreMessages.properties
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ArchivesCoreMessages.properties 2009-02-03
22:27:26 UTC (rev 13456)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ArchivesCoreMessages.properties 2009-02-04
07:24:11 UTC (rev 13457)
@@ -49,4 +49,5 @@
UnregisterProject=Unregister Project
SaveArchivesJob=Save archives job
ErrorPreSave=Problem executing pre-save runnable
-CreatingDefaultJarConfig=Creating default JAR configuration for java project
"{0}"
\ No newline at end of file
+CreatingDefaultJarConfig=Creating default JAR configuration for java project
"{0}"
+UpdatingModelJob=Updating archives model
\ No newline at end of file
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java 2009-02-03
22:27:26 UTC (rev 13456)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java 2009-02-04
07:24:11 UTC (rev 13457)
@@ -51,13 +51,21 @@
* It immediately passes the delta to be handled.
*/
public void modelChanged(IArchiveNodeDelta delta) {
+ if( shouldRun(delta))
+ executeAndLog(delta);
+ }
+
+ protected boolean shouldRun(IArchiveNodeDelta delta) {
// if we're not building, get out
if (delta == null || delta.getPostNode() == null) {
- return;
+ return false;
}
if(
!ArchivesCore.getInstance().getPreferenceManager().isBuilderEnabled(delta.getPostNode().getProjectPath()))
- return;
-
+ return false;
+ return true;
+ }
+
+ protected void executeAndLog(IArchiveNodeDelta delta) {
IStatus[] errors;
try {
errors = handle(delta);
@@ -68,7 +76,8 @@
IArchiveNode node = delta.getPreNode() == null ? delta.getPostNode() :
delta.getPreNode();
EventManager.error(node, errors);
}
-
+
+
/**
* This can handle any type of node / delta, not just
* root elements. If the node is added or removed, it
@@ -81,7 +90,7 @@
*
* @param delta
*/
- private IStatus[] handle(IArchiveNodeDelta delta) {
+ protected IStatus[] handle(IArchiveNodeDelta delta) {
ArrayList<IStatus> errors = new ArrayList<IStatus>();
if( isTopLevelArchive(delta.getPostNode())) {
EventManager.startedBuildingArchive((IArchive)delta.getPostNode());
Show replies by date