Changeset 427

Show
Ignore:
Timestamp:
04-06-12 21:43:54 (23 months ago)
Author:
tim.te.beek@…
Message:

Extract a class for the worker that creates new subnetworks
Remove the plural createSubnetworksForGraphs
Return the created network from the singular createSubnetworkForGraph

Location:
trunk/subnetworkcreator-plugin/src
Files:
1 added
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/subnetworkcreator-plugin/src/main/java/nl/nbic/brs/subnetworkcreator/SubnetworkCreatorUtils.java

    r422 r427  
    9797 
    9898        /** 
    99          * Create subnetworks for graphs with argument parent. View creation can be enabled using createViews. 
    100          *  
    101          * @param graphEdges 
    102          *            list with sets of CyEdges belonging to a graph for which to create a subnetwork 
    103          * @param parentNetwork 
    104          *            parent network of the new subnetwork 
    105          * @param createViews 
    106          *            whether or not to create a view for the new subnetwork 
    107          */ 
    108         public static void createSubnetworksForGraphs(final List<Set<CyEdge>> graphEdges, final CyNetwork parentNetwork, final boolean createViews) { 
    109                 // Get out the selected nodes and edges in a dubious list with list of sets 
    110                 int index = 0; 
    111                 for (Set<CyEdge> edges : graphEdges) 
    112                         createSubnetworkForGraph(edges, "graph #" + ++index, parentNetwork, createViews); 
    113  
    114         } 
    115  
    116         /** 
    11799         * Singular form of createSubnetworksForGraphs to create a single subnetwork with a given name based on edges. 
    118100         *  
     
    125107         * @param createView 
    126108         *            whether or not to create a view for the new subnetwork 
     109         * @return the created network 
    127110         */ 
    128         public static void createSubnetworkForGraph(final Set<CyEdge> edges, final String name, final CyNetwork parentNetwork, final boolean createView) { 
     111        public static CyNetwork createSubnetworkForGraph(final Set<CyEdge> edges, final String name, final CyNetwork parentNetwork, final boolean createView) { 
    129112                // Find nodes from edges 
    130113                Set<CyNode> nodes = new HashSet<CyNode>(); 
     
    135118 
    136119                // Actually create the network 
    137                 Cytoscape.createNetwork(nodes, edges, name, parentNetwork, createView); 
     120                return Cytoscape.createNetwork(nodes, edges, name, parentNetwork, createView); 
    138121        } 
    139122 
  • trunk/subnetworkcreator-plugin/src/main/java/nl/nbic/brs/subnetworkcreator/view/GraphSelectionDialog.java

    r424 r427  
    5858import nl.nbic.brs.subnetworkcreator.model.Columns; 
    5959import nl.nbic.brs.subnetworkcreator.model.DataModel; 
    60 import nl.nbic.brs.subnetworkcreator.model.GraphsTableModel; 
    6160 
    6261/** 
     
    170169                        public void actionPerformed(final ActionEvent e) { 
    171170                                // In the background create the new networks 
    172                                 final SwingWorker<Void, Void> creatorTask = new SwingWorker<Void, Void>() { 
    173                                         @Override 
    174                                         protected Void doInBackground() throws Exception { 
    175                                                 // Get values we'll use from data 
    176                                                 final int[] selectedRows = data.getSelectedGraphsModel().getSelectedRows(); 
    177                                                 GraphsTableModel tableModel = data.getGraphsTableModel(); 
    178                                                 CyNetwork parentNetwork = data.getSelectedNetworkModel().getSelectedItem(); 
    179                                                 boolean createViews = data.getCreateViewsButtonModel().isSelected(); 
    180  
    181                                                 int index = 0; 
    182                                                 for (int row : selectedRows) { 
    183                                                         // Check to see if we were canceled or interrupted 
    184                                                         if (isCancelled()) 
    185                                                                 break; 
    186                                                         if (Thread.interrupted()) 
    187                                                                 break; 
    188  
    189                                                         // Extract edges from table and create subnetwork 
    190                                                         @SuppressWarnings("unchecked") 
    191                                                         Set<CyEdge> edges = (Set<CyEdge>) tableModel.getValueAt(row, Columns.EDGES.ordinal()); 
    192  
    193                                                         // Generate a title for the new subnetwork that gives some details about the contents 
    194                                                         int nrSource = tableModel.getValueAt(row, Columns.SOURCE.ordinal()).size(); 
    195                                                         int nrTarget = tableModel.getValueAt(row, Columns.TARGET.ordinal()).size(); 
    196                                                         int nrEdges = edges.size(); 
    197                                                         String title = String.format("s%d t%d e%d", nrSource, nrTarget, nrEdges); 
    198  
    199                                                         // Create subnetwork 
    200                                                         SubnetworkCreatorUtils.createSubnetworkForGraph(edges, title, parentNetwork, createViews); 
    201  
    202                                                         // Report on progress for the progressMonitor 
    203                                                         setProgress(++index * 100 / selectedRows.length); 
    204                                                 } 
    205                                                 return null; 
    206                                         } 
    207  
    208                                         @Override 
    209                                         protected void done() { 
    210                                                 // Do not do anything when canceled 
    211                                                 if (isCancelled()) 
    212                                                         return; 
    213  
    214                                                 // Call get so any potential error raised is found and logged 
    215                                                 try { 
    216                                                         get(); 
    217                                                 } 
    218                                                 catch (InterruptedException ex) { 
    219                                                         ex.printStackTrace(); 
    220                                                 } 
    221                                                 catch (ExecutionException ex) { 
    222                                                         ex.printStackTrace(); 
    223                                                 } 
    224                                         } 
    225                                 }; 
     171                                final CreateSubnetworksWorker creatorTask = new CreateSubnetworksWorker(data); 
    226172 
    227173                                // Create new progressMonitor on EDT and add a propertyChanceListener to creatorTask that updates it 
     
    285231                                                } 
    286232 
     233                                                // TODO Twan would instead like to be able to see what identifiers map to which clusters 
    287234                                                SubnetworkCreatorUtils.exportSelectionToFile(graphEdges, saveFile); 
    288235                                                return null; 
  • trunk/subnetworkcreator-plugin/src/test/java/nl/nbic/brs/subnetworkcreator/TestSubnetworkCreatorUtils.java

    r425 r427  
    8383                // Get graphs, create subnetworks, and assure there are 1 + 188 networks 
    8484                List<Set<CyEdge>> graphsInNetwork = SubnetworkCreatorUtils.getGraphsInNetwork(network); 
    85                 SubnetworkCreatorUtils.createSubnetworksForGraphs(graphsInNetwork, network, false); 
     85                int index = 0; 
     86                for (Set<CyEdge> edges : graphsInNetwork) 
     87                        SubnetworkCreatorUtils.createSubnetworkForGraph(edges, "graph #" + ++index, network, false); 
    8688                Assert.assertEquals(189, Cytoscape.getNetworkSet().size()); 
    8789        }