From 108d144adc99d06c758ddbed7cc04ae3540ba0d5 Mon Sep 17 00:00:00 2001 From: Martin Gropp Date: Fri, 2 Apr 2021 12:41:09 +0200 Subject: [PATCH] Save view type to preferences --- README.md | 3 +++ .../java/net/sourceforge/pdfjumbler/ConfigKeys.java | 7 +++++++ .../net/sourceforge/pdfjumbler/PdfCellRenderer.java | 7 ++++++- .../java/net/sourceforge/pdfjumbler/PdfJumbler.java | 9 +++++++-- .../java/net/sourceforge/pdfjumbler/PdfList.java | 12 +++++++++--- .../pdfjumbler/actions/ViewListAction.java | 7 +++++-- .../pdfjumbler/actions/ViewThumbnailsAction.java | 7 +++++-- .../pdfjumbler/i18n/PdfJumblerResources.java | 2 +- .../pdfjumbler/i18n/PdfJumblerResources_de.java | 2 +- .../pdfjumbler/i18n/PdfJumblerResources_es.java | 2 +- .../pdfjumbler/i18n/PdfJumblerResources_ru.java | 5 ++++- .../pdfjumbler/pdf/PdfProcessingFactory.java | 9 +++++---- 12 files changed, 54 insertions(+), 18 deletions(-) create mode 100644 src/main/java/net/sourceforge/pdfjumbler/ConfigKeys.java diff --git a/README.md b/README.md index 2024eb2..f413032 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,9 @@ PdfJumbler simple tool to rearrange, merge, delete, and rotate pages from PDF fi Releases -------- +* v0.4.0: + * https://github.com/mgropp/pdfjumbler/releases/download/v0.4.0/pdfjumbler.jar + * https://github.com/mgropp/pdfjumbler/releases/download/v0.4.0/setup-pdfjumbler.exe * v0.3.0: * https://github.com/mgropp/pdfjumbler/releases/download/v0.3.0/pdfjumbler.jar * https://github.com/mgropp/pdfjumbler/releases/download/v0.3.0/setup-pdfjumbler.exe diff --git a/src/main/java/net/sourceforge/pdfjumbler/ConfigKeys.java b/src/main/java/net/sourceforge/pdfjumbler/ConfigKeys.java new file mode 100644 index 0000000..26c710f --- /dev/null +++ b/src/main/java/net/sourceforge/pdfjumbler/ConfigKeys.java @@ -0,0 +1,7 @@ +package net.sourceforge.pdfjumbler; + +public class ConfigKeys { + public static final String EDITOR = "editor"; + public static final String RENDERER = "renderer"; + public static final String SHOW_TEXT = "showText"; +} diff --git a/src/main/java/net/sourceforge/pdfjumbler/PdfCellRenderer.java b/src/main/java/net/sourceforge/pdfjumbler/PdfCellRenderer.java index ea6fa53..b82f494 100644 --- a/src/main/java/net/sourceforge/pdfjumbler/PdfCellRenderer.java +++ b/src/main/java/net/sourceforge/pdfjumbler/PdfCellRenderer.java @@ -35,9 +35,14 @@ public class PdfCellRenderer extends DefaultListCellRenderer { private int thumbnailWidth = 96; private int thumbnailHeight = 128; - private boolean showText = true; + private boolean showText; public PdfCellRenderer(PdfRenderer renderer) { + this(renderer, true); + } + + public PdfCellRenderer(PdfRenderer renderer, boolean showText) { + this.showText = showText; this.renderer = PdfProcessingFactory.getRenderer(); PdfProcessingFactory.addProcessorListener( new PdfProcessorListener() { diff --git a/src/main/java/net/sourceforge/pdfjumbler/PdfJumbler.java b/src/main/java/net/sourceforge/pdfjumbler/PdfJumbler.java index 7d2df3c..56e60bd 100644 --- a/src/main/java/net/sourceforge/pdfjumbler/PdfJumbler.java +++ b/src/main/java/net/sourceforge/pdfjumbler/PdfJumbler.java @@ -35,6 +35,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.ResourceBundle; +import java.util.prefs.Preferences; /** * PdfJumbler main class. @@ -185,11 +186,15 @@ private PdfJumbler(String[] files) { toolBar2.setFloatable(false); // Lists - mainList = new PdfList(); + mainList = new PdfList( + Preferences.userNodeForPackage(PdfJumbler.class).getBoolean(ConfigKeys.SHOW_TEXT, true) + ); mainList.setDisplayMessage(resources.getString(I18nKeys.LIST_DROP_PDFS_TO_EDIT)); JScrollPane mainPane = new JScrollPane(mainList); - secondaryList = new PdfList(); + secondaryList = new PdfList( + Preferences.userNodeForPackage(PdfJumbler.class).getBoolean(ConfigKeys.SHOW_TEXT, true) + ); secondaryList.setDisplayMessage(resources.getString(I18nKeys.LIST_CLIPBOARD_EMPTY)); secondaryList.setThumbnailSize(16); JScrollPane secondaryPane = new JScrollPane(secondaryList); diff --git a/src/main/java/net/sourceforge/pdfjumbler/PdfList.java b/src/main/java/net/sourceforge/pdfjumbler/PdfList.java index b33cd67..9c1a58b 100644 --- a/src/main/java/net/sourceforge/pdfjumbler/PdfList.java +++ b/src/main/java/net/sourceforge/pdfjumbler/PdfList.java @@ -11,6 +11,7 @@ import java.net.URI; import java.util.ArrayList; import java.util.Objects; +import java.util.prefs.Preferences; import javax.swing.JList; import javax.swing.TransferHandler.TransferSupport; @@ -28,12 +29,17 @@ public class PdfList extends JDragDropList { private static final int DEFAULT_VISIBLE_ROW_COUNT = 8; private String displayMessage = null; - - public PdfList() { + + public PdfList(boolean showText) { super(new UndoableListModel<>()); - setCellRenderer(new PdfCellRenderer(PdfProcessingFactory.getRenderer())); setDropListener(new URIDropListener()); addMouseWheelListener(new ZoomMouseWheelListener()); + + setCellRenderer(new PdfCellRenderer( + PdfProcessingFactory.getRenderer(), + showText + )); + this.setShowCellText(showText); } private void drawCenteredText(Graphics g, String message, boolean alignCenter) { diff --git a/src/main/java/net/sourceforge/pdfjumbler/actions/ViewListAction.java b/src/main/java/net/sourceforge/pdfjumbler/actions/ViewListAction.java index d396ce8..155fc94 100644 --- a/src/main/java/net/sourceforge/pdfjumbler/actions/ViewListAction.java +++ b/src/main/java/net/sourceforge/pdfjumbler/actions/ViewListAction.java @@ -1,5 +1,6 @@ package net.sourceforge.pdfjumbler.actions; +import net.sourceforge.pdfjumbler.ConfigKeys; import net.sourceforge.pdfjumbler.Icons; import net.sourceforge.pdfjumbler.PdfJumbler; import net.sourceforge.pdfjumbler.PdfList; @@ -9,6 +10,7 @@ import javax.swing.AbstractAction; import javax.swing.Action; import java.awt.event.ActionEvent; +import java.util.prefs.Preferences; public class ViewListAction extends AbstractAction { private static final long serialVersionUID = 7357355236947950441L; @@ -22,7 +24,8 @@ public ViewListAction(PdfJumbler parent) { @Override public void actionPerformed(ActionEvent e) { - PdfList mainList = parent.getMainPdfList(); - mainList.setShowCellText(true); + parent.getMainPdfList().setShowCellText(true); + parent.getSecondaryPdfList().setShowCellText(true); + Preferences.userNodeForPackage(PdfJumbler.class).putBoolean(ConfigKeys.SHOW_TEXT, true); } } diff --git a/src/main/java/net/sourceforge/pdfjumbler/actions/ViewThumbnailsAction.java b/src/main/java/net/sourceforge/pdfjumbler/actions/ViewThumbnailsAction.java index 4d86072..3db4666 100644 --- a/src/main/java/net/sourceforge/pdfjumbler/actions/ViewThumbnailsAction.java +++ b/src/main/java/net/sourceforge/pdfjumbler/actions/ViewThumbnailsAction.java @@ -1,5 +1,6 @@ package net.sourceforge.pdfjumbler.actions; +import net.sourceforge.pdfjumbler.ConfigKeys; import net.sourceforge.pdfjumbler.PdfJumbler; import net.sourceforge.pdfjumbler.PdfList; import net.sourceforge.pdfjumbler.i18n.I18nKeys; @@ -8,6 +9,7 @@ import javax.swing.AbstractAction; import javax.swing.Action; import java.awt.event.ActionEvent; +import java.util.prefs.Preferences; public class ViewThumbnailsAction extends AbstractAction { private static final long serialVersionUID = 7357355236947950441L; @@ -21,7 +23,8 @@ public ViewThumbnailsAction(PdfJumbler parent) { @Override public void actionPerformed(ActionEvent e) { - PdfList mainList = parent.getMainPdfList(); - mainList.setShowCellText(false); + parent.getMainPdfList().setShowCellText(false); + parent.getSecondaryPdfList().setShowCellText(false); + Preferences.userNodeForPackage(PdfJumbler.class).putBoolean(ConfigKeys.SHOW_TEXT, false); } } diff --git a/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources.java b/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources.java index 629fbeb..4b07646 100644 --- a/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources.java +++ b/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources.java @@ -72,7 +72,7 @@ protected Object[][] getContents() { }, { ABOUT_TEXT, - "PdfJumbler %s \nCopyright (C) 2020 Martin Gropp\n" + + "PdfJumbler %s \nCopyright (C) 2021 Martin Gropp\n" + "\n" + "PDF Editor: %s\n" + "PDF Renderer: %s\n" + diff --git a/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_de.java b/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_de.java index cbde7cb..275c405 100644 --- a/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_de.java +++ b/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_de.java @@ -48,7 +48,7 @@ protected Object[][] getContents() { }, { ABOUT_TEXT, - "PdfJumbler %s \nCopyright (C) 2020 Martin Gropp\n" + + "PdfJumbler %s \nCopyright (C) 2021 Martin Gropp\n" + "\n" + "PDF Editor: %s\n" + "PDF Renderer: %s\n" + diff --git a/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_es.java b/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_es.java index 0c314de..cb792a1 100644 --- a/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_es.java +++ b/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_es.java @@ -50,7 +50,7 @@ protected Object[][] getContents() { }, { ABOUT_TEXT, - "PdfJumbler %s \nCopyright (C) 2020 Martin Gropp\n" + + "PdfJumbler %s \nCopyright (C) 2021 Martin Gropp\n" + "Traducción: Andres Yesid Diaz Pinto\n" + "\n" + "PDF Editor: %s\n" + diff --git a/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_ru.java b/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_ru.java index a2329b0..d1a22b6 100644 --- a/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_ru.java +++ b/src/main/java/net/sourceforge/pdfjumbler/i18n/PdfJumblerResources_ru.java @@ -29,6 +29,7 @@ protected Object[][] getContents() { { NO_PDF_RENDERER_TEXT, "Не удалось загрузить плагин для рендеринга PDF." }, { PDF_PAGE_TITLE, "%d (%s)" }, { MENU, "Настройки" }, + { MENU_VIEW, "Вид" }, { MENU_EDITOR, "PDF Редактор" }, { MENU_RENDERER, "PDF Рендер" }, { MOVE_UP, "Переместить вверх" }, @@ -41,13 +42,15 @@ protected Object[][] getContents() { { ABOUT_TITLE, "О программе" }, { PLUGIN_ERROR_TITLE, "Ошибка плагина" }, { PLUGIN_INIT_ERROR, "Ошибка инициализации плагина %s" }, + { VIEW_LIST, "Ведомость" }, + { VIEW_THUMBNAILS, "Эскиз" }, { PLUGIN_ERROR_VERSION_INCOMPATIBLE, "Для этого плагина требуется версия PdfJumbler %s." }, { ABOUT_TEXT, - "PdfJumbler %s \nАвторские права (C) 2020 Мартин Гропп\n" + + "PdfJumbler %s \nАвторские права (C) 2021 Мартин Гропп\n" + "Перевод: s-r-grass\n" + "\n" + "PDF Редактор: %s\n" + diff --git a/src/main/java/net/sourceforge/pdfjumbler/pdf/PdfProcessingFactory.java b/src/main/java/net/sourceforge/pdfjumbler/pdf/PdfProcessingFactory.java index d6a0918..cefa423 100644 --- a/src/main/java/net/sourceforge/pdfjumbler/pdf/PdfProcessingFactory.java +++ b/src/main/java/net/sourceforge/pdfjumbler/pdf/PdfProcessingFactory.java @@ -16,6 +16,7 @@ import javax.swing.JOptionPane; +import net.sourceforge.pdfjumbler.ConfigKeys; import net.sourceforge.pdfjumbler.PdfJumbler; import net.sourceforge.pdfjumbler.i18n.I18nKeys; import net.sourceforge.pdfjumbler.i18n.I18nUtil; @@ -183,7 +184,7 @@ private static void selectInitialEditor() { System.getProperty("pdfjumbler.editor", null) )); classes.add(findEditorClass( - Preferences.userNodeForPackage(PdfJumbler.class).get("editor", null) + Preferences.userNodeForPackage(PdfJumbler.class).get(ConfigKeys.EDITOR, null) )); classes.addAll(pdfEditorClasses); @@ -220,7 +221,7 @@ private static void selectInitialRenderer() { System.getProperty("pdfjumbler.renderer", null) )); classes.add(findRendererClass( - Preferences.userNodeForPackage(PdfJumbler.class).get("renderer", null) + Preferences.userNodeForPackage(PdfJumbler.class).get(ConfigKeys.RENDERER, null) )); classes.addAll(pdfRendererClasses); @@ -272,14 +273,14 @@ public static void setEditorClass(Class cls) throws Instant PdfEditor oldEditor = editor; editor = cls.getDeclaredConstructor().newInstance(); fireEditorChanged(oldEditor); - Preferences.userNodeForPackage(PdfJumbler.class).put("editor", cls.getCanonicalName()); + Preferences.userNodeForPackage(PdfJumbler.class).put(ConfigKeys.EDITOR, cls.getCanonicalName()); } public static void setRendererClass(Class cls) throws InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException { PdfRenderer oldRenderer = renderer; renderer = cls.getDeclaredConstructor().newInstance(); fireRendererChanged(oldRenderer); - Preferences.userNodeForPackage(PdfJumbler.class).put("renderer", cls.getCanonicalName()); + Preferences.userNodeForPackage(PdfJumbler.class).put(ConfigKeys.RENDERER, cls.getCanonicalName()); } public static String getFriendlyName(Class cls) {