org.hwo.pulscounter/src/org/hwo/pulscounter/ui/SimpleScriptSetup.java

196 lines
6.1 KiB
Java

package org.hwo.pulscounter.ui;
import static org.hwo.logging.LogLevel.*;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.util.ArrayList;
import java.util.Arrays;
import javax.swing.border.BevelBorder;
import javax.swing.JButton;
import java.awt.FlowLayout;
import org.hwo.models.TableMapper.TableMapper;
import org.hwo.models.TableMapper.TableMapperListener;
import org.hwo.pulscounter.PulsCounterApplication;
import org.hwo.pulscounter.simplescript.SimpleScript;
import org.hwo.ui.JMappedTable;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import static org.hwo.logging.Logging.*;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.util.ArrayList;
import java.util.Arrays;
import javax.swing.border.BevelBorder;
import javax.swing.JButton;
import java.awt.FlowLayout;
import org.hwo.models.TableMapper.TableMapper;
import org.hwo.models.TableMapper.TableMapperListener;
import org.hwo.pulscounter.PulsCounterApplication;
import org.hwo.pulscounter.simplescript.SimpleScript;
import org.hwo.ui.JMappedTable;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class SimpleScriptSetup extends JFrame {
private JPanel contentPane;
private JMappedTable scriptTable;
private ArrayList<SimpleScript> simpleScripts;
private JButton btnEntfernen;
private JButton btnBearbeiten;
private JButton btnNeu;
public SimpleScriptSetup() {
setTitle("Formeln");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 831, 406);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
GridBagLayout gbl_contentPane = new GridBagLayout();
gbl_contentPane.columnWidths = new int[]{0, 0};
gbl_contentPane.rowHeights = new int[]{0, 0, 0, 0};
gbl_contentPane.columnWeights = new double[]{1.0, Double.MIN_VALUE};
gbl_contentPane.rowWeights = new double[]{0.0, 1.0, 0.0, Double.MIN_VALUE};
contentPane.setLayout(gbl_contentPane);
JPanel panel = new JPanel();
FlowLayout flowLayout = (FlowLayout) panel.getLayout();
flowLayout.setAlignment(FlowLayout.LEFT);
panel.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
GridBagConstraints gbc_panel = new GridBagConstraints();
gbc_panel.insets = new Insets(0, 0, 5, 0);
gbc_panel.fill = GridBagConstraints.BOTH;
gbc_panel.gridx = 0;
gbc_panel.gridy = 0;
contentPane.add(panel, gbc_panel);
btnNeu = new JButton("neu...");
btnNeu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
scriptTable.getTableMapper().addRow(new SimpleScript());
}
});
panel.add(btnNeu);
btnBearbeiten = new JButton("bearbeiten...");
btnBearbeiten.setEnabled(false);
panel.add(btnBearbeiten);
btnEntfernen = new JButton("entfernen");
btnEntfernen.setEnabled(false);
btnEntfernen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
SimpleScript sscript = scriptTable.getTableMapper().getSelectedRow(SimpleScript.class);
PulsCounterApplication.getApplication().getDatabase().removeSimpleScript( sscript.getId() );
scriptTable.getTableMapper().removeRow(sscript);
}
});
panel.add(btnEntfernen);
JScrollPane scrollPane = new JScrollPane();
GridBagConstraints gbc_scrollPane = new GridBagConstraints();
gbc_scrollPane.fill = GridBagConstraints.BOTH;
gbc_scrollPane.insets = new Insets(0, 0, 5, 0);
gbc_scrollPane.gridx = 0;
gbc_scrollPane.gridy = 1;
contentPane.add(scrollPane, gbc_scrollPane);
scriptTable = new JMappedTable(SimpleScript.class);
scrollPane.setViewportView(scriptTable);
JPanel panel_1 = new JPanel();
FlowLayout flowLayout_1 = (FlowLayout) panel_1.getLayout();
flowLayout_1.setAlignment(FlowLayout.RIGHT);
GridBagConstraints gbc_panel_1 = new GridBagConstraints();
gbc_panel_1.fill = GridBagConstraints.BOTH;
gbc_panel_1.gridx = 0;
gbc_panel_1.gridy = 2;
contentPane.add(panel_1, gbc_panel_1);
JButton btnSchliessen = new JButton("schliessen");
btnSchliessen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
}
});
panel_1.add(btnSchliessen);
initialize();
}
private void initialize(){
this.simpleScripts = new ArrayList<>();
this.simpleScripts.addAll(Arrays.asList(PulsCounterApplication.getApplication().getDatabase().getSimpleScripts()));
this.scriptTable.getTableMapper().setRows(simpleScripts);
this.scriptTable.getTableMapper().setReadOnly(true);
this.scriptTable.getTableMapper().setEditorEnabled(true);
this.scriptTable.getTableMapper().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (scriptTable.getTableMapper().getSelectedRow() == null){
btnBearbeiten.setEnabled(false);
btnEntfernen.setEnabled(false);
} else {
btnBearbeiten.setEnabled(true);
btnEntfernen.setEnabled(true);
}
}
});
this.scriptTable.getTableMapper().addTableMapperListener(new TableMapperListener() {
@Override
public boolean editorRequest(TableMapper tableMapper, Object row) {
if (row != null){
if (SimpleScriptEditor.show(SimpleScriptSetup.this,(SimpleScript)row)){
log(INFO,"store SimpleScript");
PulsCounterApplication.getApplication().getDatabase().storeSimpleScript((SimpleScript)row);
}
return true;
}
return false;
}
@Override
public void ValueChanged(int row, int column) {
// TODO Auto-generated method stub
}
});
}
}