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
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(); |
|
} |
|
}
|
|
|