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 02017a8501bff1c9ce5d0dc39c5a1f6dfc6aefd1..b859a2edb64e55e982d7ddb3dd124389d2f79a50 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 0000000000000000000000000000000000000000..b10c96e8273e345d2d46edc160aee48e2613174d
--- /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;
+    }
+}