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 @@
package de.hhu.ba.yoshikoWrapper.tasks;
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 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.ContainsTunables;
import org.cytoscape.work.TaskMonitor;
......@@ -34,6 +41,8 @@ import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoResult;
import de.hhu.ba.yoshikoWrapper.logging.YoshikoLogger;
import de.hhu.ba.yoshikoWrapper.swing.components.ResultPanel;
import javax.swing.*;
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
}
YoshikoAlgoritmController yoshikoAlgoritmController = new YoshikoAlgoritmController(parameterSet, taskMonitor);
result = new YoshikoResult(parameterSet.net);
YoshikoAlgoritmController yoshikoAlgoritmController = new YoshikoAlgoritmController(parameterSet, taskMonitor, result);
yoshikoAlgoritmController.controllAlgorithm();
taskMonitor.setProgress(1);
......@@ -127,8 +138,8 @@ public class AlgorithmTask extends AbstractTask {
//Generate solutionsPanel*/
//resultPanel = new ResultPanel(result);
/*
resultPanel = new ResultPanel(result);
//Show solution panel
CyCore.registrar.registerService(resultPanel, CytoPanelComponent.class, new Properties());
//Focus solution panel
......@@ -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;
import de.hhu.ba.yoshikoWrapper.core.ParameterSet;
import de.hhu.ba.yoshikoWrapper.cytoUtil.NodeMap;
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.subnetwork.CyRootNetwork;
import org.cytoscape.model.subnetwork.CySubNetwork;
......@@ -101,61 +103,15 @@ public final class GraphTranslator {
return weight;
}
public void makeCytoscapeGraph(List<List<Integer>> clusters){
CySubNetwork resultNetwork = createNewGaph();
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){
public void transateClusters(List<List<Integer>> clusters, YoshikoSolution solution){
int i = 0;
for (List<Integer> cluster : clusters){
for (Integer i : cluster){
for (Integer j : cluster){
if (j<i){
addEdgeToResultNetwork(edgeArray[i][j],resultNetwork);
}
}
}
}
}
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));
YoshikoCluster yoshikoCluster = new YoshikoCluster(solution, i);
i++;
solution.addCluster(yoshikoCluster);
for (Integer nodeId : cluster){
yoshikoCluster.addNode(nodeMap.get(nodeId));
}
}
private CyNetworkView createNetworkView(CyNetwork resultNetwork){
CyNetworkView view = CyCore.networkViewFactory.createNetworkView(resultNetwork);
CyCore.networkViewManager.addNetworkView(view,false);
return view;
}
}
package de.hhu.ba.yoshikoWrapper.yoshikoAlgorithm;
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.CyNode;
import org.cytoscape.work.TaskMonitor;
import java.util.List;
......@@ -12,12 +16,14 @@ public class YoshikoAlgoritmController {
private CyNetwork network;
private ParameterSet parameterSet;
private TaskMonitor taskMonitor;
private YoshikoResult result;
public YoshikoAlgoritmController(ParameterSet parameterSet, TaskMonitor taskMonitor){
public YoshikoAlgoritmController(ParameterSet parameterSet, TaskMonitor taskMonitor, YoshikoResult result){
this.parameterSet = parameterSet;
this.network = parameterSet.net;
this.k = parameterSet.clusterCount;
this.taskMonitor = taskMonitor;
this.result = result;
}
public void controllAlgorithm(){
......@@ -32,9 +38,10 @@ public class YoshikoAlgoritmController {
taskMonitor.setStatusMessage("Clustering the Graph");
clusters = clusteringAlgorithm.runClusteringAlgorithm();
taskMonitor.setStatusMessage("Makeing new Graph");
translator.makeCytoscapeGraph(clusters);
}
YoshikoSolution solution = new YoshikoSolution(result, 0);
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