Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 60 additions & 1 deletion jabgui/src/main/java/org/jabref/gui/preview/PreviewPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,28 @@
import java.util.Optional;
import java.util.stream.Collectors;

import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.Label;
import javafx.scene.control.MenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.control.Tooltip;
import javafx.scene.input.ClipboardContent;
import javafx.scene.input.DataFormat;
import javafx.scene.input.DragEvent;
import javafx.scene.input.Dragboard;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseEvent;
import javafx.scene.input.TransferMode;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
import javafx.scene.layout.VBox;
import javafx.util.Duration;
import javafx.util.StringConverter;

import org.jabref.gui.DialogService;
import org.jabref.gui.Notifications;
Expand All @@ -27,6 +37,7 @@
import org.jabref.gui.keyboard.KeyBinding;
import org.jabref.gui.keyboard.KeyBindingRepository;
import org.jabref.gui.preferences.GuiPreferences;
import org.jabref.gui.preferences.PreferencesDialogView;
import org.jabref.gui.theme.ThemeManager;
import org.jabref.gui.util.DragDrop;
import org.jabref.logic.l10n.Localization;
Expand Down Expand Up @@ -71,7 +82,55 @@ public PreviewPanel(DialogService dialogService,
previewView.setOnDragOver(PreviewPanel::onDragOver);
previewView.setOnDragDropped(this::onDragDropped);

this.getChildren().add(previewView);
ComboBox<PreviewLayout> styleComboBox = new ComboBox<>();
styleComboBox.setItems(previewPreferences.getLayoutCycle());
styleComboBox.setConverter(new StringConverter<>() {
@Override
public String toString(PreviewLayout layout) {
return layout == null ? "" : layout.getDisplayName();
}

@Override
public PreviewLayout fromString(String string) {
return null;
}
});
if (!previewPreferences.getLayoutCycle().isEmpty()) {
styleComboBox.getSelectionModel().select(previewPreferences.getLayoutCyclePosition());
}
styleComboBox.setOnAction(_ -> {
int selectedIndex = styleComboBox.getSelectionModel().getSelectedIndex();
if (selectedIndex >= 0 && selectedIndex != previewPreferences.getLayoutCyclePosition()) {
previewPreferences.setLayoutCyclePosition(selectedIndex);
previewView.setLayout(previewPreferences.getSelectedPreviewLayout());
}
});
previewPreferences.layoutCyclePositionProperty().addListener((_, _, newVal) -> {
int pos = newVal.intValue();
if (pos >= 0 && pos < previewPreferences.getLayoutCycle().size()
&& styleComboBox.getSelectionModel().getSelectedIndex() != pos) {
styleComboBox.getSelectionModel().select(pos);
}
});

Button openPreferencesButton = new Button();
openPreferencesButton.setGraphic(IconTheme.JabRefIcons.PREFERENCES.getGraphicNode());
openPreferencesButton.setTooltip(new Tooltip(Localization.lang("Open preview preferences")));
openPreferencesButton.setOnAction(_ -> {
dialogService.showCustomDialogAndWait(
new PreferencesDialogView(org.jabref.gui.preferences.preview.PreviewTab.class));
previewView.setLayout(previewPreferences.getSelectedPreviewLayout());
});

Label styleLabel = new Label(Localization.lang("Preview style"));
Region spacer = new Region();
HBox.setHgrow(spacer, Priority.ALWAYS);
HBox bottomBar = new HBox(5, styleLabel, styleComboBox, spacer, openPreferencesButton);
bottomBar.setAlignment(Pos.CENTER_LEFT);
bottomBar.setPadding(new Insets(2, 5, 2, 5));

VBox.setVgrow(previewView, Priority.ALWAYS);
this.getChildren().addAll(previewView, bottomBar);

createKeyBindings();
previewView.setLayout(previewPreferences.getSelectedPreviewLayout());
Expand Down
2 changes: 2 additions & 0 deletions jablib/src/main/resources/l10n/JabRef_en.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2460,6 +2460,8 @@ Customized\ preview\ style=Customized preview style
Next\ preview\ style=Next preview style
Previous\ preview\ style=Previous preview style
Preview\ style\ changed=Preview style changed
Preview\ style=Preview style
Open\ preview\ preferences=Open preview preferences

(\ Note\:\ Press\ return\ to\ commit\ changes\ in\ the\ table\!\ )=( Note\: Press return to commit changes in the table\! )
New\ inproceedings=New inproceedings
Expand Down