Werkzeug um Belege zu scannen, Texterkennung durchzuführen und Belege sortiert abzulegen
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

76 lines
2.3 KiB

package de.srsoftware.belegscanner.gui;
import static de.srsoftware.belegscanner.Application.t;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.MatteBorder;
import de.srsoftware.belegscanner.Worker;
import de.srsoftware.belegscanner.listeners.ProjectListener;
import de.srsoftware.belegscanner.model.api.Project;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* Creates a table of previously scanned documents.
* @author Stephan Richter <s.richter@srsoftware.de>
*
*/
public class DocTable extends JPanel{
private static final Logger LOG = LoggerFactory.getLogger(DocTable.class);
private static FilenameFilter PAGES = (dir,name) -> name.toLowerCase().endsWith("pdf") && name.toLowerCase().contains("page");
private static int rowCounter = 0;
private static Font btnFont = new Font("Arial", Font.PLAIN, 28);
private List<Project> projects = new ArrayList<>();
private List<ProjectListener> listeners = new ArrayList<>();
private static final long serialVersionUID = 1073955198529023744L;
private GridBagConstraints constraints;
/**
* create a new DocTable
*/
public DocTable(Worker worker) {
setLayout(new GridBagLayout());
worker.setDocTable(this);
constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.HORIZONTAL;
constraints.insets = new Insets(3, 10, 3, 10);
constraints.gridy = 0;
constraints.gridx = 0;
MatteBorder border = BorderFactory.createMatteBorder(0, 0, 1, 0, Color.black);
JLabel ordner = new JLabel(t("Directory"),SwingConstants.CENTER);
ordner.setBorder(border);
add(ordner,constraints);
constraints.gridx = 1;
JLabel status = new JLabel(t("State"),SwingConstants.CENTER);
status.setBorder(border);
add(status,constraints);
constraints.gridx = 2;
JLabel actions = new JLabel(t("Actions"),SwingConstants.CENTER);
actions.setBorder(border);
add(actions,constraints);
}
public Optional<Project> getProject(String resolvedPath) {
return projects.stream().filter(p -> resolvedPath.equals(p.pattern())).findAny();
}
}