*** empty log message ***
[thera-pi.git] / RehaKassenbuch / src / rehaKassenbuch / RehaKassenbuchPanel.java
blob897ca53a45bb1796c6d8aa684b3fc890dd9055c8
1 package rehaKassenbuch;
3 import java.awt.BorderLayout;
4 import java.awt.event.ActionEvent;
5 import java.awt.event.ActionListener;
6 import java.util.Vector;
8 import javax.swing.ImageIcon;
9 import javax.swing.JButton;
10 import javax.swing.JLabel;
11 import javax.swing.JList;
12 import javax.swing.JOptionPane;
13 import javax.swing.JScrollPane;
15 import org.jdesktop.swingworker.SwingWorker;
16 import org.jdesktop.swingx.JXPanel;
18 import CommonTools.ButtonTools;
19 import CommonTools.DatFunk;
20 import CommonTools.JCompTools;
21 import CommonTools.JRtaTextField;
22 import CommonTools.SqlInfo;
24 import com.jgoodies.forms.layout.CellConstraints;
25 import com.jgoodies.forms.layout.FormLayout;
27 public class RehaKassenbuchPanel extends JXPanel{
29 /**
32 private static final long serialVersionUID = -5639305640753853306L;
34 RehaKassenbuchTab eltern = null;
35 JXPanel content = null;
36 JList kbvorhanden = null;
37 JRtaTextField[] tfs = {null,null,null,null};
38 JButton[] buts = {null,null,null,null};
39 ActionListener al = null;
40 Vector<String> datavec = new Vector<String>();
42 public RehaKassenbuchPanel(RehaKassenbuchTab rkbtab){
43 super();
44 eltern = rkbtab;
45 setLayout(new BorderLayout());
46 activateListener();
47 add(getContent(),BorderLayout.CENTER);
50 private JXPanel getContent(){
51 // 1 2 3 4 5 6 7 8 9
52 String xwerte = "10dlu,200dlu,40dlu,120dlu,40dlu,65dlu,2dlu,60dlu,10dlu";
53 // 1 2 3 4 5 6 7 8 9 10 11 12 13
54 String ywerte = "10dlu,p,2dlu,p,2dlu,p,2dlu,p,2dlu,p,2dlu:g,2dlu,p,10dlu";
55 FormLayout lay = new FormLayout(xwerte,ywerte);
56 CellConstraints cc = new CellConstraints();
57 JXPanel jpan = new JXPanel();
58 jpan.setLayout(lay);
59 /*** rechte Seite ***/
60 tfs[0] = new JRtaTextField("DATUM",true);
61 tfs[0].setText(DatFunk.sHeute());
62 tfs[1] = new JRtaTextField("DATUM",true);
63 tfs[1].setText(DatFunk.sHeute());
64 tfs[2] = new JRtaTextField("nix",true);
65 JLabel lab = new JLabel("neues Kassenbuch erzeugen");
66 jpan.add(lab,cc.xyw(6, 2,3));
67 lab = new JLabel("von Datum");
68 jpan.add(lab,cc.xy(6, 4));
69 jpan.add(tfs[0],cc.xy(8, 4));
70 lab = new JLabel("bis Datum");
71 jpan.add(lab,cc.xy(6, 6));
72 jpan.add(tfs[1],cc.xy(8, 6));
73 lab = new JLabel("Name d. Kassenbuches");
74 jpan.add(lab,cc.xy(6, 8));
75 jpan.add(tfs[2],cc.xy(8, 8));
76 buts[1] = ButtonTools.macheButton("erzeugen", "newtable", al);
77 jpan.add(buts[1],cc.xy(8, 10));
78 /****Mitte****/
79 lab = new JLabel("bislang vorhandene Kassenbücher");
80 jpan.add(lab,cc.xy(4, 2));
82 kbvorhanden = new JList();
83 JScrollPane jscr = JCompTools.getTransparentScrollPane(kbvorhanden);
84 jscr.validate();
85 jpan.add(jscr,cc.xywh(4,4,1,8,CellConstraints.DEFAULT,CellConstraints.FILL));
86 new SwingWorker<Void,Void>(){
87 @Override
88 protected Void doInBackground() throws Exception {
89 long zeit = System.currentTimeMillis();
90 while(!RehaKassenbuch.DbOk){
91 Thread.sleep(50);
92 if(System.currentTimeMillis()-zeit > 10000){
93 break;
96 if(RehaKassenbuch.DbOk){
97 doKBErmitteln();
98 }else{
99 System.exit(0);
101 return null;
104 }.execute();
105 buts[0] = ButtonTools.macheButton("löschen", "deletetable", al);
106 jpan.add(buts[0],cc.xy(4,13));
108 /*** Linke Seite ***/
109 lab = new JLabel("");
110 lab.setIcon(new ImageIcon(RehaKassenbuch.progHome+"icons/GutenbergBibel.png"));
111 jpan.add(lab,cc.xywh(2,2,1,11,CellConstraints.DEFAULT,CellConstraints.CENTER));
113 jpan.validate();
114 return jpan;
117 private void activateListener(){
118 al = new ActionListener(){
119 @Override
120 public void actionPerformed(ActionEvent arg0) {
121 String cmd = arg0.getActionCommand();
122 if(cmd.equals("deletetable")){
123 doDelete();
124 return;
126 if(cmd.equals("newtable")){
127 doNew();
128 return;
134 private void doKBErmitteln(){
135 Vector<Vector<String>> vec = SqlInfo.holeFelder("show tables");
136 datavec.clear();
137 for(int i = 0; i < vec.size();i++){
138 if(vec.get(i).get(0).startsWith("kb_")){
139 datavec.add(vec.get(i).get(0));
142 kbvorhanden.setListData(datavec);
143 eltern.tabellenAktualisieren();
145 private void doDelete(){
146 int item = kbvorhanden.getSelectedIndex();
147 if(item >= 0){
148 int anfrage = JOptionPane.showConfirmDialog(null, "Wollen Sie das Kassenbuch --> "+kbvorhanden.getSelectedValue().toString()+" <-- wirklich löschen?", "Achtung wichtige Benutzeranfrage", JOptionPane.YES_NO_OPTION);
149 if(anfrage == JOptionPane.YES_OPTION){
150 String cmd = "drop table "+ kbvorhanden.getSelectedValue().toString();
151 SqlInfo.sqlAusfuehren(cmd);
152 doKBErmitteln();
156 private void doNew(){
157 try{
158 if(tfs[2].getText().trim().equals("")){
159 JOptionPane.showMessageDialog(null,"Depp!!\nWie soll das Kassenbuch nochmal hei�en????");
160 return;
162 if(tfs[2].getText().trim().indexOf(" ") >= 0){
163 JOptionPane.showMessageDialog(null,"Depp!!\nKeine Leerzeichen im Namen des Kassenbuches");
164 return;
166 String von = DatFunk.sDatInSQL(tfs[0].getText());
167 String bis = DatFunk.sDatInSQL(tfs[1].getText());
168 String tabelle = "kb_"+tfs[2].getText().trim();
169 if(datavec.contains(tabelle)){
170 JOptionPane.showMessageDialog(null,"Ein Kassenbuch mit diesem Namen existiert bereits");
171 return;
173 //doKBErzeugen(tabelle);
174 doKBFuellen(tabelle,von, bis);
175 doKBErmitteln();
176 }catch(Exception ex){
177 JOptionPane.showMessageDialog(null,"Fehler bei der Ausführung neues Kassenbuch erzeugen");
180 public void doKBErzeugen(String tabelle){
181 StringBuffer buf = new StringBuffer();
183 buf.append("CREATE TABLE IF NOT EXISTS "+tabelle+" (" );
184 buf.append("EINNAHME decimal(12,2) DEFAULT NULL,");
185 buf.append("AUSGABE decimal(12,2) DEFAULT NULL,");
186 buf.append("DATUM date DEFAULT NULL,");
187 buf.append("KTEXT varchar(50) DEFAULT NULL,");
188 buf.append("KTO varchar(20) DEFAULT NULL,");
189 buf.append("KSTAND decimal(12,2) DEFAULT NULL,");
190 buf.append("id int(11) NOT NULL AUTO_INCREMENT,");
191 buf.append("PAT_INTERN int(11) NOT NULL DEFAULT '0',");
192 buf.append("REZ_NR varchar(25) DEFAULT NULL,");
193 buf.append("PRIMARY KEY (id),");
194 buf.append("KEY REZ_NR (REZ_NR)");
195 buf.append(") ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=41552") ;
196 SqlInfo.sqlAusfuehren(buf.toString());
199 private void doKBFuellen(String tabelle,String von,String bis){
200 //String cmd = "insert intoselect * into '"+tabelle+"' from kasse where datum >= '"+von+"' and datum <= '"+bis+"'";
201 String cmd2 = "CREATE TABLE "+tabelle+" SELECT * FROM kasse where datum >= '"+von+"' and datum <= '"+bis+"'";
202 System.out.println(cmd2);
203 SqlInfo.sqlAusfuehren(cmd2);
204 SqlInfo.sqlAusfuehren("ALTER TABLE "+tabelle+" ADD PRIMARY KEY (ID)");
205 SqlInfo.sqlAusfuehren("ALTER TABLE "+tabelle+" CHANGE ID ID INT( 11 ) NOT NULL AUTO_INCREMENT");
206 SqlInfo.sqlAusfuehren("ALTER TABLE "+tabelle+" CHANGE KTEXT KTEXT VARCHAR(50) NULL DEFAULT NULL");