summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/gui/tree
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2014-05-07 17:33:57 +0200
committerAndrew Branson <andrew.branson@cern.ch>2014-05-07 17:33:57 +0200
commit21230edbafdd30fcf0c43d1dc64ccbf4ca5e06a8 (patch)
treeb2908dbea534ca8d96a81ab922501769d4b70c4d /src/main/java/com/c2kernel/gui/tree
parent75bf1278296d33a7d9b6c01660a2f21e2d40d995 (diff)
Agent now extends Item, so they can have workflows. All traces of the
old 'Entity' superclasses should be removed, including proxies and paths. Very large change, breaks API compatibility with CRISTAL 2.x.
Diffstat (limited to 'src/main/java/com/c2kernel/gui/tree')
-rw-r--r--src/main/java/com/c2kernel/gui/tree/Node.java13
-rw-r--r--src/main/java/com/c2kernel/gui/tree/NodeAgent.java6
-rw-r--r--src/main/java/com/c2kernel/gui/tree/NodeCollection.java28
-rw-r--r--src/main/java/com/c2kernel/gui/tree/NodeContext.java4
-rw-r--r--src/main/java/com/c2kernel/gui/tree/NodeEntity.java94
-rw-r--r--src/main/java/com/c2kernel/gui/tree/NodeItem.java93
6 files changed, 98 insertions, 140 deletions
diff --git a/src/main/java/com/c2kernel/gui/tree/Node.java b/src/main/java/com/c2kernel/gui/tree/Node.java
index a2be6c7..62e9d19 100644
--- a/src/main/java/com/c2kernel/gui/tree/Node.java
+++ b/src/main/java/com/c2kernel/gui/tree/Node.java
@@ -13,7 +13,7 @@ import javax.swing.tree.DefaultMutableTreeNode;
import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.gui.DynamicTreeBuilder;
-import com.c2kernel.gui.EntityTabManager;
+import com.c2kernel.gui.ItemTabManager;
import com.c2kernel.gui.ImageLoader;
import com.c2kernel.lookup.AgentPath;
import com.c2kernel.lookup.Path;
@@ -37,18 +37,19 @@ public abstract class Node implements Runnable {
protected DynamicTreeBuilder loader = null;
private boolean loaded = false;
private String iconName;
- protected EntityTabManager desktop;
+ protected ItemTabManager desktop;
static ImageIcon folder = ImageLoader.findImage("folder.png");
static ImageIcon emptyLeaf = ImageLoader.findImage("leaf.png");
- public Node() {
+ public Node(ItemTabManager desktop) {
+ this.desktop = desktop;
}
protected void createTreeNode() {
this.treeNode = new DefaultMutableTreeNode(this);
}
- public Node(Path path, EntityTabManager desktop) {
+ public Node(Path path, ItemTabManager desktop) {
this.binding = path;
this.desktop = desktop;
this.sysKey = path.getSysKey();
@@ -60,7 +61,7 @@ public abstract class Node implements Runnable {
this.name = Gateway.getProperties().getProperty("Name");
}
- public EntityTabManager getDesktop() {
+ public ItemTabManager getDesktop() {
return desktop;
}
@@ -81,7 +82,7 @@ public abstract class Node implements Runnable {
*/
public void makeExpandable() {
if (isExpandable) return;
- loader = new DynamicTreeBuilder(this.treeNode);
+ loader = new DynamicTreeBuilder(this.treeNode, desktop);
this.treeNode.insert(loader.getTreeNode(),0);
isExpandable = true;
}
diff --git a/src/main/java/com/c2kernel/gui/tree/NodeAgent.java b/src/main/java/com/c2kernel/gui/tree/NodeAgent.java
index cda6579..f8cf045 100644
--- a/src/main/java/com/c2kernel/gui/tree/NodeAgent.java
+++ b/src/main/java/com/c2kernel/gui/tree/NodeAgent.java
@@ -4,7 +4,7 @@ package com.c2kernel.gui.tree;
import java.util.ArrayList;
-import com.c2kernel.gui.EntityTabManager;
+import com.c2kernel.gui.ItemTabManager;
import com.c2kernel.lookup.Path;
/**
@@ -12,9 +12,9 @@ import com.c2kernel.lookup.Path;
* @author $Author: abranson $
* @version $Version$
*/
-public class NodeAgent extends NodeEntity {
+public class NodeAgent extends NodeItem {
- public NodeAgent(Path path, EntityTabManager desktop) {
+ public NodeAgent(Path path, ItemTabManager desktop) {
super(path, desktop);
}
diff --git a/src/main/java/com/c2kernel/gui/tree/NodeCollection.java b/src/main/java/com/c2kernel/gui/tree/NodeCollection.java
index 47afc5f..3d624ee 100644
--- a/src/main/java/com/c2kernel/gui/tree/NodeCollection.java
+++ b/src/main/java/com/c2kernel/gui/tree/NodeCollection.java
@@ -8,27 +8,27 @@ import com.c2kernel.collection.Collection;
import com.c2kernel.collection.CollectionMember;
import com.c2kernel.collection.Dependency;
import com.c2kernel.common.ObjectNotFoundException;
-import com.c2kernel.entity.proxy.EntityProxyObserver;
import com.c2kernel.entity.proxy.ItemProxy;
import com.c2kernel.entity.proxy.MemberSubscription;
-import com.c2kernel.gui.EntityTabManager;
+import com.c2kernel.entity.proxy.ProxyObserver;
+import com.c2kernel.gui.ItemTabManager;
import com.c2kernel.gui.MainFrame;
-import com.c2kernel.lookup.EntityPath;
-import com.c2kernel.lookup.InvalidEntityPathException;
+import com.c2kernel.lookup.InvalidItemPathException;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.lookup.Path;
import com.c2kernel.persistency.ClusterStorage;
import com.c2kernel.utils.CastorHashMap;
import com.c2kernel.utils.KeyValuePair;
import com.c2kernel.utils.Logger;
-public class NodeCollection extends Node implements EntityProxyObserver<Collection<? extends CollectionMember>> {
+public class NodeCollection extends Node implements ProxyObserver<Collection<? extends CollectionMember>> {
ItemProxy parent;
Collection<? extends CollectionMember> thisCollection;
String path;
- public NodeCollection(ItemProxy parent, String name, EntityTabManager desktop) {
- this.desktop = desktop;
+ public NodeCollection(ItemProxy parent, String name, ItemTabManager desktop) {
+ super(desktop);
this.parent = parent;
this.name = name;
this.path = parent.getSystemKey()+"/Collection/"+name;
@@ -36,8 +36,8 @@ public class NodeCollection extends Node implements EntityProxyObserver<Collecti
this.makeExpandable();
}
- public NodeCollection(ItemProxy parent, Collection<? extends CollectionMember> coll, EntityTabManager desktop) {
- this.desktop = desktop;
+ public NodeCollection(ItemProxy parent, Collection<? extends CollectionMember> coll, ItemTabManager desktop) {
+ super(desktop);
this.parent = parent;
this.name = coll.getName();
this.path = parent.getSystemKey()+"/Collection/"+name;
@@ -75,17 +75,17 @@ public class NodeCollection extends Node implements EntityProxyObserver<Collecti
ArrayList<Path> currentPaths = new ArrayList<Path>();
// add any missing paths
for (CollectionMember newMember : newMembers) {
- if (!oldMembers.contains(newMember) && newMember.getEntityKey()>-1)
+ if (!oldMembers.contains(newMember) && newMember.getSystemKey()>-1)
try
{
- EntityPath entityPath = new EntityPath(newMember.getEntityKey());
- currentPaths.add(entityPath);
- NodeItem newMemberNode = new NodeItem(entityPath, desktop);
+ ItemPath itemPath = new ItemPath(newMember.getSystemKey());
+ currentPaths.add(itemPath);
+ NodeItem newMemberNode = new NodeItem(itemPath, desktop);
newMemberNode.setCollection(contents, newMember.getID(), parent);
newMemberNode.setToolTip(getPropertyToolTip(newMember.getProperties()));
add(newMemberNode);
}
- catch (InvalidEntityPathException ex)
+ catch (InvalidItemPathException ex)
{
Logger.error("NodeCollection::loadChildren() " + ex.toString());
}
diff --git a/src/main/java/com/c2kernel/gui/tree/NodeContext.java b/src/main/java/com/c2kernel/gui/tree/NodeContext.java
index b2d215c..f63855c 100644
--- a/src/main/java/com/c2kernel/gui/tree/NodeContext.java
+++ b/src/main/java/com/c2kernel/gui/tree/NodeContext.java
@@ -3,7 +3,7 @@ package com.c2kernel.gui.tree;
import java.util.Enumeration;
import com.c2kernel.entity.proxy.DomainPathSubscriber;
-import com.c2kernel.gui.EntityTabManager;
+import com.c2kernel.gui.ItemTabManager;
import com.c2kernel.lookup.DomainPath;
import com.c2kernel.lookup.Path;
import com.c2kernel.process.Gateway;
@@ -13,7 +13,7 @@ import com.c2kernel.utils.Logger;
public class NodeContext extends Node implements DomainPathSubscriber {
Enumeration<? extends Path> children;
- public NodeContext(Path path, EntityTabManager desktop) {
+ public NodeContext(Path path, ItemTabManager desktop) {
super(path, desktop);
this.sysKey=Path.INVALID;
createTreeNode();
diff --git a/src/main/java/com/c2kernel/gui/tree/NodeEntity.java b/src/main/java/com/c2kernel/gui/tree/NodeEntity.java
deleted file mode 100644
index aa425d6..0000000
--- a/src/main/java/com/c2kernel/gui/tree/NodeEntity.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package com.c2kernel.gui.tree;
-
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.ArrayList;
-
-import javax.swing.JMenuItem;
-import javax.swing.JPopupMenu;
-
-import com.c2kernel.common.ObjectNotFoundException;
-import com.c2kernel.entity.proxy.EntityProxy;
-import com.c2kernel.gui.EntityTabManager;
-import com.c2kernel.lookup.Path;
-import com.c2kernel.process.Gateway;
-import com.c2kernel.utils.Language;
-import com.c2kernel.utils.Logger;
-
-/**
- * Structure for Item presence on the tree and ItemDetails boxes. Created by NodeFactory.
- * @author $Author: abranson $
- * @version $Version$
- */
-public abstract class NodeEntity extends Node {
-
- protected EntityProxy myEntity = null;
-
- public NodeEntity(Path path, EntityTabManager desktop) {
- super(path, desktop);
- Logger.msg(2,"NodeEntity.<init> - Creating item for '"+path.toString()+"'.");
-
- // if an item - resolve the item and get its properties
- try {
- myEntity = Gateway.getProxyManager().getProxy(path);
- this.sysKey = path.getSysKey();
- Logger.msg(2,"NodeEntity.<init> - System key is "+this.sysKey);
-
- // Name should be the alias if present
- String alias = myEntity.getName();
- if (alias != null) this.name = alias;
-
- try {
- this.type = myEntity.getProperty("Type");
- } catch (ObjectNotFoundException e) {
- this.type = "";
- }
- String iconString = this.type;
- if (type.equals("ActivityDesc"))
- try {
- iconString = myEntity.getProperty("Complexity")+iconString;
- } catch (ObjectNotFoundException e) {
- iconString = "error";
- }
- iconString = iconString.toLowerCase();
- this.setIcon(iconString);
- } catch (ObjectNotFoundException e1) {
- this.sysKey = -1;
- this.type="Error";
- this.name="Entity not found";
- this.setIcon("error");
- }
- createTreeNode();
- }
-
- public EntityProxy getEntity() {
- return myEntity;
- }
- /**
- *
- */
- @Override
- public JPopupMenu getPopupMenu() {
- JPopupMenu popup = super.getPopupMenu();
- JMenuItem openItem = new JMenuItem(Language.translate("Open"));
- openItem.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- openItem();
- }
- });
- popup.addSeparator();
- popup.add(openItem);
- return popup;
- }
-
- public void openItem() {
- desktop.add(this);
- }
-
- public ArrayList<String> getTabs() {
- ArrayList<String> requiredTabs = new ArrayList<String>();
- return requiredTabs;
- }
-}
diff --git a/src/main/java/com/c2kernel/gui/tree/NodeItem.java b/src/main/java/com/c2kernel/gui/tree/NodeItem.java
index 18d35be..9cdfc5a 100644
--- a/src/main/java/com/c2kernel/gui/tree/NodeItem.java
+++ b/src/main/java/com/c2kernel/gui/tree/NodeItem.java
@@ -15,13 +15,16 @@ import javax.swing.JPopupMenu;
import com.c2kernel.collection.Aggregation;
import com.c2kernel.collection.Collection;
import com.c2kernel.collection.CollectionMember;
+import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.entity.agent.Job;
import com.c2kernel.entity.proxy.ItemProxy;
-import com.c2kernel.gui.EntityDetails;
-import com.c2kernel.gui.EntityTabManager;
+import com.c2kernel.gui.ItemDetails;
+import com.c2kernel.gui.ItemTabManager;
import com.c2kernel.gui.MainFrame;
import com.c2kernel.lookup.Path;
import com.c2kernel.persistency.ClusterStorage;
+import com.c2kernel.process.Gateway;
+import com.c2kernel.utils.Language;
import com.c2kernel.utils.Logger;
/**
@@ -29,8 +32,57 @@ import com.c2kernel.utils.Logger;
* @author $Author: abranson $
* @version $Version$
*/
-public class NodeItem extends NodeEntity implements Transferable {
+public class NodeItem extends Node implements Transferable {
+ protected ItemProxy myItem = null;
+
+ public NodeItem(Path path, ItemTabManager desktop) {
+
+ super(path, desktop);
+ Logger.msg(2,"NodeEntity.<init> - Creating item for '"+path.toString()+"'.");
+
+ // if an item - resolve the item and get its properties
+ try {
+ myItem = Gateway.getProxyManager().getProxy(path);
+ this.sysKey = path.getSysKey();
+ Logger.msg(2,"NodeEntity.<init> - System key is "+this.sysKey);
+
+ // Name should be the alias if present
+ String alias = myItem.getName();
+ if (alias != null) this.name = alias;
+
+ try {
+ this.type = myItem.getProperty("Type");
+ } catch (ObjectNotFoundException e) {
+ this.type = "";
+ }
+ String iconString = this.type;
+ if (type.equals("ActivityDesc"))
+ try {
+ iconString = myItem.getProperty("Complexity")+iconString;
+ } catch (ObjectNotFoundException e) {
+ iconString = "error";
+ }
+ iconString = iconString.toLowerCase();
+ this.setIcon(iconString);
+ } catch (ObjectNotFoundException e1) {
+ this.sysKey = -1;
+ this.type="Error";
+ this.name="Entity not found";
+ this.setIcon("error");
+ }
+ createTreeNode();
+ makeExpandable();
+ }
+
+ public ItemProxy getItem() {
+ return myItem;
+ }
+
+ public void openItem() {
+ desktop.add(this);
+ }
+
public Collection<? extends CollectionMember> getParentCollection() {
return parentCollection;
}
@@ -49,16 +101,6 @@ public class NodeItem extends NodeEntity implements Transferable {
DataFlavor.getTextPlainUnicodeFlavor() };
- public NodeItem(Path path, EntityTabManager desktop) {
- super(path, desktop);
- try {
- makeExpandable();
- } catch (Exception e) {
- Logger.error(e);
- }
-
- }
-
public void setCollection(Collection<? extends CollectionMember> parentCollection, Integer slotNo, ItemProxy parentItem) {
this.parentCollection = parentCollection;
this.slotNo = slotNo;
@@ -68,10 +110,10 @@ public class NodeItem extends NodeEntity implements Transferable {
@Override
public void loadChildren() {
try {
- String collections = myEntity.queryData("Collection/all");
+ String collections = myItem.queryData("Collection/all");
StringTokenizer tok = new StringTokenizer(collections, ",");
while (tok.hasMoreTokens()) {
- NodeCollection newCollection = new NodeCollection((ItemProxy)myEntity, tok.nextToken(), desktop);
+ NodeCollection newCollection = new NodeCollection(myItem, tok.nextToken(), desktop);
add(newCollection);
}
end(false);
@@ -82,7 +124,17 @@ public class NodeItem extends NodeEntity implements Transferable {
@Override
public JPopupMenu getPopupMenu() {
- JPopupMenu popup = super.getPopupMenu();
+
+ JPopupMenu popup = super.getPopupMenu();
+ JMenuItem openItem = new JMenuItem(Language.translate("Open"));
+ openItem.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ openItem();
+ }
+ });
+ popup.addSeparator();
+ popup.add(openItem);
popup.addSeparator();
if (parentCollection != null && MainFrame.isAdmin) {
JMenuItem collMenuItem = new JMenuItem("Remove from collection");
@@ -104,7 +156,7 @@ public class NodeItem extends NodeEntity implements Transferable {
popup.addSeparator();
}
try {
- ArrayList<Job> jobList = ((ItemProxy)myEntity).getJobList(MainFrame.userAgent);
+ ArrayList<Job> jobList = myItem.getJobList(MainFrame.userAgent);
ArrayList<String> already = new ArrayList<String>();
if (jobList.size() > 0) {
for (Job thisJob : jobList) {
@@ -139,17 +191,16 @@ public class NodeItem extends NodeEntity implements Transferable {
}
public void execute(String stepName) {
- EntityDetails thisDetail = desktop.add(this);
+ ItemDetails thisDetail = desktop.add(this);
thisDetail.runCommand("Execution", stepName);
}
- @Override
public ArrayList<String> getTabs() {
- ArrayList<String> requiredTabs = super.getTabs();
+ ArrayList<String> requiredTabs = new ArrayList<String>();
requiredTabs.add("Properties");
try {
- String collNames = myEntity.queryData(ClusterStorage.COLLECTION+"/all");
+ String collNames = myItem.queryData(ClusterStorage.COLLECTION+"/all");
if (collNames.length() > 0)
requiredTabs.add("Collection");
} catch (Exception e) { }