Author: rob.stryker(a)jboss.com
Date: 2008-03-06 14:12:00 -0500 (Thu, 06 Mar 2008)
New Revision: 6720
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java
Log:
Moved the xb wrapper function to a util class so its not only possible to use via the
model.
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
===================================================================
---
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-03-06
18:50:34 UTC (rev 6719)
+++
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-03-06
19:12:00 UTC (rev 6720)
@@ -32,21 +32,13 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
-import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFileSetImpl;
-import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFolderImpl;
-import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveImpl;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveModelNode;
-import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveNodeImpl;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbFileSet;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbFolder;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackage;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackageNode;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackages;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
+import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
/**
* The root model which keeps track of registered projects
@@ -253,7 +245,7 @@
ArchiveModelNode oldRoot = archivesRoot.get(project);
xbPackages.put(project, packages);
archivesRoot.put(project, root);
- createPackageNodeImpl(project, packages, null);
+ ModelUtil.createPackagesNodeImpl(project, packages,
(ArchiveModelNode)getRoot(project));
root.clearDeltas();
fireRegisterProjectEvent(oldRoot, root);
monitor.worked(1);
@@ -284,40 +276,7 @@
EventManager.fireDelta(delta);
}
- public ArchiveNodeImpl createPackageNodeImpl (IPath project, XbPackageNode node,
IArchiveNode parent) {
-
- if( node instanceof XbPackages ) {
- ArchiveModelNode impl = (ArchiveModelNode)getRoot(project);
- for (Iterator iter = node.getAllChildren().iterator(); iter.hasNext(); ) {
- XbPackageNode child = (XbPackageNode) iter.next();
- ArchiveNodeImpl childImpl = createPackageNodeImpl(project, child, impl);
- if (impl != null && childImpl != null) {
- impl.addChild(childImpl, false);
- }
- }
- return null;
- }
-
- ArchiveNodeImpl nodeImpl = null;
- if (node instanceof XbPackage) {
- nodeImpl = new ArchiveImpl((XbPackage)node);
- } else if (node instanceof XbFolder) {
- nodeImpl = new ArchiveFolderImpl((XbFolder)node);
- } else if (node instanceof XbFileSet) {
- nodeImpl = new ArchiveFileSetImpl((XbFileSet)node);
- }
-
- for (Iterator iter = node.getAllChildren().iterator(); iter.hasNext(); ) {
- XbPackageNode child = (XbPackageNode) iter.next();
- ArchiveNodeImpl childImpl = createPackageNodeImpl(project, child, nodeImpl);
- if (nodeImpl != null && childImpl != null) {
- nodeImpl.addChild(childImpl, false);
- }
- }
-
- return nodeImpl;
- }
-
+
public void saveModel (IPath project, IProgressMonitor monitor) {
// get a list of dirty nodes
@@ -346,7 +305,8 @@
// fire delta events
EventManager.fireDelta(delta);
}
-
+
+ // TODO: This requires massive help and new API's as well.
public void attach(IArchiveNode parent, IArchiveNode child, IProgressMonitor monitor) {
parent.addChild(child);
if( parent.connectedToModel() && parent.getProjectPath() != null) {
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java
===================================================================
---
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java 2008-03-06
18:50:34 UTC (rev 6719)
+++
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java 2008-03-06
19:12:00 UTC (rev 6720)
@@ -24,6 +24,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.Iterator;
import org.eclipse.core.runtime.IPath;
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
@@ -31,9 +32,20 @@
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
+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.IArchiveNodeVisitor;
+import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFileSetImpl;
+import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFolderImpl;
+import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveImpl;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveNodeImpl;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbAction;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbFileSet;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbFolder;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackage;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackageNode;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackages;
/**
* Utility class for matching model elements and stuff
@@ -209,4 +221,41 @@
if( projectPath == null ) return null;
return projectPath.append(workspacePath.removeFirstSegments(1));
}
+
+ public static ArchiveNodeImpl createPackagesNodeImpl (IPath project, XbPackages node,
IArchiveModelNode modelNode) {
+ for (Iterator iter = node.getAllChildren().iterator(); iter.hasNext(); ) {
+ XbPackageNode child = (XbPackageNode) iter.next();
+ ArchiveNodeImpl childImpl = (ArchiveNodeImpl)createPackageNodeImpl(child, modelNode);
+ if (modelNode != null && childImpl != null) {
+ if( modelNode instanceof ArchiveNodeImpl )
+ ((ArchiveNodeImpl)modelNode).addChild(childImpl, false);
+ else
+ modelNode.addChild(childImpl);
+ }
+ }
+ return null;
+ }
+
+ protected static IArchiveNode createPackageNodeImpl (XbPackageNode node, IArchiveNode
parent) {
+ ArchiveNodeImpl nodeImpl = null;
+ if (node instanceof XbPackage) {
+ nodeImpl = new ArchiveImpl((XbPackage)node);
+ } else if (node instanceof XbFolder) {
+ nodeImpl = new ArchiveFolderImpl((XbFolder)node);
+ } else if (node instanceof XbFileSet) {
+ nodeImpl = new ArchiveFileSetImpl((XbFileSet)node);
+ } else if( node instanceof XbAction ) {
+ nodeImpl = null; // TODO
+ }
+
+ for (Iterator iter = node.getAllChildren().iterator(); iter.hasNext(); ) {
+ XbPackageNode child = (XbPackageNode) iter.next();
+ ArchiveNodeImpl childImpl = (ArchiveNodeImpl)createPackageNodeImpl(child, nodeImpl);
+ if (nodeImpl != null && childImpl != null) {
+ nodeImpl.addChild(childImpl, false);
+ }
+ }
+ return nodeImpl;
+ }
+
}
Show replies by date