Author: kono
Date: 2011-11-15 18:10:39 -0800 (Tue, 15 Nov 2011)
New Revision: 27489
Added:
core3/impl/trunk/swing-application-impl/src/main/resources/images/README.txt
core3/impl/trunk/swing-application-impl/src/main/resources/images/network_32.png
core3/impl/trunk/swing-application-impl/src/main/resources/images/network_l_32.png
Removed:
core3/impl/trunk/swing-application-impl/src/main/resources/images/new/GO.gif
core3/impl/trunk/swing-application-impl/src/main/resources/images/new/GO2.gif
core3/impl/trunk/swing-application-impl/src/main/resources/images/new/GOsmall.gif
core3/impl/trunk/swing-application-impl/src/main/resources/images/user-trash.png-README.txt
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkTreeNode.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkTreeTableModel.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/TreeCellRenderer.java
Log:
New network panel function implemented. Networks are managed as sets. All
networks created from a same root network will be organized under a tree node.
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
2011-11-16 01:41:03 UTC (rev 27488)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
2011-11-16 02:10:39 UTC (rev 27489)
@@ -33,16 +33,20 @@
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
-import java.awt.Font;
+import java.awt.Image;
+import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import javax.swing.Icon;
import javax.swing.InputMap;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
@@ -77,8 +81,12 @@
import org.cytoscape.model.events.NetworkAboutToBeDestroyedListener;
import org.cytoscape.model.events.NetworkAddedEvent;
import org.cytoscape.model.events.NetworkAddedListener;
+import org.cytoscape.model.events.RowSetRecord;
import org.cytoscape.model.events.RowsSetEvent;
import org.cytoscape.model.events.RowsSetListener;
+import org.cytoscape.model.subnetwork.CyRootNetwork;
+import org.cytoscape.model.subnetwork.CySubNetwork;
+import org.cytoscape.property.session.Parent;
import org.cytoscape.task.NetworkCollectionTaskFactory;
import org.cytoscape.task.NetworkTaskFactory;
import org.cytoscape.task.NetworkViewCollectionTaskFactory;
@@ -94,28 +102,23 @@
import org.cytoscape.work.swing.DialogTaskManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Collection;
-import org.cytoscape.model.events.RowSetRecord;
-import java.util.Iterator;
-public class NetworkPanel extends JPanel implements TreeSelectionListener,
- SetCurrentNetworkViewListener, SetCurrentNetworkListener,
- NetworkAddedListener, NetworkViewAddedListener,
NetworkAboutToBeDestroyedListener,
+public class NetworkPanel extends JPanel implements TreeSelectionListener,
SetCurrentNetworkViewListener,
+ SetCurrentNetworkListener, NetworkAddedListener,
NetworkViewAddedListener, NetworkAboutToBeDestroyedListener,
NetworkViewAboutToBeDestroyedListener, RowsSetListener {
private final static long serialVersionUID = 1213748836763243L;
- static final Color WITH_VIEW = new Color(0x66, 0xCD, 0xAA, 100);
- static final Color WITH_VIEW_SELECTED = new Color(0x54, 0xFF, 0x9F,
170);
- static final Color WITHOUT_VIEW = new Color(0x69, 0x69, 0x69, 50);
- static final Color WITHOUT_VIEW_SELECTED = new Color(0x69, 0x69, 0x69,
170);
+ private static final Logger logger =
LoggerFactory.getLogger(NetworkPanel.class);
+
static final Color FONT_COLOR = new Color(20, 20, 20);
private static final int TABLE_ROW_HEIGHT = 32;
- static final Font TABLE_FONT = new Font("SansSerif", Font.PLAIN, 14);
- private static final Logger logger =
LoggerFactory.getLogger(NetworkPanel.class);
+ private static final Dimension PANEL_SIZE = new Dimension(400, 700);
+ private int networkSetCounter;
+
private final JTreeTable treeTable;
private final NetworkTreeNode root;
private JPanel navigatorPanel;
@@ -133,16 +136,20 @@
private final Map<TaskFactory, CyAction> popupActions;
private final Map<CyTable, CyNetwork> nameTables;
+ private final Map<Long, NetworkTreeNode> treeNodeMap;
+
/**
* Constructor for the Network Panel.
*
* @param desktop
*/
- public NetworkPanel(final CyApplicationManager applicationManager,
- final CyNetworkManager netmgr, final
CyNetworkViewManager networkViewManager,
- final BirdsEyeViewHandler bird, final DialogTaskManager
taskManager) {
+ public NetworkPanel(final CyApplicationManager applicationManager,
final CyNetworkManager netmgr,
+ final CyNetworkViewManager networkViewManager, final
BirdsEyeViewHandler bird,
+ final DialogTaskManager taskManager) {
super();
+ networkSetCounter = 1;
+ this.treeNodeMap = new HashMap<Long, NetworkTreeNode>();
this.appManager = applicationManager;
this.netmgr = netmgr;
this.networkViewManager = networkViewManager;
@@ -176,22 +183,27 @@
protected void initialize() {
setLayout(new BorderLayout());
- setPreferredSize(new Dimension(300, 700));
+ setPreferredSize(PANEL_SIZE);
+ setSize(PANEL_SIZE);
treeTable.getTree().addTreeSelectionListener(this);
treeTable.getTree().setRootVisible(false);
ToolTipManager.sharedInstance().registerComponent(treeTable);
- treeTable.getTree().setCellRenderer(new TreeCellRenderer(this));
+ treeTable.getTree().setCellRenderer(new
TreeCellRenderer(treeTable, netmgr, networkViewManager));
+ treeTable.setBackground(Color.white);
+ treeTable.setSelectionBackground(new Color(200, 200, 200, 150));
- treeTable.getColumn("Network").setPreferredWidth(100);
+ treeTable.getColumn("Network").setPreferredWidth(120);
treeTable.getColumn("Nodes").setPreferredWidth(45);
treeTable.getColumn("Edges").setPreferredWidth(45);
treeTable.setBackground(Color.WHITE);
treeTable.setRowHeight(TABLE_ROW_HEIGHT);
treeTable.setForeground(FONT_COLOR);
+ treeTable.setSelectionForeground(FONT_COLOR);
+ treeTable.setCellSelectionEnabled(true);
navigatorPanel = new JPanel();
navigatorPanel.setLayout(new BorderLayout());
@@ -238,44 +250,34 @@
}
public void
addNetworkCollectionTaskFactory(NetworkCollectionTaskFactory factory, Map
props) {
- addFactory(factory, new
NetworkCollectionTaskFactoryTunableAction(taskManager, factory,
- props, appManager));
+ addFactory(factory, new
NetworkCollectionTaskFactoryTunableAction(taskManager, factory, props,
appManager));
}
public void
removeNetworkCollectionTaskFactory(NetworkCollectionTaskFactory factory, Map
props) {
removeFactory(factory);
}
- public void
addNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory factory,
- Map props) {
- addFactory(factory, new
NetworkViewCollectionTaskFactoryTunableAction(taskManager, factory,
- props, appManager));
+ public void
addNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory factory,
Map props) {
+ addFactory(factory, new
NetworkViewCollectionTaskFactoryTunableAction(taskManager, factory, props,
appManager));
}
- public void
removeNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory factory,
- Map props) {
+ public void
removeNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory
factory, Map props) {
removeFactory(factory);
}
- public void addNetworkTaskFactory(NetworkTaskFactory factory,
- @SuppressWarnings("rawtypes") Map props) {
- addFactory(factory, new
NetworkTaskFactoryTunableAction(taskManager, factory, props,
- appManager));
+ public void addNetworkTaskFactory(NetworkTaskFactory factory,
@SuppressWarnings("rawtypes") Map props) {
+ addFactory(factory, new
NetworkTaskFactoryTunableAction(taskManager, factory, props, appManager));
}
- public void removeNetworkTaskFactory(NetworkTaskFactory factory,
- @SuppressWarnings("rawtypes") Map props) {
+ public void removeNetworkTaskFactory(NetworkTaskFactory factory,
@SuppressWarnings("rawtypes") Map props) {
removeFactory(factory);
}
- public void addNetworkViewTaskFactory(NetworkViewTaskFactory factory,
- @SuppressWarnings("rawtypes") Map props) {
- addFactory(factory, new
NetworkViewTaskFactoryTunableAction(taskManager, factory, props,
- appManager));
+ public void addNetworkViewTaskFactory(NetworkViewTaskFactory factory,
@SuppressWarnings("rawtypes") Map props) {
+ addFactory(factory, new
NetworkViewTaskFactoryTunableAction(taskManager, factory, props, appManager));
}
- public void removeNetworkViewTaskFactory(NetworkViewTaskFactory factory,
- @SuppressWarnings("rawtypes") Map props) {
+ public void removeNetworkViewTaskFactory(NetworkViewTaskFactory
factory, @SuppressWarnings("rawtypes") Map props) {
removeFactory(factory);
}
@@ -331,8 +333,7 @@
if (treeTable.getTree().getSelectionPath() != null) { // user
has
// selected
// something
- treeTableModel.setValueAt(name,
treeTable.getTree().getSelectionPath()
- .getLastPathComponent(), 0);
+ treeTableModel.setValueAt(name,
treeTable.getTree().getSelectionPath().getLastPathComponent(), 0);
} else { // no selection, means the title has been changed
// programmatically
NetworkTreeNode node =
getNetworkNode(network.getSUID());
@@ -352,35 +353,35 @@
}
public void handleEvent(NetworkAddedEvent e) {
- CyNetwork net = e.getNetwork();
+ final CyNetwork net = e.getNetwork();
logger.debug("Got NetworkAddedEvent. Model ID = " +
net.getSUID());
- addNetwork(net.getSUID(), -1l);
+ addNetwork(net.getSUID());
nameTables.put(net.getDefaultNetworkTable(), net);
}
-
+
@Override
public void handleEvent(RowsSetEvent e) {
// if Selection column has been updated, update the UI
- Collection<RowSetRecord> rowSetRecords =
e.getPayloadCollection();
+ Collection<RowSetRecord> rowSetRecords =
e.getPayloadCollection();
Iterator<RowSetRecord> it = rowSetRecords.iterator();
- while (it.hasNext()){
+ while (it.hasNext()) {
RowSetRecord record = it.next();
- if
(record.getColumn().equalsIgnoreCase(CyNetwork.SELECTED)){
- //Selection column is updated, updated the UI
+ if
(record.getColumn().equalsIgnoreCase(CyNetwork.SELECTED)) {
+ // Selection column is updated, updated the UI
treeTable.getTree().updateUI();
break;
}
}
-
- CyNetwork n = nameTables.get( e.getSource() );
-
- if ( n == null )
+
+ CyNetwork n = nameTables.get(e.getSource());
+
+ if (n == null)
return;
-
+
final String title = n.getCyRow().get(CyTableEntry.NAME,
String.class);
- updateTitle(n, title); // this should updated the UI
regardless...
+ updateTitle(n, title); // this should updated the UI
regardless...
}
@Override
@@ -413,14 +414,12 @@
}
public void handleEvent(NetworkViewAboutToBeDestroyedEvent nde) {
- logger.debug("Network view about to be destroyed "
- + nde.getNetworkView().getModel().getSUID());
+ logger.debug("Network view about to be destroyed " +
nde.getNetworkView().getModel().getSUID());
treeTable.getTree().updateUI();
}
public void handleEvent(NetworkViewAddedEvent nde) {
- logger.debug("Network view added to NetworkPanel: "
- + nde.getNetworkView().getModel().getSUID());
+ logger.debug("Network view added to NetworkPanel: " +
nde.getNetworkView().getModel().getSUID());
// Set current network view to the new one.
appManager.setCurrentNetworkView(nde.getNetworkView().getModel().getSUID());
@@ -428,19 +427,39 @@
treeTable.getTree().updateUI();
}
- private void addNetwork(final Long network_id, final Long parent_id) {
+ private void addNetwork(final Long network_id) {
// first see if it exists
if (getNetworkNode(network_id) == null) {
- NetworkTreeNode dmtn = new
NetworkTreeNode(netmgr.getNetwork(network_id).getCyRow()
- .get(CyTableEntry.NAME, String.class),
network_id);
+ final CyNetwork network = netmgr.getNetwork(network_id);
- if (parent_id != null && getNetworkNode(parent_id) !=
null) {
- getNetworkNode(parent_id).add(dmtn);
- } else {
- root.add(dmtn);
+ NetworkTreeNode parentTreeNode = null;
+ CyRootNetwork parentNetwork = null;
+ // In current version, ALL networks are created as
Subnetworks.
+ // So, this should be always true.
+ if (network instanceof CySubNetwork) {
+ parentNetwork = ((CySubNetwork)
network).getRootNetwork();
+ parentTreeNode =
this.treeNodeMap.get(parentNetwork.getSUID());
}
+ if (parentTreeNode == null) {
+ parentTreeNode = new NetworkTreeNode("Network
Set " + networkSetCounter, null);
+ networkSetCounter++;
+ }
+
+ // Actual tree node for this network
+ NetworkTreeNode dmtn = new
NetworkTreeNode(network.getCyRow().get(CyTableEntry.NAME, String.class),
+ network_id);
+
+ parentTreeNode.add(dmtn);
+
+ if (treeNodeMap.values().contains(parentTreeNode) ==
false)
+ root.add(parentTreeNode);
+
+ // Register top-level node to map
+ if (parentNetwork != null)
+ this.treeNodeMap.put(parentNetwork.getSUID(),
parentTreeNode);
+
// apparently this doesn't fire valueChanged
treeTable.getTree().collapsePath(new TreePath(new
TreeNode[] { root }));
@@ -453,8 +472,7 @@
// this is necessary because valueChanged is not fired
above
focusNetworkNode(network_id);
} else {
- // logger.debug("addNetwork getNetworkTreeNode
returned: " +
- // getNetworkNode(network_id).getNetworkID());
+ // already in the table.
}
}
@@ -468,15 +486,18 @@
}
}
- public NetworkTreeNode getNetworkNode(Long network_id) {
- Enumeration tree_node_enum = root.breadthFirstEnumeration();
+ NetworkTreeNode getNetworkNode(Long network_id) {
+ final Enumeration<?> tree_node_enum =
root.breadthFirstEnumeration();
while (tree_node_enum.hasMoreElements()) {
- NetworkTreeNode node = (NetworkTreeNode)
tree_node_enum.nextElement();
+ final NetworkTreeNode node = (NetworkTreeNode)
tree_node_enum.nextElement();
- if (node.getNetworkID().equals(network_id)) {
+ Long currentID = node.getNetworkID();
+ if (currentID == null)
+ continue;
+
+ if (node.getNetworkID().equals(network_id))
return node;
- }
}
return null;
@@ -485,8 +506,10 @@
/**
* This method highlights a network in the NetworkPanel.
*
- * @param e DOCUMENT ME!
+ * @param e
+ * DOCUMENT ME!
*/
+ @Override
public void valueChanged(TreeSelectionEvent e) {
// logger.debug("NetworkPanel: valueChanged - " +
// e.getSource().getClass().getName());
@@ -499,6 +522,10 @@
return;
}
+ // This is a "network set" node.
+ if (node.getNetworkID() == null)
+ return;
+
appManager.setCurrentNetwork(node.getNetworkID());
// creates a list of all selected networks
@@ -555,8 +582,7 @@
if (row != -1) {
JTree tree = treeTable.getTree();
TreePath treePath =
tree.getPathForRow(row);
- Long networkID = ((NetworkTreeNode)
treePath.getLastPathComponent())
- .getNetworkID();
+ Long networkID = ((NetworkTreeNode)
treePath.getLastPathComponent()).getNetworkID();
CyNetwork cyNetwork =
netmgr.getNetwork(networkID);
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkTreeNode.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkTreeNode.java
2011-11-16 01:41:03 UTC (rev 27488)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkTreeNode.java
2011-11-16 02:10:39 UTC (rev 27489)
@@ -2,20 +2,25 @@
import javax.swing.tree.DefaultMutableTreeNode;
+/**
+ * Custom Tree node in the JTreeTable
+ *
+ */
final class NetworkTreeNode extends DefaultMutableTreeNode {
- private final static long serialVersionUID = 1213748836736485L;
- protected Long network_uid;
- public NetworkTreeNode(Object userobj, Long id) {
- super(userobj.toString());
- network_uid = id;
- }
+ private final static long serialVersionUID = 1213748836736485L;
- protected void setNetworkID(Long id) {
- network_uid = id;
- }
+ // Immutable network SUID. This can be null if the given tree node is
not
+ // associated with a network.
+ private final Long networkID;
- protected Long getNetworkID() {
- return network_uid;
- }
+
+ NetworkTreeNode(final Object userobj, final Long id) {
+ super(userobj.toString());
+ networkID = id;
+ }
+
+ Long getNetworkID() {
+ return networkID;
+ }
}
\ No newline at end of file
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkTreeTableModel.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkTreeTableModel.java
2011-11-16 01:41:03 UTC (rev 27488)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkTreeTableModel.java
2011-11-16 02:10:39 UTC (rev 27489)
@@ -12,11 +12,13 @@
final class NetworkTreeTableModel extends AbstractTreeTableModel {
+
+ private static final String[] COLUMNS = { "Network", "Nodes", "Edges" };
+ private static final Class<?>[] COLUMN_CLASSES = {
TreeTableModel.class, String.class, String.class };
+
private final NetworkPanel networkPanel;
- String[] columns = { "Network", "Nodes", "Edges" };
- Class[] columns_class = { TreeTableModel.class, String.class,
String.class };
-
- public NetworkTreeTableModel(NetworkPanel networkPanel, Object root) {
+
+ NetworkTreeTableModel(NetworkPanel networkPanel, Object root) {
super(root);
this.networkPanel = networkPanel;
}
@@ -49,23 +51,39 @@
}
public int getColumnCount() {
- return columns.length;
+ return COLUMNS.length;
}
- public String getColumnName(int column) {
- return columns[column];
+
+ @Override
+ public String getColumnName(final int columnIdx) {
+ return COLUMNS[columnIdx];
}
- public Class getColumnClass(int column) {
- return columns_class[column];
+
+ @Override
+ public Class<?> getColumnClass(int column) {
+ return COLUMN_CLASSES[column];
}
- public Object getValueAt(final Object node, final int column) {
+
+ @Override
+ public Object getValueAt(final Object value, final int column) {
+ if(value instanceof NetworkTreeNode == false)
+ return null;
+
+ final NetworkTreeNode node = (NetworkTreeNode) value;
+ final Long networkID = node.getNetworkID();
+
+ if(networkID == null) {
+ // This is root network node
+ return null;
+ }
+
if (column == 0)
- return ((DefaultMutableTreeNode) node).getUserObject();
+ return node.getUserObject();
else if (column == 1) {
- CyNetwork cyNetwork =
this.networkPanel.netmgr.getNetwork(((NetworkTreeNode) node).getNetworkID());
-
+ final CyNetwork cyNetwork =
this.networkPanel.netmgr.getNetwork(node.getNetworkID());
return "" + cyNetwork.getNodeCount() + "("
+
cyNetwork.getDefaultNodeTable().getMatchingRows(CyNetwork.SELECTED,
true).size() + ")";
} else if (column == 2) {
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/TreeCellRenderer.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/TreeCellRenderer.java
2011-11-16 01:41:03 UTC (rev 27488)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/TreeCellRenderer.java
2011-11-16 02:10:39 UTC (rev 27489)
@@ -1,55 +1,96 @@
package org.cytoscape.internal.view;
+import java.awt.Color;
import java.awt.Component;
+import java.awt.Font;
+import java.awt.Image;
+import java.awt.Toolkit;
+import javax.swing.ImageIcon;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.model.CyTableEntry;
+import org.cytoscape.util.swing.JTreeTable;
+import org.cytoscape.view.model.CyNetworkViewManager;
final class TreeCellRenderer extends DefaultTreeCellRenderer {
- /**
- *
- */
- private final NetworkPanel networkPanel;
+ private final static long serialVersionUID = 1213748836751014L;
+
+ private static final String NETWORK_ICON = "/images/network_32.png";
+ private static final String NETWORK_LEAF_ICON =
"/images/network_l_32.png";
- /**
- * @param networkPanel
- */
- TreeCellRenderer(NetworkPanel networkPanel) {
- this.networkPanel = networkPanel;
- }
+ static final Font TABLE_FONT = new Font("SansSerif", Font.PLAIN, 14);
+ static final Font TABLE_FONT_SELECTED = new Font("SansSerif",
Font.BOLD, 14);
- private final static long serialVersionUID = 1213748836751014L;
+ private final CyNetworkManager networkManager;
+ private final CyNetworkViewManager networkViewManager;
- public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded,
- boolean leaf, int row, boolean hasFocus) {
- super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf,
row, hasFocus);
+ private final JTreeTable treeTable;
- setFont(NetworkPanel.TABLE_FONT);
- this.setForeground(NetworkPanel.FONT_COLOR);
- if (hasView(value)) {
- setBackgroundNonSelectionColor(NetworkPanel.WITH_VIEW);
- setBackgroundSelectionColor(NetworkPanel.WITH_VIEW_SELECTED);
- } else {
- setBackgroundNonSelectionColor(NetworkPanel.WITHOUT_VIEW);
- setBackgroundSelectionColor(NetworkPanel.WITHOUT_VIEW_SELECTED);
+ TreeCellRenderer(final JTreeTable treeTable, final CyNetworkManager
networkManager,
+ final CyNetworkViewManager networkViewManager) {
+ this.networkManager = networkManager;
+ this.networkViewManager = networkViewManager;
+ this.treeTable = treeTable;
+
+ final Image iconImage =
Toolkit.getDefaultToolkit().getImage(getClass().getResource(NETWORK_ICON));
+ final ImageIcon icon = new ImageIcon(iconImage);
+ final Image iconImageLeaf =
Toolkit.getDefaultToolkit().getImage(getClass().getResource(NETWORK_LEAF_ICON));
+ final ImageIcon iconLeaf = new ImageIcon(iconImageLeaf);
+
+ this.setClosedIcon(icon);
+ this.setOpenIcon(icon);
+ this.setLeafIcon(iconLeaf);
}
- return this;
- }
+ @Override
+ public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded,
+ boolean leaf, int row, boolean hasFocus) {
+ super.getTreeCellRendererComponent(tree, value, sel, expanded,
leaf, row, hasFocus);
- private boolean hasView(final Object value) {
- final NetworkTreeNode node = (NetworkTreeNode) value;
- final CyNetwork network =
this.networkPanel.netmgr.getNetwork(node.getNetworkID());
+ if (value instanceof NetworkTreeNode == false)
+ return this;
- if (network != null)
- setToolTipText(network.getCyRow().get(CyTableEntry.NAME,
String.class));
- else
- setToolTipText("Root");
+ final NetworkTreeNode treeNode = (NetworkTreeNode) value;
- return
this.networkPanel.networkViewManager.viewExists(node.getNetworkID());
- }
+ this.setForeground(NetworkPanel.FONT_COLOR);
+ treeTable.setForeground(NetworkPanel.FONT_COLOR);
+ this.setBackground(treeTable.getBackground());
+
this.setBackgroundSelectionColor(treeTable.getSelectionBackground());
+
+ if (selected)
+ this.setFont(TABLE_FONT_SELECTED);
+ else
+ this.setFont(TABLE_FONT);
+
+ if(treeNode.getNetworkID() == null) {
+ setForeground(treeTable.getForeground());
+ return this;
+ }
+
+ if (hasView(treeNode))
+ setForeground(treeTable.getForeground());
+ else
+ setForeground(Color.red);
+
+ return this;
+ }
+
+ private boolean hasView(final NetworkTreeNode node) {
+ final Long networkID = node.getNetworkID();
+ final CyNetwork network = networkManager.getNetwork(networkID);
+
+ if (network != null)
+
setToolTipText(network.getCyRow().get(CyTableEntry.NAME, String.class));
+ else {
+ if (node.getRoot() == node)
+ setToolTipText("Network Root");
+ }
+
+ return networkViewManager.viewExists(node.getNetworkID());
+ }
}
\ No newline at end of file
Copied:
core3/impl/trunk/swing-application-impl/src/main/resources/images/README.txt
(from rev 27464,
core3/impl/trunk/swing-application-impl/src/main/resources/images/user-trash.png-README.txt)
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/resources/images/README.txt
(rev 0)
+++
core3/impl/trunk/swing-application-impl/src/main/resources/images/README.txt
2011-11-16 02:10:39 UTC (rev 27489)
@@ -0,0 +1,13 @@
+The icon user-trash.png is from the Tango Icon Library
+(http://tango.freedesktop.org/Tango_Icon_Library), which is
+public domain.
+
+<Information about network_32.png icon>
+Icon Pack:Devine-Icons Part-2
+Designer:ipapun
+License:Creative Commons Attribution (by)
+
+<Information about network_l_32.png icon>
+Icon Pack:Blend
+Designer:Laurent Baumann
+License:Creative Commons Attribution Non-commercial Share Alike (by-nc-sa)
\ No newline at end of file
Added:
core3/impl/trunk/swing-application-impl/src/main/resources/images/network_32.png
===================================================================
(Binary files differ)
Property changes on:
core3/impl/trunk/swing-application-impl/src/main/resources/images/network_32.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
core3/impl/trunk/swing-application-impl/src/main/resources/images/network_l_32.png
===================================================================
(Binary files differ)
Property changes on:
core3/impl/trunk/swing-application-impl/src/main/resources/images/network_l_32.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Deleted:
core3/impl/trunk/swing-application-impl/src/main/resources/images/new/GO.gif
===================================================================
(Binary files differ)
Deleted:
core3/impl/trunk/swing-application-impl/src/main/resources/images/new/GO2.gif
===================================================================
(Binary files differ)
Deleted:
core3/impl/trunk/swing-application-impl/src/main/resources/images/new/GOsmall.gif
===================================================================
(Binary files differ)
Deleted:
core3/impl/trunk/swing-application-impl/src/main/resources/images/user-trash.png-README.txt
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/resources/images/user-trash.png-README.txt
2011-11-16 01:41:03 UTC (rev 27488)
+++
core3/impl/trunk/swing-application-impl/src/main/resources/images/user-trash.png-README.txt
2011-11-16 02:10:39 UTC (rev 27489)
@@ -1,3 +0,0 @@
-The icon user-trash.png is from the Tango Icon Library
-(http://tango.freedesktop.org/Tango_Icon_Library), which is
-public domain.
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.