Skip to content
Snippets Groups Projects
Commit 8960b8f9 authored by Carsten Stocklöw's avatar Carsten Stocklöw
Browse files

small changes for bus member view

parent a3f87e2b
No related branches found
No related tags found
No related merge requests found
......@@ -70,7 +70,8 @@ public class LogMonitor implements LogListenerEx, IBusMemberRegistryListener {
}
public void busMemberRemoved(BusMember member, BusType type) {
// TODO
MemberData data = new MemberData(member.getURI(), type);
gui.remove(data);
}
public void regParamsAdded(String busMemberID, Resource[] params) {
......
......@@ -5,13 +5,13 @@
package org.universAAL.tools.logmonitor.bus_member.gui;
import java.awt.BorderLayout;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTree;
import javax.swing.event.TreeModelEvent;
import javax.swing.event.TreeModelListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
......@@ -27,8 +27,7 @@ import org.universAAL.tools.logmonitor.bus_member.MemberData;
* @author cstockloew
*
*/
public class BusMemberGui extends JPanel implements TreeSelectionListener,
TreeModelListener {
public class BusMemberGui extends JPanel implements TreeSelectionListener {
private static final long serialVersionUID = 1L;
......@@ -41,9 +40,9 @@ public class BusMemberGui extends JPanel implements TreeSelectionListener,
private DefaultMutableTreeNode root = null;
DefaultTreeModel treeModel;
private HashMap<String, DefaultMutableTreeNode> peers = new HashMap<String, DefaultMutableTreeNode>();
private HashMap<String, DefaultMutableTreeNode> modules = new HashMap<String, DefaultMutableTreeNode>();
private HashMap<String, DefaultMutableTreeNode> members = new HashMap<String, DefaultMutableTreeNode>();
private Map<String, DefaultMutableTreeNode> peers = new Hashtable<String, DefaultMutableTreeNode>();
private Map<String, DefaultMutableTreeNode> modules = new Hashtable<String, DefaultMutableTreeNode>();
private Map<String, DefaultMutableTreeNode> members = new Hashtable<String, DefaultMutableTreeNode>();
/**
* Create the main frame.
......@@ -54,9 +53,8 @@ public class BusMemberGui extends JPanel implements TreeSelectionListener,
root = new DefaultMutableTreeNode("root");
treeModel = new DefaultTreeModel(root);
tree = new JTree(treeModel);
// tree.setRootVisible(false);
// tree.addTreeSelectionListener(this);
treeModel.addTreeModelListener(this);
tree.setRootVisible(false);
tree.addTreeSelectionListener(this);
// overall view
JScrollPane scrollPaneLeft = new JScrollPane(tree);
......@@ -75,52 +73,96 @@ public class BusMemberGui extends JPanel implements TreeSelectionListener,
* The MemberData.
*/
public void add(MemberData m) {
boolean first = false;
// handle root = Space ID
if (tree.isRootVisible()) {
// first element -> create root
root.setUserObject("Space: " + m.space);
tree.setRootVisible(true);
first = true;
}
// handle peers
DefaultMutableTreeNode peerNode = peers.get(m.peer);
if (peerNode == null) {
// peer not yet available
peerNode = new DefaultMutableTreeNode("Peer: " + m.peer);
root.add(peerNode);
treeModel.reload(root);
// add(peerNode, root);
peers.put(m.peer, peerNode);
}
// handle module
DefaultMutableTreeNode moduleNode = modules
.get(m.peer + "#" + m.module);
if (moduleNode == null) {
// module not yet available
moduleNode = new DefaultMutableTreeNode("Module: " + m.module);
peerNode.add(moduleNode);
treeModel.reload(peerNode);
modules.put(m.peer + "#" + m.module, moduleNode);
synchronized (this) {
boolean first = false;
// handle root = Space ID
if (!tree.isRootVisible()) {
// first element -> create root
root.setUserObject("Space: " + m.space);
tree.setRootVisible(true);
first = true;
}
// handle peers
DefaultMutableTreeNode peerNode = peers.get(m.peer);
if (peerNode == null) {
// peer not yet available
peerNode = new DefaultMutableTreeNode("Peer: " + m.peer);
root.add(peerNode);
treeModel.reload(root);
// add(peerNode, root);
peers.put(m.peer, peerNode);
}
// handle module
DefaultMutableTreeNode moduleNode = modules.get(m.peer + "#"
+ m.module);
if (moduleNode == null) {
// module not yet available
moduleNode = new DefaultMutableTreeNode("Module: " + m.module);
peerNode.add(moduleNode);
treeModel.reload(peerNode);
modules.put(m.peer + "#" + m.module, moduleNode);
}
// handle member
DefaultMutableTreeNode memberNode = members.get(m.id);
if (memberNode == null) {
// member not yet available (this should always be the case?)
memberNode = new DefaultMutableTreeNode("Member: "
+ m.busType.name() + "-" + m.type + " - " + m.number);
moduleNode.add(memberNode);
// treeModel.reload(moduleNode);
treeModel.nodesWereInserted(moduleNode,
new int[] { moduleNode.getChildCount() - 1 });
members.put(m.id, memberNode);
}
if (first)
expand(moduleNode);
}
}
// handle member
DefaultMutableTreeNode memberNode = members.get(m.id);
if (memberNode == null) {
// member not yet available (this should always be the case?)
memberNode = new DefaultMutableTreeNode("Member: "
+ m.busType.name() + "-" + m.type + " - " + m.number);
moduleNode.add(memberNode);
// treeModel.reload(moduleNode);
treeModel.nodesWereInserted(moduleNode,
new int[] { moduleNode.getChildCount() - 1 });
members.put(m.id, memberNode);
public void remove(MemberData m) {
synchronized (this) {
// get module (= parent of this member)
final DefaultMutableTreeNode moduleNode = modules.get(m.peer + "#"
+ m.module);
if (moduleNode == null) {
System.out
.println("ERROR: module node not found while removing");
return;
}
// get member
final DefaultMutableTreeNode memberNode = members.get(m.id);
if (memberNode == null) {
System.out
.println("ERROR: member node not found while removing");
return;
}
// remove node (from node and from internal map)
final int idx = moduleNode.getIndex(memberNode);
if (idx == -1) {
System.out
.println("ERROR: member node not indexed while removing");
return;
}
moduleNode.remove(idx);
members.remove(m.id);
// update view
// SwingUtilities.invokeLater(new Runnable() {
// public void run() {
treeModel.nodesWereRemoved(moduleNode, new int[] { idx },
new Object[] { memberNode });
// }
// });
// TODO: if this is the last member for a module, should we remove
// the module as well?
}
if (first)
expand(moduleNode);
}
private void expand(DefaultMutableTreeNode node) {
......@@ -130,22 +172,17 @@ public class BusMemberGui extends JPanel implements TreeSelectionListener,
}
public void valueChanged(TreeSelectionEvent e) {
// TODO Auto-generated method stub
}
public void treeNodesChanged(TreeModelEvent e) {
// TODO Auto-generated method stub
}
public void treeNodesInserted(TreeModelEvent e) {
// TODO Auto-generated method stub
}
public void treeNodesRemoved(TreeModelEvent e) {
// TODO Auto-generated method stub
}
public void treeStructureChanged(TreeModelEvent e) {
// TODO Auto-generated method stub
synchronized (this) {
JTree tree = (JTree) e.getSource();
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree
.getLastSelectedPathComponent();
// String selectedNodeName = selectedNode.toString();
if (members.containsValue(node)) {
} else if (modules.containsValue(node)) {
} else if (peers.containsValue(node)) {
} else if (node == root) {
}
}
}
}
package org.universAAL.tools.logmonitor.test;
import java.util.LinkedList;
import java.util.List;
import org.universAAL.middleware.bus.junit.BusTestCase;
import org.universAAL.middleware.bus.member.BusMember;
import org.universAAL.middleware.bus.permission.AccessControl;
import org.universAAL.middleware.container.ModuleContext;
import org.universAAL.middleware.container.utils.LogUtils;
......@@ -24,15 +28,25 @@ public class Test extends BusTestCase {
public void tearDown() {
// don't do anything here so we don't have to set up again
while (true) {
try {
Thread.sleep(1000);
new DefaultServiceCaller(mc);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// List<BusMember> l = new LinkedList<BusMember>();
// int i = 0;
// while (true) {
// try {
// Thread.sleep(20);
// l.add(new DefaultServiceCaller(mc));
// i++;
// if (i % 3 == 0) {
// // remove one
// //BusMember m = l.remove((int) (Math.random() * l.size()));
// BusMember m = l.remove(l.size()-1);
// System.out.println(" -- removing member: " + m.getURI());
// m.close();
// }
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
}
public void setUp() throws Exception {
......@@ -69,8 +83,8 @@ public class Test extends BusTestCase {
public void testAddScript() {
LogUtils.logDebug(mc, this.getClass(), "method", "msg");
caller = new DefaultServiceCaller(mc);
ContextPublisher cp = new DefaultContextPublisher(mc, null);
//ContextPublisher cp = new DefaultContextPublisher(mc, null);
caller.close();
cp.close();
//cp.close();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment