From 2ccd2a1ed9dabf90bb663d7978e753c0fe3b4f34 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 18 Sep 2014 11:41:29 +0200 Subject: Support for subroles. --- src/main/java/com/c2kernel/gui/tree/Node.java | 3 +++ src/main/java/com/c2kernel/gui/tree/NodeRole.java | 33 +++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/main/java/com/c2kernel/gui/tree/NodeRole.java diff --git a/src/main/java/com/c2kernel/gui/tree/Node.java b/src/main/java/com/c2kernel/gui/tree/Node.java index eb4ebb2..d81061f 100644 --- a/src/main/java/com/c2kernel/gui/tree/Node.java +++ b/src/main/java/com/c2kernel/gui/tree/Node.java @@ -18,6 +18,7 @@ import com.c2kernel.gui.ItemTabManager; import com.c2kernel.lookup.AgentPath; import com.c2kernel.lookup.ItemPath; import com.c2kernel.lookup.Path; +import com.c2kernel.lookup.RolePath; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Language; import com.c2kernel.utils.Logger; @@ -76,6 +77,8 @@ public abstract class Node implements Runnable { else return new NodeItem(path, desktop); } catch (ObjectNotFoundException ex) { + if (path instanceof RolePath) + return new NodeRole(path, desktop); return new NodeContext(path, desktop); } diff --git a/src/main/java/com/c2kernel/gui/tree/NodeRole.java b/src/main/java/com/c2kernel/gui/tree/NodeRole.java new file mode 100644 index 0000000..df04e3a --- /dev/null +++ b/src/main/java/com/c2kernel/gui/tree/NodeRole.java @@ -0,0 +1,33 @@ +package com.c2kernel.gui.tree; + +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.gui.ItemTabManager; +import com.c2kernel.lookup.AgentPath; +import com.c2kernel.lookup.Path; +import com.c2kernel.lookup.RolePath; +import com.c2kernel.process.Gateway; +import com.c2kernel.utils.Logger; + +public class NodeRole extends NodeContext { + + RolePath role; + public NodeRole(Path path, ItemTabManager desktop) { + super(path, desktop); + role = (RolePath)path; + } + @Override + public void loadChildren() { + AgentPath[] agents; + try { + agents = Gateway.getLookup().getAgents(role); + for (AgentPath agentPath : agents) { + add (newNode(agentPath)); + } + } catch (ObjectNotFoundException e) { + Logger.error("Role "+role.getName()+" not found"); + } + super.loadChildren(); + } + + +} -- cgit v1.2.3