From 9f5da55417ede00c75d0f4f954061d3f44dff38e Mon Sep 17 00:00:00 2001 From: marisuki <1539678784@qq.com> Date: Sun, 22 Jul 2018 19:33:13 +0800 Subject: [PATCH 01/17] Fix#3861_Edit_ReplaceString --- src/main/java/org/jabref/gui/BasePanel.java | 27 +-- src/main/java/org/jabref/gui/JabRefFrame.java | 2 + .../java/org/jabref/gui/ReplaceString.fxml | 27 +++ .../org/jabref/gui/ReplaceStringAction.java | 20 ++ .../org/jabref/gui/ReplaceStringView.java | 184 ++++++++++++++++++ 5 files changed, 234 insertions(+), 26 deletions(-) create mode 100644 src/main/java/org/jabref/gui/ReplaceString.fxml create mode 100644 src/main/java/org/jabref/gui/ReplaceStringAction.java create mode 100644 src/main/java/org/jabref/gui/ReplaceStringView.java diff --git a/src/main/java/org/jabref/gui/BasePanel.java b/src/main/java/org/jabref/gui/BasePanel.java index e23a6a27e3f..e13c930e5cf 100644 --- a/src/main/java/org/jabref/gui/BasePanel.java +++ b/src/main/java/org/jabref/gui/BasePanel.java @@ -395,32 +395,7 @@ private void setupActions() { actions.put(Actions.MERGE_WITH_FETCHED_ENTRY, new MergeWithFetchedEntryAction(this, frame.getDialogService())); - actions.put(Actions.REPLACE_ALL, () -> { - final ReplaceStringDialog rsd = new ReplaceStringDialog(frame); - rsd.setVisible(true); - if (!rsd.okPressed()) { - return; - } - int counter = 0; - final NamedCompound ce = new NamedCompound(Localization.lang("Replace string")); - if (rsd.selOnly()) { - for (BibEntry be : mainTable.getSelectedEntries()) { - counter += rsd.replace(be, ce); - } - } else { - for (BibEntry entry : bibDatabaseContext.getDatabase().getEntries()) { - counter += rsd.replace(entry, ce); - } - } - - output(Localization.lang("Replaced") + ' ' + counter + ' ' - + (counter == 1 ? Localization.lang("occurrence") : Localization.lang("occurrences")) + '.'); - if (counter > 0) { - ce.end(); - getUndoManager().addEdit(ce); - markBaseChanged(); - } - }); + actions.put(Actions.REPLACE_ALL, ()-> (new ReplaceStringAction(this)).execute()); actions.put(new SpecialFieldValueViewModel(SpecialField.RELEVANCE.getValues().get(0)).getCommand(), new SpecialFieldViewModel(SpecialField.RELEVANCE, undoManager).getSpecialFieldAction(SpecialField.RELEVANCE.getValues().get(0), frame)); diff --git a/src/main/java/org/jabref/gui/JabRefFrame.java b/src/main/java/org/jabref/gui/JabRefFrame.java index 1eed35d9bfa..8cd33645028 100644 --- a/src/main/java/org/jabref/gui/JabRefFrame.java +++ b/src/main/java/org/jabref/gui/JabRefFrame.java @@ -75,6 +75,7 @@ import org.jabref.gui.actions.NewEntryAction; import org.jabref.gui.actions.NewEntryFromPlainTextAction; import org.jabref.gui.actions.NewSubLibraryAction; +import org.jabref.gui.actions.OldCommandWrapper; import org.jabref.gui.actions.OldDatabaseCommandWrapper; import org.jabref.gui.actions.OpenBrowserAction; import org.jabref.gui.actions.SearchForUpdateAction; @@ -598,6 +599,7 @@ private Node createToolbar() { factory.createIconButton(StandardActions.CUT, new OldDatabaseCommandWrapper(Actions.CUT, this, Globals.stateManager)), factory.createIconButton(StandardActions.COPY, new OldDatabaseCommandWrapper(Actions.COPY, this, Globals.stateManager)), factory.createIconButton(StandardActions.PASTE, new OldDatabaseCommandWrapper(Actions.PASTE, this, Globals.stateManager)), + factory.createIconButton(StandardActions.REPLACE_ALL, new ReplaceStringAction(this.getCurrentBasePanel())), factory.createIconButton(StandardActions.CLEANUP_ENTRIES, new OldDatabaseCommandWrapper(Actions.CLEANUP, this, Globals.stateManager)), factory.createIconButton(pushToExternal.getMenuAction(), pushToExternal), diff --git a/src/main/java/org/jabref/gui/ReplaceString.fxml b/src/main/java/org/jabref/gui/ReplaceString.fxml new file mode 100644 index 00000000000..ac797960c09 --- /dev/null +++ b/src/main/java/org/jabref/gui/ReplaceString.fxml @@ -0,0 +1,27 @@ + + + + + + + + + + +