diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java b/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java index 8cb417e611145d1124fdb9c2dfa5948295d7b8be..35f5c1ce67dc5170b2ee415fc2343b291f7c2dc7 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java @@ -32,7 +32,6 @@ import org.cytoscape.model.CyNetworkManager; import org.cytoscape.model.events.AddedEdgesListener; import org.cytoscape.model.events.ColumnCreatedListener; import org.cytoscape.model.events.ColumnDeletedListener; -import org.cytoscape.model.events.NetworkAddedListener; import org.cytoscape.model.events.RemovedEdgesListener; import org.cytoscape.model.subnetwork.CyRootNetworkManager; import org.cytoscape.service.util.AbstractCyActivator; @@ -90,6 +89,7 @@ public class CyActivator extends AbstractCyActivator { CyCore.continuousMappingFactory = getService(context,VisualMappingFunctionFactory.class, "(mapping.type=continuous)"); CyCore.rootNetworkManager = getService(context,CyRootNetworkManager.class); CyCore.applyVisualStyleTaskFactory = getService(context,ApplyVisualStyleTaskFactory.class); + //Not sure how to correctly infer arguments here CyCore.renderingEngineFactory = getService(context,RenderingEngineFactory.class); CyCore.cloneNetworkTaskFactory = getService(context,CloneNetworkTaskFactory.class); @@ -114,7 +114,6 @@ public class CyActivator extends AbstractCyActivator { //Listener for Network-Changes -> Updating possible columns for mapping NetChangeListener netChangeListener = new NetChangeListener(mainPanel.getColumnMapper()); - registerService(context,netChangeListener, NetworkAddedListener.class, new Properties()); registerService(context,netChangeListener, AddedEdgesListener.class, new Properties()); registerService(context,netChangeListener, RemovedEdgesListener.class, new Properties()); registerService(context,netChangeListener, ColumnCreatedListener.class, new Properties()); diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java index 0cdd0cd7a88a9546e0515392722ce00e1a4b1991..58ec22117215531a4dc0af61245007d8fe470329 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java @@ -161,14 +161,12 @@ public class AlgorithmTask extends AbstractTask { result = ca.run(); taskMonitor.setProgress(0.9); - if (result == null) { - throw new Exception(LocalizationManager.get("noFeasible")); - } + + checkForInvalidSolutions(result); + long numberOfSolutions = result.getNumberOfSolutions(); - if (numberOfSolutions == 0) { - throw new Exception(LocalizationManager.get("noFeasible")); - } + taskMonitor.setStatusMessage("Found: "+numberOfSolutions+" solutions!"); //TODO localize YoshikoResult yoshikoResult = new YoshikoResult(); @@ -233,6 +231,25 @@ public class AlgorithmTask extends AbstractTask { } + private void checkForInvalidSolutions(ClusterEditingSolutions result) throws Exception { + if (result == null) { + //There was no result object generated at all + throw new Exception(LocalizationManager.get("noFeasible")); + } + + if (result.getNumberOfSolutions() == 0) { + //The result object is empty + throw new Exception(LocalizationManager.get("noFeasible")); + } + if (result.getNumberOfSolutions() == 1) { + //The result doesn't contain any clusters + if (result.getNumberOfClusters(0) == 0) { + throw new Exception(LocalizationManager.get("noFeasible")); + } + } + + } + @Override public void cancel() { //Free C++ resources diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java index 9a9e48ca36cbdc7c42246efca44b1cd250603c38..1ada0eafb38400c7b783570d991156c6255d6cee 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java @@ -29,8 +29,6 @@ import org.cytoscape.model.events.ColumnCreatedEvent; import org.cytoscape.model.events.ColumnCreatedListener; import org.cytoscape.model.events.ColumnDeletedEvent; import org.cytoscape.model.events.ColumnDeletedListener; -import org.cytoscape.model.events.NetworkAddedEvent; -import org.cytoscape.model.events.NetworkAddedListener; import org.cytoscape.model.events.RemovedEdgesEvent; import org.cytoscape.model.events.RemovedEdgesListener; import org.cytoscape.session.events.SessionLoadedEvent; @@ -40,7 +38,6 @@ import de.hhu.ba.yoshikoWrapper.gui.ColumnMapper; public class NetChangeListener implements //everything -NetworkAddedListener, AddedEdgesListener, RemovedEdgesListener, ColumnCreatedListener, @@ -56,27 +53,48 @@ SetCurrentNetworkListener @Override public void handleEvent(ColumnDeletedEvent e) { - columnMapper.updateValues(); + if ( + e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultEdgeTable() || + e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultNetworkTable() || + e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultNodeTable() + + ) + { + columnMapper.updateValues(); + } } @Override public void handleEvent(ColumnCreatedEvent e) { - columnMapper.updateValues(); + if ( + e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultEdgeTable() || + e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultNetworkTable() || + e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultNodeTable() + + ) + { + columnMapper.updateValues(); + } } @Override public void handleEvent(RemovedEdgesEvent e) { - columnMapper.updateValues(); + if ( + e.getSource() == CyCore.cy.getCurrentNetwork() + ) + { + columnMapper.updateValues(); + } } @Override public void handleEvent(AddedEdgesEvent e) { - columnMapper.updateValues(); - } - - @Override - public void handleEvent(NetworkAddedEvent e) { - columnMapper.updateValues(); + if ( + e.getSource() == CyCore.cy.getCurrentNetwork() + ) + { + columnMapper.updateValues(); + } } @Override diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/FormatHelper.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/FormatHelper.java index a4cf3e708dc4d173f9fdd9b8daead3bb1852fb78..3d3733f6a86ec5f1fe49b3330b5ee04aac88232d 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/FormatHelper.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/FormatHelper.java @@ -45,7 +45,7 @@ public class FormatHelper { public static NumberFormatter getDoubleFormatter(double minValue, double maxValue) { NumberFormat format = DecimalFormat.getInstance(); - format.setMaximumFractionDigits(12); + format.setMaximumFractionDigits(Integer.MAX_VALUE); NumberFormatter formatter = new NumberFormatter(format); formatter.setValueClass(Double.class); formatter.setMinimum(minValue);