From e4ccc012a781d794c06b8d3fd27e0a1f532b3fe7 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 3 Aug 2012 14:03:59 +0200 Subject: Menu item on collection members in the tree to remove them. Drag items onto dependencies to add them. Dependency view Logging cleanup Fixes #42 --- .../gui/tabs/collection/DependencyView.java | 48 +++++++++++++++++++--- 1 file changed, 42 insertions(+), 6 deletions(-) (limited to 'src/main/java/com/c2kernel/gui/tabs/collection/DependencyView.java') diff --git a/src/main/java/com/c2kernel/gui/tabs/collection/DependencyView.java b/src/main/java/com/c2kernel/gui/tabs/collection/DependencyView.java index e068bdc..cd46a3d 100644 --- a/src/main/java/com/c2kernel/gui/tabs/collection/DependencyView.java +++ b/src/main/java/com/c2kernel/gui/tabs/collection/DependencyView.java @@ -1,22 +1,32 @@ package com.c2kernel.gui.tabs.collection; import java.awt.GridLayout; -import javax.swing.JLabel; +import javax.swing.JSplitPane; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; +import javax.swing.tree.DefaultMutableTreeNode; import com.c2kernel.collection.Collection; import com.c2kernel.collection.DependencyMember; +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.gui.TreeBrowser; +import com.c2kernel.gui.tree.Node; +import com.c2kernel.gui.tree.NodeCollection; +import com.c2kernel.gui.tree.NodeItem; /** * @version $Revision: 1.2 $ $Date: 2005/06/02 12:17:22 $ * @author $Author: abranson $ */ public class DependencyView extends CollectionView { - // Objects to view/modify the properties of the selected activity - + TreeBrowser tree; + CollectionMemberPropertyPanel propPanel; + JSplitPane split; + public DependencyView() { super(); - setLayout(new GridLayout(1,1)); + setLayout(new GridLayout(1, 1)); createLayout(); } @@ -24,11 +34,37 @@ public class DependencyView extends CollectionView public void setCollection(Collection contents) { thisColl = contents; + NodeCollection collNode = new NodeCollection(item, thisColl.getName(), null); + tree = new TreeBrowser(null, collNode); + tree.getTree().addTreeSelectionListener(new TreeSelectionListener() { + public void valueChanged(TreeSelectionEvent e) { + if (e.getPath() == null) { + propPanel.clear(); + } + else { + Node selectedNode = (Node)((DefaultMutableTreeNode)e.getPath().getLastPathComponent()).getUserObject(); + if (selectedNode instanceof NodeItem) { + NodeItem thisItem = (NodeItem)selectedNode; + if (thisItem.getParentCollection() != null) { + try { + propPanel.setMember(thisItem.getParentCollection().getMember(thisItem.getSlotNo())); + return; + } catch (ObjectNotFoundException e1) { } + } + propPanel.clear(); + } + } + } + }); + split.setLeftComponent(tree); } public void createLayout() { - // TODO: design a nice dependency view, with property viewing and modification - add(new JLabel("Dependency view not yet implemented. Please browse the tree instead.")); + propPanel = new CollectionMemberPropertyPanel(); + split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); + split.setRightComponent(propPanel); + add(split); + } } -- cgit v1.2.3