Changeset 427


Ignore:
Timestamp:
Jun 4, 2012, 9:43:54 PM (5 years 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 edited

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        }
Note: See TracChangeset for help on using the changeset viewer.