From 7f45b3e3de48b241a0eed4055a7009a44690f308 Mon Sep 17 00:00:00 2001 From: Philipp Spohr <spohr.philipp@web.de> Date: Sat, 19 Aug 2017 23:39:13 +0200 Subject: [PATCH] Implemented listener for any changes and linked it with column mapper --- .../de/hhu/ba/yoshikoWrapper/CyActivator.java | 17 +++++ .../core/NetChangeListener.java | 63 +++++++++++++++++++ .../ba/yoshikoWrapper/gui/EditCostPanel.java | 4 ++ .../hhu/ba/yoshikoWrapper/gui/MainPanel.java | 6 ++ .../ba/yoshikoWrapper/gui/SolutionsPanel.java | 5 ++ 5 files changed, 95 insertions(+) create mode 100644 src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java b/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java index 3d3eef8..9593746 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java @@ -4,13 +4,20 @@ import java.util.Properties; import org.cytoscape.application.CyApplicationManager; import org.cytoscape.application.swing.CytoPanelComponent; +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.service.util.AbstractCyActivator; +import org.cytoscape.session.events.SessionLoadedListener; import org.cytoscape.work.swing.DialogTaskManager; import org.osgi.framework.BundleContext; import de.hhu.ba.yoshikoWrapper.core.ConfigurationManager; import de.hhu.ba.yoshikoWrapper.core.CyCore; import de.hhu.ba.yoshikoWrapper.core.LocalizationManager; +import de.hhu.ba.yoshikoWrapper.core.NetChangeListener; import de.hhu.ba.yoshikoWrapper.core.YoshikoLoader; import de.hhu.ba.yoshikoWrapper.gui.MainPanel; import de.hhu.ba.yoshikoWrapper.gui.SolutionsPanel; @@ -52,6 +59,16 @@ public class CyActivator extends AbstractCyActivator { MainPanel mainPanel = new MainPanel(solutionsPanel); registerService(context,mainPanel,CytoPanelComponent.class, new Properties()); registerService(context,solutionsPanel,CytoPanelComponent.class, new Properties()); + + //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()); + registerService(context,netChangeListener, ColumnDeletedListener.class, new Properties()); + registerService(context,netChangeListener, SessionLoadedListener.class, new Properties()); + } } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java new file mode 100644 index 0000000..cfb4620 --- /dev/null +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java @@ -0,0 +1,63 @@ +package de.hhu.ba.yoshikoWrapper.core; + +import org.cytoscape.model.events.AddedEdgesEvent; +import org.cytoscape.model.events.AddedEdgesListener; +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; +import org.cytoscape.session.events.SessionLoadedListener; + +import de.hhu.ba.yoshikoWrapper.gui.ColumnMapper; + +public class NetChangeListener +implements //everything +NetworkAddedListener, +AddedEdgesListener, +RemovedEdgesListener, +ColumnCreatedListener, +ColumnDeletedListener, +SessionLoadedListener +{ + private ColumnMapper columnMapper; + + public NetChangeListener(ColumnMapper columnMapper) { + this.columnMapper = columnMapper; + } + + @Override + public void handleEvent(ColumnDeletedEvent e) { + columnMapper.updateValues(); + } + + @Override + public void handleEvent(ColumnCreatedEvent e) { + columnMapper.updateValues(); + } + + @Override + public void handleEvent(RemovedEdgesEvent e) { + columnMapper.updateValues(); + } + + @Override + public void handleEvent(AddedEdgesEvent e) { + columnMapper.updateValues(); + } + + @Override + public void handleEvent(NetworkAddedEvent e) { + columnMapper.updateValues(); + } + + @Override + public void handleEvent(SessionLoadedEvent e) { + columnMapper.updateValues(); + } + +} diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java index 83284ae..aa6d26d 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java @@ -66,6 +66,10 @@ public class EditCostPanel extends ComfortPanel { return dcField.getValueAsDouble(); } + public ColumnMapper getColumnMapper() { + return columnMapper; + } + } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java index bdabdfb..805770f 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java @@ -182,6 +182,10 @@ public class MainPanel extends ComfortPanel implements CytoPanelComponent { } }; + public ColumnMapper getColumnMapper() { + return ecPanel.getColumnMapper(); + } + //GETTER / SETTER @@ -207,4 +211,6 @@ public class MainPanel extends ComfortPanel implements CytoPanelComponent { //TODO: return null; } + + } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/SolutionsPanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/SolutionsPanel.java index cb6373e..0bdba5d 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/SolutionsPanel.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/SolutionsPanel.java @@ -12,6 +12,9 @@ import org.cytoscape.application.swing.CytoPanelName; import de.hhu.ba.yoshikoWrapper.core.LocalizationManager; +/**Swing component that contains ALL solutions that are found during one run. + * Conforms to CY 3.5 by being a CytoPanelComponent which is the norm for "result" panels + */ @SuppressWarnings("serial")//Will never be serialized public class SolutionsPanel extends ComfortPanel implements CytoPanelComponent{ @@ -36,6 +39,8 @@ public class SolutionsPanel extends ComfortPanel implements CytoPanelComponent{ public void setCost(double modificationCost) { costLabel.setText(LocalizationManager.get("cost")+" "+modificationCost); + revalidate(); + repaint(); } public void reset() { -- GitLab