From 945fa0cb4d9fdc7ad8d1f4331742349f556c2559 Mon Sep 17 00:00:00 2001 From: ffffatgoose Date: Thu, 25 Jul 2019 15:52:05 +0800 Subject: [PATCH 1/8] distinguish button and menu --- .../org/jabref/gui/actions/ActionFactory.java | 8 +++---- .../org/jabref/gui/actions/JabRefAction.java | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jabref/gui/actions/ActionFactory.java b/src/main/java/org/jabref/gui/actions/ActionFactory.java index 60625d13a1a..7e8b8cf6ad8 100644 --- a/src/main/java/org/jabref/gui/actions/ActionFactory.java +++ b/src/main/java/org/jabref/gui/actions/ActionFactory.java @@ -74,7 +74,7 @@ private static Label getAssociatedNode(MenuItem menuItem) { } public MenuItem configureMenuItem(Action action, Command command, MenuItem menuItem) { - ActionUtils.configureMenuItem(new JabRefAction(action, command, keyBindingRepository), menuItem); + ActionUtils.configureMenuItem(new JabRefAction(action, command, keyBindingRepository, "Menu"), menuItem); setGraphic(menuItem, action); // Show tooltips @@ -105,7 +105,7 @@ public MenuItem createMenuItem(Action action, Command command) { } public CheckMenuItem createCheckMenuItem(Action action, Command command, boolean selected) { - CheckMenuItem checkMenuItem = ActionUtils.createCheckMenuItem(new JabRefAction(action, command, keyBindingRepository)); + CheckMenuItem checkMenuItem = ActionUtils.createCheckMenuItem(new JabRefAction(action, command, keyBindingRepository, "Menu")); checkMenuItem.setSelected(selected); setGraphic(checkMenuItem, action); @@ -127,7 +127,7 @@ public Menu createSubMenu(Action action, MenuItem... children) { } public Button createIconButton(Action action, Command command) { - Button button = ActionUtils.createButton(new JabRefAction(action, command, keyBindingRepository), ActionUtils.ActionTextBehavior.HIDE); + Button button = ActionUtils.createButton(new JabRefAction(action, command, keyBindingRepository, "Button"), ActionUtils.ActionTextBehavior.HIDE); button.getStyleClass().setAll("icon-button"); @@ -140,7 +140,7 @@ public Button createIconButton(Action action, Command command) { public ButtonBase configureIconButton(Action action, Command command, ButtonBase button) { ActionUtils.configureButton( - new JabRefAction(action, command, keyBindingRepository), + new JabRefAction(action, command, keyBindingRepository, "Button"), button, ActionUtils.ActionTextBehavior.HIDE); diff --git a/src/main/java/org/jabref/gui/actions/JabRefAction.java b/src/main/java/org/jabref/gui/actions/JabRefAction.java index de4c8983ecd..1ed08c3a398 100644 --- a/src/main/java/org/jabref/gui/actions/JabRefAction.java +++ b/src/main/java/org/jabref/gui/actions/JabRefAction.java @@ -38,6 +38,27 @@ public JabRefAction(Action action, Command command, KeyBindingRepository keyBind } } + /** + * especially for the track execute when the action run the same function but from different source. + * @param source is a string contains the source, for example "button" + */ + public JabRefAction(Action action, Command command, KeyBindingRepository keyBindingRepository, String source) { + this(action, keyBindingRepository); + + setEventHandler(event -> { + command.execute(); + trackExecute(getActionName(action, command) + "From" + source); + System.out.println(getActionName(action, command) + "From" + source); + }); + + disabledProperty().bind(command.executableProperty().not()); + + if (command instanceof SimpleCommand) { + SimpleCommand ourCommand = (SimpleCommand) command; + longTextProperty().bind(Bindings.concat(action.getDescription(), ourCommand.statusMessageProperty())); + } + } + private String getActionName(Action action, Command command) { if (command.getClass().isAnonymousClass()) { return action.getText(); From 5a81b90b6f6bae291f8aed5afb5a29ab7bde20d7 Mon Sep 17 00:00:00 2001 From: ffffatgoose Date: Fri, 26 Jul 2019 12:22:46 +0800 Subject: [PATCH 2/8] reuse enum-Actions to distinguish user actions --- src/main/java/org/jabref/gui/JabRefFrame.java | 6 ++++++ src/main/java/org/jabref/gui/actions/Actions.java | 2 +- .../java/org/jabref/gui/actions/JabRefAction.java | 11 +++++++++-- .../jabref/gui/actions/OldDatabaseCommandWrapper.java | 4 ++++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/jabref/gui/JabRefFrame.java b/src/main/java/org/jabref/gui/JabRefFrame.java index 9922adca817..1d5930d793b 100644 --- a/src/main/java/org/jabref/gui/JabRefFrame.java +++ b/src/main/java/org/jabref/gui/JabRefFrame.java @@ -1240,6 +1240,12 @@ public EditAction(Actions command) { this.command = command; } + @Override + public String toString() { + // TODO Auto-generated method stub + return this.command.toString(); + } + @Override public void execute() { Node focusOwner = mainStage.getScene().getFocusOwner(); diff --git a/src/main/java/org/jabref/gui/actions/Actions.java b/src/main/java/org/jabref/gui/actions/Actions.java index 5348e3394ae..4af045d8b9f 100644 --- a/src/main/java/org/jabref/gui/actions/Actions.java +++ b/src/main/java/org/jabref/gui/actions/Actions.java @@ -3,7 +3,7 @@ /** * Global String constants for GUI actions */ -@Deprecated +//@Deprecated public enum Actions { ABBREVIATE_ISO, diff --git a/src/main/java/org/jabref/gui/actions/JabRefAction.java b/src/main/java/org/jabref/gui/actions/JabRefAction.java index 1ed08c3a398..ed06f9d68c1 100644 --- a/src/main/java/org/jabref/gui/actions/JabRefAction.java +++ b/src/main/java/org/jabref/gui/actions/JabRefAction.java @@ -48,7 +48,6 @@ public JabRefAction(Action action, Command command, KeyBindingRepository keyBind setEventHandler(event -> { command.execute(); trackExecute(getActionName(action, command) + "From" + source); - System.out.println(getActionName(action, command) + "From" + source); }); disabledProperty().bind(command.executableProperty().not()); @@ -63,7 +62,15 @@ private String getActionName(Action action, Command command) { if (command.getClass().isAnonymousClass()) { return action.getText(); } else { - return command.getClass().getSimpleName(); + String ans = command.getClass().getSimpleName(); + if (ans.contains("OldDatabaseCommandWrapper")) { + OldDatabaseCommandWrapper tmp = (OldDatabaseCommandWrapper) command; + return tmp.getActions().toString(); + } else if (ans.contains("EditAction")) { + return command.toString(); + } else { + return command.getClass().getSimpleName(); + } } } diff --git a/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java b/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java index 58a702e4190..ccad708367f 100644 --- a/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java +++ b/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java @@ -51,6 +51,10 @@ public double getProgress() { return 0; } + public Actions getActions() { + return this.command; + } + @Override public ReadOnlyDoubleProperty progressProperty() { return null; From 1863772695e9be42d83350dbcdb5fed1744273ec Mon Sep 17 00:00:00 2001 From: ffffatgoose Date: Sat, 27 Jul 2019 00:24:32 +0800 Subject: [PATCH 3/8] avoid duplicating code in JabRefAction --- .../org/jabref/gui/actions/JabRefAction.java | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/jabref/gui/actions/JabRefAction.java b/src/main/java/org/jabref/gui/actions/JabRefAction.java index ed06f9d68c1..46bddb7b892 100644 --- a/src/main/java/org/jabref/gui/actions/JabRefAction.java +++ b/src/main/java/org/jabref/gui/actions/JabRefAction.java @@ -4,6 +4,7 @@ import org.jabref.Globals; import org.jabref.gui.keyboard.KeyBindingRepository; +import org.jabref.model.strings.StringUtil; import de.saxsys.mvvmfx.utils.commands.Command; @@ -23,19 +24,7 @@ public JabRefAction(Action action, KeyBindingRepository keyBindingRepository) { } public JabRefAction(Action action, Command command, KeyBindingRepository keyBindingRepository) { - this(action, keyBindingRepository); - - setEventHandler(event -> { - command.execute(); - trackExecute(getActionName(action, command)); - }); - - disabledProperty().bind(command.executableProperty().not()); - - if (command instanceof SimpleCommand) { - SimpleCommand ourCommand = (SimpleCommand) command; - longTextProperty().bind(Bindings.concat(action.getDescription(), ourCommand.statusMessageProperty())); - } + this(action, command, keyBindingRepository, null); } /** @@ -47,7 +36,11 @@ public JabRefAction(Action action, Command command, KeyBindingRepository keyBind setEventHandler(event -> { command.execute(); - trackExecute(getActionName(action, command) + "From" + source); + if (StringUtil.isNullOrEmpty(source)) { + trackExecute(getActionName(action, command)); + } else { + trackExecute(getActionName(action, command) + "From" + source); + } }); disabledProperty().bind(command.executableProperty().not()); From 69002a497ce7052a7c261dc4c15a1c60dfdb135d Mon Sep 17 00:00:00 2001 From: ffffatgoose Date: Wed, 7 Aug 2019 17:21:49 +0800 Subject: [PATCH 4/8] updateforcrash --- src/main/java/org/jabref/gui/JabRefFrame.java | 1 - .../java/org/jabref/gui/actions/Actions.java | 2 +- .../org/jabref/gui/actions/JabRefAction.java | 18 ++++++++++++------ .../gui/actions/OldDatabaseCommandWrapper.java | 9 +++++++-- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/jabref/gui/JabRefFrame.java b/src/main/java/org/jabref/gui/JabRefFrame.java index 1d5930d793b..7598374fb1f 100644 --- a/src/main/java/org/jabref/gui/JabRefFrame.java +++ b/src/main/java/org/jabref/gui/JabRefFrame.java @@ -1242,7 +1242,6 @@ public EditAction(Actions command) { @Override public String toString() { - // TODO Auto-generated method stub return this.command.toString(); } diff --git a/src/main/java/org/jabref/gui/actions/Actions.java b/src/main/java/org/jabref/gui/actions/Actions.java index 4af045d8b9f..5348e3394ae 100644 --- a/src/main/java/org/jabref/gui/actions/Actions.java +++ b/src/main/java/org/jabref/gui/actions/Actions.java @@ -3,7 +3,7 @@ /** * Global String constants for GUI actions */ -//@Deprecated +@Deprecated public enum Actions { ABBREVIATE_ISO, diff --git a/src/main/java/org/jabref/gui/actions/JabRefAction.java b/src/main/java/org/jabref/gui/actions/JabRefAction.java index 46bddb7b892..90f42ede713 100644 --- a/src/main/java/org/jabref/gui/actions/JabRefAction.java +++ b/src/main/java/org/jabref/gui/actions/JabRefAction.java @@ -40,6 +40,7 @@ public JabRefAction(Action action, Command command, KeyBindingRepository keyBind trackExecute(getActionName(action, command)); } else { trackExecute(getActionName(action, command) + "From" + source); + System.out.println(getActionName(action, command) + "From" + source); } }); @@ -55,15 +56,20 @@ private String getActionName(Action action, Command command) { if (command.getClass().isAnonymousClass()) { return action.getText(); } else { - String ans = command.getClass().getSimpleName(); - if (ans.contains("OldDatabaseCommandWrapper")) { - OldDatabaseCommandWrapper tmp = (OldDatabaseCommandWrapper) command; - return tmp.getActions().toString(); - } else if (ans.contains("EditAction")) { + String commandName = command.getClass().getSimpleName(); + if ((command instanceof OldDatabaseCommandWrapper) || commandName.contains("EditAction")) { return command.toString(); } else { - return command.getClass().getSimpleName(); + return commandName; } + // if (ans.contains("OldDatabaseCommandWrapper")) { + // OldDatabaseCommandWrapper tmp = (OldDatabaseCommandWrapper) command; + // return tmp.getActions().toString(); + // } else if (ans.contains("EditAction")) { + // return command.toString(); + // } else { + // return command.getClass().getSimpleName(); + // } } } diff --git a/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java b/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java index ccad708367f..e7dc68736e5 100644 --- a/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java +++ b/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java @@ -51,8 +51,13 @@ public double getProgress() { return 0; } - public Actions getActions() { - return this.command; +// public Actions getActions() { +// return this.command; +// } + + @Override + public String toString() { + return this.command.toString(); } @Override From 88dbc74f1be9a719b66cd2261334ca2254a055e8 Mon Sep 17 00:00:00 2001 From: ffffatgoose Date: Fri, 9 Aug 2019 10:02:54 +0800 Subject: [PATCH 5/8] fixExceptClassActions --- .../org/jabref/gui/actions/ActionFactory.java | 8 ++--- .../org/jabref/gui/actions/JabRefAction.java | 31 ++++++++++--------- .../jabref/gui/actions/OldCommandWrapper.java | 5 +++ .../java/org/jabref/gui/actions/Sources.java | 8 +++++ 4 files changed, 33 insertions(+), 19 deletions(-) create mode 100644 src/main/java/org/jabref/gui/actions/Sources.java diff --git a/src/main/java/org/jabref/gui/actions/ActionFactory.java b/src/main/java/org/jabref/gui/actions/ActionFactory.java index 7e8b8cf6ad8..f0d8ec8703f 100644 --- a/src/main/java/org/jabref/gui/actions/ActionFactory.java +++ b/src/main/java/org/jabref/gui/actions/ActionFactory.java @@ -74,7 +74,7 @@ private static Label getAssociatedNode(MenuItem menuItem) { } public MenuItem configureMenuItem(Action action, Command command, MenuItem menuItem) { - ActionUtils.configureMenuItem(new JabRefAction(action, command, keyBindingRepository, "Menu"), menuItem); + ActionUtils.configureMenuItem(new JabRefAction(action, command, keyBindingRepository, Sources.FromMenu), menuItem); setGraphic(menuItem, action); // Show tooltips @@ -105,7 +105,7 @@ public MenuItem createMenuItem(Action action, Command command) { } public CheckMenuItem createCheckMenuItem(Action action, Command command, boolean selected) { - CheckMenuItem checkMenuItem = ActionUtils.createCheckMenuItem(new JabRefAction(action, command, keyBindingRepository, "Menu")); + CheckMenuItem checkMenuItem = ActionUtils.createCheckMenuItem(new JabRefAction(action, command, keyBindingRepository, Sources.FromMenu)); checkMenuItem.setSelected(selected); setGraphic(checkMenuItem, action); @@ -127,7 +127,7 @@ public Menu createSubMenu(Action action, MenuItem... children) { } public Button createIconButton(Action action, Command command) { - Button button = ActionUtils.createButton(new JabRefAction(action, command, keyBindingRepository, "Button"), ActionUtils.ActionTextBehavior.HIDE); + Button button = ActionUtils.createButton(new JabRefAction(action, command, keyBindingRepository, Sources.FromButton), ActionUtils.ActionTextBehavior.HIDE); button.getStyleClass().setAll("icon-button"); @@ -140,7 +140,7 @@ public Button createIconButton(Action action, Command command) { public ButtonBase configureIconButton(Action action, Command command, ButtonBase button) { ActionUtils.configureButton( - new JabRefAction(action, command, keyBindingRepository, "Button"), + new JabRefAction(action, command, keyBindingRepository, Sources.FromButton), button, ActionUtils.ActionTextBehavior.HIDE); diff --git a/src/main/java/org/jabref/gui/actions/JabRefAction.java b/src/main/java/org/jabref/gui/actions/JabRefAction.java index 90f42ede713..c7a1f47eebb 100644 --- a/src/main/java/org/jabref/gui/actions/JabRefAction.java +++ b/src/main/java/org/jabref/gui/actions/JabRefAction.java @@ -1,11 +1,12 @@ package org.jabref.gui.actions; +import java.util.HashMap; +import java.util.Map; + import javafx.beans.binding.Bindings; import org.jabref.Globals; import org.jabref.gui.keyboard.KeyBindingRepository; -import org.jabref.model.strings.StringUtil; - import de.saxsys.mvvmfx.utils.commands.Command; /** @@ -31,16 +32,16 @@ public JabRefAction(Action action, Command command, KeyBindingRepository keyBind * especially for the track execute when the action run the same function but from different source. * @param source is a string contains the source, for example "button" */ - public JabRefAction(Action action, Command command, KeyBindingRepository keyBindingRepository, String source) { + public JabRefAction(Action action, Command command, KeyBindingRepository keyBindingRepository, Sources source) { this(action, keyBindingRepository); setEventHandler(event -> { command.execute(); - if (StringUtil.isNullOrEmpty(source)) { + if (source == null) { trackExecute(getActionName(action, command)); } else { - trackExecute(getActionName(action, command) + "From" + source); - System.out.println(getActionName(action, command) + "From" + source); + trackUserActionSource(getActionName(action, command), source); + System.out.println(getActionName(action, command) + source); } }); @@ -57,19 +58,11 @@ private String getActionName(Action action, Command command) { return action.getText(); } else { String commandName = command.getClass().getSimpleName(); - if ((command instanceof OldDatabaseCommandWrapper) || commandName.contains("EditAction")) { + if ((command instanceof OldDatabaseCommandWrapper) || (command instanceof OldCommandWrapper) || commandName.contains("EditAction")) { return command.toString(); } else { return commandName; } - // if (ans.contains("OldDatabaseCommandWrapper")) { - // OldDatabaseCommandWrapper tmp = (OldDatabaseCommandWrapper) command; - // return tmp.getActions().toString(); - // } else if (ans.contains("EditAction")) { - // return command.toString(); - // } else { - // return command.getClass().getSimpleName(); - // } } } @@ -77,4 +70,12 @@ private void trackExecute(String actionName) { Globals.getTelemetryClient() .ifPresent(telemetryClient -> telemetryClient.trackEvent(actionName)); } + + private void trackUserActionSource(String actionName, Sources source) { + Map properties = new HashMap<>(); + Map measurements = new HashMap<>(); + properties.put("Source", source.toString()); + + Globals.getTelemetryClient().ifPresent(telemetryClient -> telemetryClient.trackEvent(actionName, properties, measurements)); + } } diff --git a/src/main/java/org/jabref/gui/actions/OldCommandWrapper.java b/src/main/java/org/jabref/gui/actions/OldCommandWrapper.java index 4a37747726a..028e0b153bb 100644 --- a/src/main/java/org/jabref/gui/actions/OldCommandWrapper.java +++ b/src/main/java/org/jabref/gui/actions/OldCommandWrapper.java @@ -48,4 +48,9 @@ public ReadOnlyDoubleProperty progressProperty() { public void setExecutable(boolean executable) { this.executable.bind(BindingsHelper.constantOf(executable)); } + + @Override + public String toString() { + return this.command.toString(); + } } diff --git a/src/main/java/org/jabref/gui/actions/Sources.java b/src/main/java/org/jabref/gui/actions/Sources.java new file mode 100644 index 00000000000..962b4e63670 --- /dev/null +++ b/src/main/java/org/jabref/gui/actions/Sources.java @@ -0,0 +1,8 @@ +package org.jabref.gui.actions; + + +public enum Sources { + FromButton, + FromMenu + +} From f5e20ad5bc3a4798b6f4f6e36b75772cfb0e76be Mon Sep 17 00:00:00 2001 From: ffffatgoose Date: Fri, 9 Aug 2019 11:52:34 +0800 Subject: [PATCH 6/8] correctCheckstyle --- src/main/java/org/jabref/gui/actions/JabRefAction.java | 2 +- src/main/java/org/jabref/gui/actions/Sources.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/jabref/gui/actions/JabRefAction.java b/src/main/java/org/jabref/gui/actions/JabRefAction.java index c7a1f47eebb..a0f69ece3a6 100644 --- a/src/main/java/org/jabref/gui/actions/JabRefAction.java +++ b/src/main/java/org/jabref/gui/actions/JabRefAction.java @@ -2,11 +2,11 @@ import java.util.HashMap; import java.util.Map; - import javafx.beans.binding.Bindings; import org.jabref.Globals; import org.jabref.gui.keyboard.KeyBindingRepository; + import de.saxsys.mvvmfx.utils.commands.Command; /** diff --git a/src/main/java/org/jabref/gui/actions/Sources.java b/src/main/java/org/jabref/gui/actions/Sources.java index 962b4e63670..55110553f65 100644 --- a/src/main/java/org/jabref/gui/actions/Sources.java +++ b/src/main/java/org/jabref/gui/actions/Sources.java @@ -1,6 +1,5 @@ package org.jabref.gui.actions; - public enum Sources { FromButton, FromMenu From 2c71b13b8b0a947641d3218437b078ad4e9b063c Mon Sep 17 00:00:00 2001 From: ffffatgoose Date: Fri, 9 Aug 2019 17:21:26 +0800 Subject: [PATCH 7/8] try01 --- src/main/java/org/jabref/gui/actions/JabRefAction.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/jabref/gui/actions/JabRefAction.java b/src/main/java/org/jabref/gui/actions/JabRefAction.java index a0f69ece3a6..e62de3ee6d9 100644 --- a/src/main/java/org/jabref/gui/actions/JabRefAction.java +++ b/src/main/java/org/jabref/gui/actions/JabRefAction.java @@ -2,6 +2,7 @@ import java.util.HashMap; import java.util.Map; + import javafx.beans.binding.Bindings; import org.jabref.Globals; From 92b007ecaf0725932a99d5c30134ba77e53922d8 Mon Sep 17 00:00:00 2001 From: ffffatgoose Date: Sat, 10 Aug 2019 08:12:03 +0800 Subject: [PATCH 8/8] tryforcheck --- src/main/java/org/jabref/gui/actions/JabRefAction.java | 1 - .../org/jabref/gui/actions/OldDatabaseCommandWrapper.java | 4 ---- 2 files changed, 5 deletions(-) diff --git a/src/main/java/org/jabref/gui/actions/JabRefAction.java b/src/main/java/org/jabref/gui/actions/JabRefAction.java index e62de3ee6d9..f04deb1157c 100644 --- a/src/main/java/org/jabref/gui/actions/JabRefAction.java +++ b/src/main/java/org/jabref/gui/actions/JabRefAction.java @@ -42,7 +42,6 @@ public JabRefAction(Action action, Command command, KeyBindingRepository keyBind trackExecute(getActionName(action, command)); } else { trackUserActionSource(getActionName(action, command), source); - System.out.println(getActionName(action, command) + source); } }); diff --git a/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java b/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java index e7dc68736e5..bcd8301d690 100644 --- a/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java +++ b/src/main/java/org/jabref/gui/actions/OldDatabaseCommandWrapper.java @@ -51,10 +51,6 @@ public double getProgress() { return 0; } -// public Actions getActions() { -// return this.command; -// } - @Override public String toString() { return this.command.toString();