Skip to content

Commit

Permalink
Fix JabRef#8911 by changing to warning dialog instead of confirmation…
Browse files Browse the repository at this point in the history
… dialog and append additional information for WordKeywordGroup
  • Loading branch information
LIM0000 committed Jun 22, 2022
1 parent 41edd28 commit e0fe422
Showing 1 changed file with 34 additions and 7 deletions.
41 changes: 34 additions & 7 deletions src/main/java/org/jabref/gui/groups/GroupTreeViewModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
import javafx.beans.property.StringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.ButtonType;

import org.jabref.gui.AbstractViewModel;
import org.jabref.gui.DialogService;
Expand All @@ -29,6 +32,7 @@
import org.jabref.model.groups.AbstractGroup;
import org.jabref.model.groups.ExplicitGroup;
import org.jabref.model.groups.GroupTreeNode;
import org.jabref.model.groups.WordKeywordGroup;
import org.jabref.model.metadata.MetaData;
import org.jabref.preferences.PreferencesService;

Expand Down Expand Up @@ -192,9 +196,21 @@ public void editGroup(GroupNodeViewModel oldGroup) {

newGroup.ifPresent(group -> {
// TODO: Keep assignments
boolean keepPreviousAssignments = dialogService.showConfirmationDialogAndWait(
String content = Localization.lang("Assign the original group's entries to this group?");
ButtonType keepAssignments = new ButtonType(Localization.lang("Yes"), ButtonBar.ButtonData.YES);
ButtonType removeAssignments = new ButtonType(Localization.lang("No"), ButtonBar.ButtonData.NO);
ButtonType cancel = new ButtonType(Localization.lang("Cancel"), ButtonBar.ButtonData.CANCEL_CLOSE);

if (newGroup.get().getClass() == WordKeywordGroup.class) {
content = content + "\n" +
Localization.lang("(Note: If original entries lack keywords to qualify for the new group configuration, confirming here will add them)");
}
Optional<ButtonType> previousAssignments = dialogService.showCustomButtonDialogAndWait(Alert.AlertType.WARNING,
Localization.lang("Change of Grouping Method"),
Localization.lang("Assign the original group's entries to this group?"));
content,
keepAssignments,
removeAssignments,
cancel);
// WarnAssignmentSideEffects.warnAssignmentSideEffects(newGroup, panel.frame());
boolean removePreviousAssignments = (oldGroup.getGroupNode().getGroup() instanceof ExplicitGroup)
&& (group instanceof ExplicitGroup);
Expand All @@ -209,11 +225,22 @@ public void editGroup(GroupNodeViewModel oldGroup) {
removePreviousAssignments = false;
}

oldGroup.getGroupNode().setGroup(
group,
keepPreviousAssignments,
removePreviousAssignments,
database.getEntries());
if (previousAssignments.isPresent() && previousAssignments.get().getButtonData() == ButtonBar.ButtonData.YES) {
oldGroup.getGroupNode().setGroup(
group,
true,
removePreviousAssignments,
database.getEntries());
} else if (previousAssignments.isPresent() && previousAssignments.get().getButtonData() == ButtonBar.ButtonData.NO) {
oldGroup.getGroupNode().setGroup(
group,
false,
removePreviousAssignments,
database.getEntries());
} else if (previousAssignments.isPresent() && previousAssignments.get().getButtonData() == ButtonBar.ButtonData.CANCEL_CLOSE) {
return;
}

// stateManager.getEntriesInCurrentDatabase());

// TODO: Add undo
Expand Down

0 comments on commit e0fe422

Please sign in to comment.