Author: rob.stryker(a)jboss.com
Date: 2007-05-01 17:13:15 -0400 (Tue, 01 May 2007)
New Revision: 1984
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java
Log:
view was not updating on creation of first node
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java
===================================================================
---
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java 2007-05-01
20:41:50 UTC (rev 1983)
+++
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java 2007-05-01
21:13:15 UTC (rev 1984)
@@ -31,6 +31,7 @@
import org.eclipse.ui.part.ViewPart;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
import org.jboss.ide.eclipse.archives.core.model.ArchivesCore;
@@ -235,6 +236,17 @@
public void modelChanged(IArchiveNodeDelta delta) {
+ boolean update = true;
+ try {
+ if( project == null ) return;
+ if( delta.getPostNode() == null && delta.getPreNode() == null ) return;
+ if( delta.getPreNode() == null ) update =
delta.getPostNode().getProject().equals(project);
+ else if( delta.getPostNode() == null ) update =
delta.getPreNode().getProject().equals(project);
+ else update = delta.getPreNode().getProject().equals(project) ||
delta.getPostNode().getProject().equals(project);
+ } catch( Exception e ) {}
+
+ if( !update ) return;
+
final IArchiveNode[] topChanges;
if( delta.getKind() == IArchiveNodeDelta.DESCENDENT_CHANGED)
topChanges = getChanges(delta);
@@ -247,7 +259,11 @@
getSite().getShell().getDisplay().asyncExec(new Runnable () {
public void run () {
for( int i = 0; i < topChanges.length; i++ ) {
- packageViewer.refresh(topChanges[i]);
+ if( topChanges.length == 1 && topChanges[0] instanceof IArchiveModelNode) {
+ packageViewer.setInput(ArchivesModel.instance().getRoot(project));
+ book.showPage(viewerComposite);
+ } else
+ packageViewer.refresh(topChanges[i]);
}
}
});