Skip to content
Snippets Groups Projects
Commit 0fe331fa authored by unknown's avatar unknown
Browse files

implemented a way better display of the solution

parent 769f86cd
No related branches found
No related tags found
No related merge requests found
...@@ -22,8 +22,15 @@ ...@@ -22,8 +22,15 @@
package de.hhu.ba.yoshikoWrapper.tasks; package de.hhu.ba.yoshikoWrapper.tasks;
import java.awt.Window; import java.awt.Window;
import java.util.List;
import java.util.Properties;
import de.hhu.ba.yoshikoWrapper.core.CyCore;
import de.hhu.ba.yoshikoWrapper.yoshikoAlgorithm.YoshikoAlgoritmController; import de.hhu.ba.yoshikoWrapper.yoshikoAlgorithm.YoshikoAlgoritmController;
import org.cytoscape.application.swing.CytoPanel;
import org.cytoscape.application.swing.CytoPanelComponent;
import org.cytoscape.application.swing.CytoPanelName;
import org.cytoscape.application.swing.CytoPanelState;
import org.cytoscape.work.AbstractTask; import org.cytoscape.work.AbstractTask;
import org.cytoscape.work.ContainsTunables; import org.cytoscape.work.ContainsTunables;
import org.cytoscape.work.TaskMonitor; import org.cytoscape.work.TaskMonitor;
...@@ -34,6 +41,8 @@ import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoResult; ...@@ -34,6 +41,8 @@ import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoResult;
import de.hhu.ba.yoshikoWrapper.logging.YoshikoLogger; import de.hhu.ba.yoshikoWrapper.logging.YoshikoLogger;
import de.hhu.ba.yoshikoWrapper.swing.components.ResultPanel; import de.hhu.ba.yoshikoWrapper.swing.components.ResultPanel;
import javax.swing.*;
public class AlgorithmTask extends AbstractTask { public class AlgorithmTask extends AbstractTask {
...@@ -85,7 +94,9 @@ public class AlgorithmTask extends AbstractTask { ...@@ -85,7 +94,9 @@ public class AlgorithmTask extends AbstractTask {
throw new Exception("CoreAlgorithm called on a net that is NULL!"); //TODO: Localize throw new Exception("CoreAlgorithm called on a net that is NULL!"); //TODO: Localize
} }
YoshikoAlgoritmController yoshikoAlgoritmController = new YoshikoAlgoritmController(parameterSet, taskMonitor); result = new YoshikoResult(parameterSet.net);
YoshikoAlgoritmController yoshikoAlgoritmController = new YoshikoAlgoritmController(parameterSet, taskMonitor, result);
yoshikoAlgoritmController.controllAlgorithm(); yoshikoAlgoritmController.controllAlgorithm();
taskMonitor.setProgress(1); taskMonitor.setProgress(1);
...@@ -127,8 +138,8 @@ public class AlgorithmTask extends AbstractTask { ...@@ -127,8 +138,8 @@ public class AlgorithmTask extends AbstractTask {
//Generate solutionsPanel*/ //Generate solutionsPanel*/
//resultPanel = new ResultPanel(result); resultPanel = new ResultPanel(result);
/*
//Show solution panel //Show solution panel
CyCore.registrar.registerService(resultPanel, CytoPanelComponent.class, new Properties()); CyCore.registrar.registerService(resultPanel, CytoPanelComponent.class, new Properties());
//Focus solution panel //Focus solution panel
...@@ -146,8 +157,8 @@ public class AlgorithmTask extends AbstractTask { ...@@ -146,8 +157,8 @@ public class AlgorithmTask extends AbstractTask {
} }
} }
); );
//eastPanel.getThisComponent().revalidate(); eastPanel.getThisComponent().revalidate();
*/
} }
......
...@@ -4,6 +4,8 @@ import de.hhu.ba.yoshikoWrapper.core.CyCore; ...@@ -4,6 +4,8 @@ import de.hhu.ba.yoshikoWrapper.core.CyCore;
import de.hhu.ba.yoshikoWrapper.core.ParameterSet; import de.hhu.ba.yoshikoWrapper.core.ParameterSet;
import de.hhu.ba.yoshikoWrapper.cytoUtil.NodeMap; import de.hhu.ba.yoshikoWrapper.cytoUtil.NodeMap;
import de.hhu.ba.yoshikoWrapper.cytoUtil.StyleManager; import de.hhu.ba.yoshikoWrapper.cytoUtil.StyleManager;
import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoCluster;
import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoSolution;
import org.cytoscape.model.*; import org.cytoscape.model.*;
import org.cytoscape.model.subnetwork.CyRootNetwork; import org.cytoscape.model.subnetwork.CyRootNetwork;
import org.cytoscape.model.subnetwork.CySubNetwork; import org.cytoscape.model.subnetwork.CySubNetwork;
...@@ -101,61 +103,15 @@ public final class GraphTranslator { ...@@ -101,61 +103,15 @@ public final class GraphTranslator {
return weight; return weight;
} }
public void makeCytoscapeGraph(List<List<Integer>> clusters){ public void transateClusters(List<List<Integer>> clusters, YoshikoSolution solution){
CySubNetwork resultNetwork = createNewGaph(); int i = 0;
addNodesToResultNetwork(resultNetwork);
addEdgesToResultNetwork(clusters, resultNetwork);
// createNetworkView(resultNetwork);
}
private CySubNetwork createNewGaph(){
CyRootNetwork rootNetwork = CyCore.rootNetworkManager.getRootNetwork(network);
CySubNetwork resultNetwork = rootNetwork.addSubNetwork();
CyCore.networkManager.addNetwork(resultNetwork, false);
resultNetwork.getRow(resultNetwork).set(CyNetwork.NAME, "Result-Graph");
return resultNetwork;
}
private void addNodesToResultNetwork(CySubNetwork resultNetwork){
for (CyNode node : nodeMap.values()){
resultNetwork.addNode(node);
}
}
private void addEdgesToResultNetwork(List<List<Integer>> clusters, CySubNetwork resultNetwork){
for (List<Integer> cluster : clusters){ for (List<Integer> cluster : clusters){
for (Integer i : cluster){ YoshikoCluster yoshikoCluster = new YoshikoCluster(solution, i);
for (Integer j : cluster){ i++;
if (j<i){ solution.addCluster(yoshikoCluster);
addEdgeToResultNetwork(edgeArray[i][j],resultNetwork); for (Integer nodeId : cluster){
} yoshikoCluster.addNode(nodeMap.get(nodeId));
}
}
}
}
private void addEdgeToResultNetwork(YoshikoEdge yoshikoEdge, CySubNetwork resultNetwork) {
if (yoshikoEdge.suid < 0) {
CyNode node1 = nodeMap.get(yoshikoEdge.source);
CyNode node2 = nodeMap.get(yoshikoEdge.target);
CyEdge edge = resultNetwork.addEdge(node1, node2, false);
} else {
resultNetwork.addEdge(network.getEdge(yoshikoEdge.suid));
} }
} }
private CyNetworkView createNetworkView(CyNetwork resultNetwork){
CyNetworkView view = CyCore.networkViewFactory.createNetworkView(resultNetwork);
CyCore.networkViewManager.addNetworkView(view,false);
return view;
} }
} }
package de.hhu.ba.yoshikoWrapper.yoshikoAlgorithm; package de.hhu.ba.yoshikoWrapper.yoshikoAlgorithm;
import de.hhu.ba.yoshikoWrapper.core.ParameterSet; import de.hhu.ba.yoshikoWrapper.core.ParameterSet;
import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoCluster;
import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoResult;
import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoSolution;
import org.cytoscape.model.CyNetwork; import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNode;
import org.cytoscape.work.TaskMonitor; import org.cytoscape.work.TaskMonitor;
import java.util.List; import java.util.List;
...@@ -12,12 +16,14 @@ public class YoshikoAlgoritmController { ...@@ -12,12 +16,14 @@ public class YoshikoAlgoritmController {
private CyNetwork network; private CyNetwork network;
private ParameterSet parameterSet; private ParameterSet parameterSet;
private TaskMonitor taskMonitor; private TaskMonitor taskMonitor;
private YoshikoResult result;
public YoshikoAlgoritmController(ParameterSet parameterSet, TaskMonitor taskMonitor){ public YoshikoAlgoritmController(ParameterSet parameterSet, TaskMonitor taskMonitor, YoshikoResult result){
this.parameterSet = parameterSet; this.parameterSet = parameterSet;
this.network = parameterSet.net; this.network = parameterSet.net;
this.k = parameterSet.clusterCount; this.k = parameterSet.clusterCount;
this.taskMonitor = taskMonitor; this.taskMonitor = taskMonitor;
this.result = result;
} }
public void controllAlgorithm(){ public void controllAlgorithm(){
...@@ -32,9 +38,10 @@ public class YoshikoAlgoritmController { ...@@ -32,9 +38,10 @@ public class YoshikoAlgoritmController {
taskMonitor.setStatusMessage("Clustering the Graph"); taskMonitor.setStatusMessage("Clustering the Graph");
clusters = clusteringAlgorithm.runClusteringAlgorithm(); clusters = clusteringAlgorithm.runClusteringAlgorithm();
taskMonitor.setStatusMessage("Makeing new Graph"); YoshikoSolution solution = new YoshikoSolution(result, 0);
translator.makeCytoscapeGraph(clusters); result.addSolution(solution);
}
taskMonitor.setStatusMessage("Processing Clusters");
translator.transateClusters(clusters, solution);
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment