From 47ea8752ced35eb94e72fd2a7aae438f1ba65feb Mon Sep 17 00:00:00 2001 From: hneemann Date: Tue, 4 Jul 2017 08:11:13 +0200 Subject: [PATCH] now also the GraphDialog observes the ValueTable instead of the model --- .../gui/components/data/GraphDialog.java | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/main/java/de/neemann/digital/gui/components/data/GraphDialog.java b/src/main/java/de/neemann/digital/gui/components/data/GraphDialog.java index 3cf85bac5..17635fc84 100644 --- a/src/main/java/de/neemann/digital/gui/components/data/GraphDialog.java +++ b/src/main/java/de/neemann/digital/gui/components/data/GraphDialog.java @@ -1,9 +1,6 @@ package de.neemann.digital.gui.components.data; -import de.neemann.digital.core.Model; -import de.neemann.digital.core.ModelEvent; -import de.neemann.digital.core.ModelStateObserver; -import de.neemann.digital.core.Signal; +import de.neemann.digital.core.*; import de.neemann.digital.data.ValueTable; import de.neemann.digital.gui.SaveAsHelper; import de.neemann.digital.gui.components.OrderMerger; @@ -29,13 +26,11 @@ import java.util.List; * * @author hneemann */ -public class GraphDialog extends JDialog implements ModelStateObserver { +public class GraphDialog extends JDialog implements Observer { private static final int MAX_SAMPLE_SIZE = 1000; private final GraphComponent dsc; private final JScrollPane scrollPane; - private final Sync modelSync; private final ToolTipAction showTable; - private ValueTableObserver valueTableObserver; private static final Icon ICON_EXPAND = IconCreator.create("View-zoom-fit.png"); private static final Icon ICON_ZOOM_IN = IconCreator.create("View-zoom-in.png"); @@ -95,8 +90,6 @@ public class GraphDialog extends JDialog implements ModelStateObserver { */ private GraphDialog(JFrame owner, String title, Model model, ValueTable logData, ValueTableObserver valueTableObserver, Sync modelSync) { super(owner, title, false); - this.valueTableObserver = valueTableObserver; - this.modelSync = modelSync; setDefaultCloseOperation(DISPOSE_ON_CLOSE); setAlwaysOnTop(true); @@ -105,6 +98,8 @@ public class GraphDialog extends JDialog implements ModelStateObserver { getContentPane().add(scrollPane); dsc.setScrollPane(scrollPane); + logData.addObserver(this); + JToolBar toolBar = new JToolBar(); ToolTipAction maximize = new ToolTipAction(Lang.get("menu_maximize"), ICON_EXPAND) { @Override @@ -147,12 +142,12 @@ public class GraphDialog extends JDialog implements ModelStateObserver { addWindowListener(new WindowAdapter() { @Override public void windowOpened(WindowEvent e) { - modelSync.access(() -> model.addObserver(GraphDialog.this)); + modelSync.access(() -> model.addObserver(valueTableObserver)); } @Override public void windowClosed(WindowEvent e) { - modelSync.access(() -> model.removeObserver(GraphDialog.this)); + modelSync.access(() -> model.removeObserver(valueTableObserver)); } }); @@ -185,10 +180,7 @@ public class GraphDialog extends JDialog implements ModelStateObserver { } @Override - public void handleEvent(ModelEvent event) { - modelSync.access(() -> { - valueTableObserver.handleEvent(event); - }); + public void hasChanged() { SwingUtilities.invokeLater(() -> { dsc.revalidate(); dsc.repaint();