From 9ee50dba4f26387c4c15ae4af614b9588c0728a8 Mon Sep 17 00:00:00 2001 From: Daniel Schramm <xschramm@fi.muni.cz> Date: Sun, 12 Sep 2021 22:52:03 +0200 Subject: [PATCH] Action event extended to carry additional data --- .../fidentis/analyst/core/ControlPanel.java | 14 +++++++++ .../analyst/core/LoadedActionEvent.java | 31 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 GUI/src/main/java/cz/fidentis/analyst/core/LoadedActionEvent.java diff --git a/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanel.java b/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanel.java index 02017a85..b859a2ed 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanel.java +++ b/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanel.java @@ -58,4 +58,18 @@ public abstract class ControlPanel extends JPanel { } }; } + + protected final ActionListener createListener(ActionListener action, String command, Object data) { + return new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + action.actionPerformed(new LoadedActionEvent( + e.getSource(), + ActionEvent.ACTION_PERFORMED, + command, + data) + ); + } + }; + } } diff --git a/GUI/src/main/java/cz/fidentis/analyst/core/LoadedActionEvent.java b/GUI/src/main/java/cz/fidentis/analyst/core/LoadedActionEvent.java new file mode 100644 index 00000000..b10c96e8 --- /dev/null +++ b/GUI/src/main/java/cz/fidentis/analyst/core/LoadedActionEvent.java @@ -0,0 +1,31 @@ +package cz.fidentis.analyst.core; + +import java.awt.event.ActionEvent; + +/** + * + * @author Daniel Schramm + */ +public class LoadedActionEvent extends ActionEvent { + + private final Object data; + + public LoadedActionEvent(Object source, int id, String command, Object data) { + super(source, id, command); + this.data = data; + } + + public LoadedActionEvent(Object source, int id, String command, int modifiers, Object data) { + super(source, id, command, modifiers); + this.data = data; + } + + public LoadedActionEvent(Object source, int id, String command, long when, int modifiers, Object data) { + super(source, id, command, when, modifiers); + this.data = data; + } + + public Object getData() { + return data; + } +} -- GitLab