*** empty log message ***
[thera-pi.git] / Reha / src / verkauf / LagerGUI.java
blob08c29be3ec1f3c930c5c5189b9e1373a1f043be8
1 package verkauf;
3 import java.awt.BorderLayout;
4 import java.awt.event.MouseEvent;
5 import java.awt.event.MouseListener;
6 import java.util.Vector;
8 import javax.swing.JOptionPane;
9 import javax.swing.JScrollPane;
10 import javax.swing.SwingUtilities;
11 import javax.swing.table.DefaultTableModel;
13 import org.jdesktop.swingx.JXPanel;
14 import org.jdesktop.swingx.JXTable;
15 import org.thera_pi.nebraska.gui.utils.JCompTools;
17 import verkauf.model.Artikel;
19 import com.jgoodies.forms.layout.CellConstraints;
20 import com.jgoodies.forms.layout.FormLayout;
22 public class LagerGUI extends JXPanel {
24 /**
27 private static final long serialVersionUID = 1L;
28 private VerkaufTab owner;
29 private DefaultTableModel lgmod;
30 private JXTable lgtab;
31 private JScrollPane jscr;
32 private Vector<String> columns;
33 private ArtikelDialog adlg;
35 LagerGUI(VerkaufTab owner) {
36 super();
37 this.owner = owner;
39 columns = new Vector<String>();
41 columns.add("Artikel-ID");
42 columns.add("Beschreibung");
43 columns.add("VK-Preis");
44 columns.add("EK-Preis");
45 columns.add("Lieferant");
46 columns.add("Lagerstand");
47 columns.add("");
49 this.setOpaque(false);
50 this.setLayout(new BorderLayout());
51 this.add(getContent(), BorderLayout.CENTER);
55 private JXPanel getContent() {
56 JXPanel pane = new JXPanel();
57 pane.setOpaque(false);
59 String xwerte = "5dlu, p:g, 5dlu";
60 String ywerte = "5dlu, p:g, 5dlu";
62 FormLayout lay = new FormLayout(xwerte, ywerte);
63 CellConstraints cc = new CellConstraints();
64 pane.setLayout(lay);
66 lgmod = new DefaultTableModel();
67 lgtab = new JXTable(lgmod);
68 lgtab.setEditable(false);
69 this.setzeTabDaten(Artikel.liefereArtikelDaten());
70 lgtab.addMouseListener(new MouseListener() {
72 public void mouseClicked(MouseEvent arg0) {
73 if(arg0.getClickCount() == 2) {
74 owner.aktiviereFunktion(VerkaufTab.edit);
78 @Override
79 public void mouseEntered(MouseEvent arg0) {
82 @Override
83 public void mouseExited(MouseEvent arg0) {
86 @Override
87 public void mousePressed(MouseEvent arg0) {
90 @Override
91 public void mouseReleased(MouseEvent arg0) {
94 });
95 jscr = JCompTools.getTransparentScrollPane(lgtab);
96 jscr.validate();
97 pane.add(jscr, cc.xy(2, 2));
99 pane.validate();
100 return pane;
103 public void aktiviereFunktion(int befehl) {
104 if(befehl == VerkaufTab.neu) {
105 doArtikelDialog(-1);
106 this.setzeTabDaten(Artikel.liefereArtikelDaten());
107 } else if(befehl == VerkaufTab.edit) {
108 if(this.lgtab.getSelectedRow() >= 0) {
109 doArtikelDialog(Integer.parseInt((String)this.lgmod.getValueAt(this.lgtab.getSelectedRow(), this.lgmod.getColumnCount()-1)));
110 this.setzeTabDaten(Artikel.liefereArtikelDaten());
111 } else {
112 JOptionPane.showMessageDialog(null, "Wen oder was willst du ändern?");
114 } else if(befehl == VerkaufTab.delete) {
115 if(this.lgtab.getSelectedRow() >= 0) {
116 Artikel.loescheArtikel(Integer.parseInt((String)this.lgmod.getValueAt(this.lgtab.getSelectedRow(), this.lgmod.getColumnCount()-1)));
117 this.setzeTabDaten(Artikel.liefereArtikelDaten());
118 } else {
119 JOptionPane.showMessageDialog(null, "Wen oder was willst du löschen?");
121 } else if(befehl == VerkaufTab.suche) {
122 this.setzeTabDaten(Artikel.sucheArtikelDaten(this.owner.sucheText.getText()));
126 private void setzeTabDaten(Vector<Vector<String>> daten) {
127 this.lgmod.setDataVector(daten, this.columns);
128 this.lgtab.getColumn(this.lgmod.getColumnCount()-1).setMinWidth(0);
129 this.lgtab.getColumn(this.lgmod.getColumnCount()-1).setMaxWidth(0);
132 private void doArtikelDialog(int id) {
133 adlg = new ArtikelDialog(id, this.owner.holePosition(300, 300));
134 SwingUtilities.invokeLater(new Runnable(){
135 public void run(){
136 adlg.setzeFocus();
139 adlg.setModal(true);
140 adlg.setVisible(true);
141 adlg = null;