Browse Source

Hilfe hinzugefügt

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
main
Stephan Richter 2 years ago
parent
commit
a751c48f8f
  1. 16
      doc/manual-de.md
  2. 1
      resources/translations/Application.de.translation
  3. 12
      src/main/java/de/srsoftware/belegscanner/Worker.java
  4. 25
      src/main/java/de/srsoftware/belegscanner/gui/Toolbar.java

16
doc/manual-de.md

@ -0,0 +1,16 @@
# BelegScanner
## Ziel der Anwendung
Diese Anwendung soll helfen
* sich wiederholende Scan-Vorgänge zu erleichtern
* mehrseitige PDFs mit aus gescannten Einzelseiten zu erstellen
## TODOs
* diese Anleitung vervollständigen
* einfaches Löschen von Kategorien
* entfernen der Seitennummer beim Binden
* Monatsnamen als Platzhalter
* einfacheres Starten mit der richtigen Sprache

1
resources/translations/Application.de.translation

@ -18,6 +18,7 @@ Error code\: {} for {} : Fehlercode: {} für {}
Finished text recognition. : Texterkennung beendet. Finished text recognition. : Texterkennung beendet.
German language support missing! : Unterstützung für deutsche Sprache fehlt! German language support missing! : Unterstützung für deutsche Sprache fehlt!
Height : Höhe Height : Höhe
help : Hilfe
Improve brightness : Helligkeit verbessern Improve brightness : Helligkeit verbessern
Joining PDFs… : Verbinde PDFs… Joining PDFs… : Verbinde PDFs…
join PDFs : PDFs zusammenführen join PDFs : PDFs zusammenführen

12
src/main/java/de/srsoftware/belegscanner/Worker.java

@ -15,7 +15,10 @@ import org.slf4j.LoggerFactory;
import java.awt.*; import java.awt.*;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Locale;
import java.util.Optional; import java.util.Optional;
import java.util.Vector; import java.util.Vector;
@ -459,4 +462,13 @@ public class Worker {
docTable.setState(project,t("PDFs joined.")); docTable.setState(project,t("PDFs joined."));
preview(project.addPage(joinedPDF)); preview(project.addPage(joinedPDF));
} }
public void showHelp() {
String url = "https://git.srsoftware.de/StephanRichter/BelegScanner/src/branch/main/doc/manual-"+ Locale.getDefault().getLanguage().toLowerCase()+".md";
try {
Desktop.getDesktop().browse(new URI(url));
} catch (Exception e) {
LOG.error("Failed to show help",e);
}
}
} }

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

@ -23,6 +23,8 @@ import de.srsoftware.tools.gui.DateChooser;
import de.srsoftware.tools.gui.SelectComboBox; import de.srsoftware.tools.gui.SelectComboBox;
import static de.srsoftware.belegscanner.Application.*; import static de.srsoftware.belegscanner.Application.*;
import static javax.swing.BoxLayout.X_AXIS;
import static javax.swing.BoxLayout.Y_AXIS;
/** /**
* create the application's toolbar * create the application's toolbar
@ -66,7 +68,7 @@ public class Toolbar extends JPanel {
public Toolbar(Worker worker) { public Toolbar(Worker worker) {
this.worker = worker; this.worker = worker;
worker.setToolbar(this); worker.setToolbar(this);
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); setLayout(new BoxLayout(this, Y_AXIS));
add(datePicker()); add(datePicker());
add(input(t("Category"),catPicker = categoryPicker())); add(input(t("Category"),catPicker = categoryPicker()));
add(input(t("Path"),pathPicker = pathPicker())); add(input(t("Path"),pathPicker = pathPicker()));
@ -75,11 +77,18 @@ public class Toolbar extends JPanel {
add(new ImproveSelector(worker)); add(new ImproveSelector(worker));
add(new RotationSelector(worker)); add(new RotationSelector(worker));
add(new TypeSelector(worker)); add(new TypeSelector(worker));
add(scanButton()); var buttonBox = new JPanel();
buttonBox.setLayout(new BoxLayout(buttonBox,X_AXIS));
buttonBox.add(scanButton());
buttonBox.add(Box.createRigidArea(new Dimension(10,10)));
buttonBox.add(helpButton());
add(buttonBox);
add(Box.createGlue()); add(Box.createGlue());
Arrays.stream(getComponents()).filter(c -> c instanceof JPanel).map(JPanel.class::cast).forEach(p -> p.setBorder(BORDER)); Arrays.stream(getComponents()).filter(c -> c instanceof JPanel).map(JPanel.class::cast).forEach(p -> p.setBorder(BORDER));
} }
private SelectComboBox categoryPicker() { private SelectComboBox categoryPicker() {
return new SelectComboBox(worker.getCategories().keySet()).onUpdateText(worker::setCat).onDelete(worker::dropCategory); return new SelectComboBox(worker.getCategories().keySet()).onUpdateText(worker::setCat).onDelete(worker::dropCategory);
} }
@ -106,6 +115,16 @@ public class Toolbar extends JPanel {
.forEach(this::remove); .forEach(this::remove);
} }
/**
* create help button
* @return
*/
private Component helpButton() {
var button = new JButton(t("help"));
button.addActionListener(ev -> worker.showHelp());
return button;
}
/** /**
* creates a labeled input field * creates a labeled input field
* @param caption * @param caption
@ -116,7 +135,7 @@ public class Toolbar extends JPanel {
component.setMaximumSize(new Dimension(600, 40)); component.setMaximumSize(new Dimension(600, 40));
component.setToolTipText(t("Press Shift + Delete to remove an entry.")); component.setToolTipText(t("Press Shift + Delete to remove an entry."));
JPanel panel = new JPanel(); JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); panel.setLayout(new BoxLayout(panel, X_AXIS));
panel.add(new JLabel(caption+": ")); panel.add(new JLabel(caption+": "));
panel.add(component); panel.add(component);
return panel; return panel;

Loading…
Cancel
Save