Author: clopes
Date: 2012-09-17 12:49:23 -0700 (Mon, 17 Sep 2012)
New Revision: 30373

Modified:
   
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyRootNetworkImpl.java
   
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/NetworkNameSetListener.java
   
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/NetworkViewManager.java
Log:
Fixes #1460: Now the root-network's name is not overwritten by the base 
network's name (when the base network is created) if the root name is already 
set, so the original name that was saved in the session file is displayed.
Also making sure that the visual property NETWORK_TITLE is set to the view 
model when a network's name is changed, in order to keep the view-XGMML files 
consistent.

Modified: 
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyRootNetworkImpl.java
===================================================================
--- 
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyRootNetworkImpl.java
  2012-09-14 21:52:04 UTC (rev 30372)
+++ 
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyRootNetworkImpl.java
  2012-09-17 19:49:23 UTC (rev 30373)
@@ -370,7 +370,7 @@
        
        @Override
        public String toString() {
-               return "CyRootNetwork: " + suid + " name: " + 
getRow(this).get("name", String.class); 
+               return "CyRootNetwork: " + suid + " name: " + 
getRow(this).get(NAME, String.class); 
        }
 
        private synchronized int getNextNodeIndex() {

Modified: 
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/NetworkNameSetListener.java
===================================================================
--- 
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/NetworkNameSetListener.java
     2012-09-14 21:52:04 UTC (rev 30372)
+++ 
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/NetworkNameSetListener.java
     2012-09-17 19:49:23 UTC (rev 30373)
@@ -3,6 +3,7 @@
 import java.util.Collection;
 
 import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyRow;
 import org.cytoscape.model.CyTable;
 import org.cytoscape.model.events.NetworkAddedEvent;
 import org.cytoscape.model.events.NetworkAddedListener;
@@ -82,30 +83,29 @@
                edgeTable.setTitle(name + " edge");
                networkTable.setTitle(name + " network");
                nodeTable.setTitle(name + " node");
-               
        }
 
        //=========================NetworkAddedListener 
Implementation========================
        @Override
        public void handleEvent(NetworkAddedEvent e) {
-
                CyNetwork sourceNetwork = e.getNetwork();
                String name = 
sourceNetwork.getRow(sourceNetwork).get(CyNetwork.NAME, String.class);
 
-               if (sourceNetwork.equals( rootNetwork.getBaseNetwork())){
+               if (sourceNetwork.equals( rootNetwork.getBaseNetwork()))
                        setRootNetworkName(name);
-               }
                
-               if(rootNetwork.containsNetwork(sourceNetwork))
+               if (rootNetwork.containsNetwork(sourceNetwork))
                        updateSubNetworkTableNames(sourceNetwork, name);
        }
        
        private void setRootNetworkName(String name) {
-               rootNetwork.getRow(rootNetwork).set(CyRootNetwork.NAME, name);
+               CyRow row = rootNetwork.getRow(rootNetwork);
+               
+               if (!row.isSet(CyNetwork.NAME) || row.get(CyNetwork.NAME, 
String.class).isEmpty())
+                       rootNetwork.getRow(rootNetwork).set(CyNetwork.NAME, 
name);
        }
        
        private void updateSubNetworkTableNames(CyNetwork net, String name){
-               
                net.getDefaultEdgeTable().setTitle(name + " default edge");
                net.getDefaultNetworkTable().setTitle(name + " default 
network");
                net.getDefaultNodeTable().setTitle(name + " default 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
 2012-09-14 21:52:04 UTC (rev 30372)
+++ 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
 2012-09-17 19:49:23 UTC (rev 30373)
@@ -472,13 +472,13 @@
                        return;
                
                final CyTable table = e.getSource();
-               final CyNetwork updateNetworkName = nameTables.get(table);
+               final CyNetwork network = nameTables.get(table);
                
                // Case 1: Network name/title updated
-               if (updateNetworkName != null && 
record.getColumn().equals(CyNetwork.NAME)) {
+               if (network != null && 
record.getColumn().equals(CyNetwork.NAME)) {
                        final CyRow row = payload.iterator().next().getRow();
                        final String newTitle = row.get(CyNetwork.NAME, 
String.class);
-                       final NetworkTreeNode node = 
this.network2nodeMap.get(updateNetworkName);
+                       final NetworkTreeNode node = 
this.network2nodeMap.get(network);
                        final String oldTitle = treeTableModel.getValueAt(node, 
0).toString();
 
                        if (newTitle.equals(oldTitle) == false) {
@@ -561,9 +561,9 @@
        private void addNetwork(final CyNetwork network) {
                // first see if it is not in the tree already
                if (this.network2nodeMap.get(network) == null) {
-
                        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) {
@@ -572,7 +572,8 @@
                        }
 
                        if (parentTreeNode == null){
-                               parentTreeNode = new 
NetworkTreeNode(parentNetwork.getRow(parentNetwork).get(CyNetwork.NAME, 
String.class) , parentNetwork);
+                               final String rootNetName = 
parentNetwork.getRow(parentNetwork).get(CyNetwork.NAME, String.class);
+                               parentTreeNode = new 
NetworkTreeNode(rootNetName, parentNetwork);
                                
nameTables.put(parentNetwork.getDefaultNetworkTable(), parentNetwork);
                                network2nodeMap.put(parentNetwork, 
parentTreeNode);
                        }

Modified: 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
===================================================================
--- 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
   2012-09-14 21:52:04 UTC (rev 30372)
+++ 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
   2012-09-17 19:49:23 UTC (rev 30373)
@@ -524,18 +524,27 @@
                SwingUtilities.invokeLater(new Runnable() {
                        @Override
                        public void run() {
-                               updateNetworkNameColumn(records, source);
+                               updateNetworkViewTitle(records, source);
                        }
                });
        }
        
-       private final void updateNetworkNameColumn(final 
Collection<RowSetRecord> records, final CyTable source) {
+       private final void updateNetworkViewTitle(final 
Collection<RowSetRecord> records, final CyTable source) {
                for (final RowSetRecord record : records) {
-                       // assume payload collection is for same column
-                       for (JInternalFrame targetIF : iFrameMap.keySet()) {
-                               if 
(iFrameMap.get(targetIF).getModel().getDefaultNetworkTable().equals(source)) {
-                                       
targetIF.setTitle(record.getRow().get(CyNetwork.NAME, String.class));
-                                       return; // assuming just one row is set.
+                       if (CyNetwork.NAME.equals(record.getColumn())) {
+                               // assume payload collection is for same column
+                               for (final JInternalFrame targetIF : 
iFrameMap.keySet()) {
+                                       final CyNetworkView view = 
iFrameMap.get(targetIF);
+                                       final CyNetwork net = view.getModel();
+                                       
+                                       if 
(net.getDefaultNetworkTable().equals(source)) {
+                                               final String title = 
record.getRow().get(CyNetwork.NAME, String.class);
+                                               targetIF.setTitle(title);
+                                               // We should guarantee this 
visual property is up to date as well
+                                               
view.setVisualProperty(BasicVisualLexicon.NETWORK_TITLE, title);
+                                               
+                                               return; // assuming just one 
row is set.
+                                       }
                                }
                        }
                }

-- 
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.

Reply via email to