Browse Source

improved PDF view

main
Stephan Richter 2 years ago
parent
commit
bda39837f9
  1. 2
      pom.xml
  2. 39
      src/main/java/de/srsoftware/belegscanner/gui/MainFrame.java
  3. 29
      src/main/java/de/srsoftware/belegscanner/gui/Toolbar.java

2
pom.xml

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>BelegScanner</groupId>
<artifactId>BelegScanner</artifactId>
<version>0.0.6</version>
<version>0.0.7</version>
<name>BelegScanner</name>
<packaging>jar</packaging>

39
src/main/java/de/srsoftware/belegscanner/gui/MainFrame.java

@ -21,6 +21,7 @@ import javax.swing.JPanel; @@ -21,6 +21,7 @@ import javax.swing.JPanel;
import org.icepdf.ri.common.ComponentKeyBinding;
import org.icepdf.ri.common.SwingController;
import org.icepdf.ri.common.SwingViewBuilder;
import org.icepdf.ri.common.views.DocumentViewController;
import org.json.JSONArray;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -92,7 +93,7 @@ public class MainFrame extends JFrame { @@ -92,7 +93,7 @@ public class MainFrame extends JFrame {
.addPathListener(this::setPath)
.addScanListener(this::scan);
docTable.addPreviewListener(pdfViewer::openDocument);
docTable.addPreviewListener(this::preview);
int x = config.getOrCreate(APP_X, 20);
int y = config.getOrCreate(APP_Y, 20);
@ -103,20 +104,6 @@ public class MainFrame extends JFrame { @@ -103,20 +104,6 @@ public class MainFrame extends JFrame {
setVisible(true);
}
private JPanel preview() {
// https://stackoverflow.com/a/48248739/1285585
pdfViewer = new SwingController();
SwingViewBuilder factory = new SwingViewBuilder(pdfViewer);
JPanel viewerComponentPanel = factory.buildViewerPanel();
ComponentKeyBinding.install(pdfViewer, viewerComponentPanel);
// add interactive mouse link annotation support via callback
pdfViewer.getDocumentViewController().setAnnotationCallback(new org.icepdf.ri.common.MyAnnotationCallback(pdfViewer.getDocumentViewController()));
return viewerComponentPanel;
}
private void addFieldsFor(String path) {
Vector<String> marks = new Vector<>();
Matcher matches = MARKEN.matcher(path);
@ -219,6 +206,26 @@ public class MainFrame extends JFrame { @@ -219,6 +206,26 @@ public class MainFrame extends JFrame {
docTable.preview(path);
}
private JPanel preview() {
// https://stackoverflow.com/a/48248739/1285585
pdfViewer = new SwingController();
SwingViewBuilder factory = new SwingViewBuilder(pdfViewer);
JPanel viewerComponentPanel = factory.buildViewerPanel();
ComponentKeyBinding.install(pdfViewer, viewerComponentPanel);
// add interactive mouse link annotation support via callback
pdfViewer.getDocumentViewController().setAnnotationCallback(new org.icepdf.ri.common.MyAnnotationCallback(pdfViewer.getDocumentViewController()));
return viewerComponentPanel;
}
private void preview(String file) {
pdfViewer.openDocument(file);
//pdfViewer.setToolBarVisible(false);
pdfViewer.setPageFitMode(DocumentViewController.PAGE_FIT_WINDOW_WIDTH, false);
}
private void scan(ActionEvent ev) {
updateConfig();
new Thread(() -> performScan(patchedPath,dimension)).start();
@ -253,6 +260,7 @@ public class MainFrame extends JFrame { @@ -253,6 +260,7 @@ public class MainFrame extends JFrame {
updatePath();
}
private void updateConfig() {
String prefix = "app.categories."+category+".";
@ -298,5 +306,4 @@ public class MainFrame extends JFrame { @@ -298,5 +306,4 @@ public class MainFrame extends JFrame {
for (Entry<String, String> entry : fields.entrySet()) patchedPath = patchedPath.replace("$"+entry.getKey(), entry.getValue());
statusBar.setPath(patchedPath);
}
}

29
src/main/java/de/srsoftware/belegscanner/gui/Toolbar.java

@ -11,6 +11,7 @@ import java.util.Date; @@ -11,6 +11,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.Vector;
import java.util.stream.Collectors;
@ -121,18 +122,6 @@ public class Toolbar extends JPanel { @@ -121,18 +122,6 @@ public class Toolbar extends JPanel {
height.addKeyListener(dimensionListener);
}
protected void updateDimensions() {
LOG.debug("updateDimensions()");
try {
int w = Integer.parseInt(width.getText().trim());
int h = Integer.parseInt(height.getText().trim());
dimensionListeners.forEach(listener -> listener.setDimension(new Dimension(w < 0 ? 0 : w, h < 0 ? 0 : h)));
} catch (NumberFormatException e) {
LOG.warn("Invalid dimensions!");
}
}
public void addFieldsFor(Vector<String> marks) {
LOG.debug("addFieldsFor({})",marks);
@ -182,7 +171,9 @@ public class Toolbar extends JPanel { @@ -182,7 +171,9 @@ public class Toolbar extends JPanel {
private Component categoryPicker(Configuration config) {
JSONObject elements = config.getOrCreate("app.categories",new JSONObject());
elements.keySet().forEach(categories::add);
Set<String> cats = elements.keySet().stream().map(Object::toString).map(String::trim).collect(Collectors.toSet());
categories = new Vector<>(cats);
categories.sort((a,b)->a.toString().compareTo(b.toString()));
return new SelectComboBox(categories).onUpdateText(this::updateCat);
}
@ -284,6 +275,18 @@ public class Toolbar extends JPanel { @@ -284,6 +275,18 @@ public class Toolbar extends JPanel {
} else LOG.debug("newCat is empty!");
}
protected void updateDimensions() {
LOG.debug("updateDimensions()");
try {
int w = Integer.parseInt(width.getText().trim());
int h = Integer.parseInt(height.getText().trim());
dimensionListeners.forEach(listener -> listener.setDimension(new Dimension(w < 0 ? 0 : w, h < 0 ? 0 : h)));
} catch (NumberFormatException e) {
LOG.warn("Invalid dimensions!");
}
}
private void updateField(String name, String val) {
LOG.debug("updateField({},{})",name,val);
fieldListeners.forEach(l -> l.setField(name,val));

Loading…
Cancel
Save