*** empty log message ***
[thera-pi.git] / Reha / src / hauptFenster / LinkeTaskPane.java
bloba070ad86384d19574b4e2975009cc24f8e88ed8a
1 package hauptFenster;
5 import generalSplash.RehaSplash;
7 import java.awt.Color;
8 import java.awt.Dimension;
9 import java.awt.GridBagConstraints;
10 import java.awt.GridBagLayout;
11 import java.awt.Image;
12 import java.awt.Insets;
13 import java.awt.datatransfer.DataFlavor;
14 import java.awt.datatransfer.Transferable;
15 import java.awt.dnd.DropTarget;
16 import java.awt.dnd.DropTargetDragEvent;
17 import java.awt.dnd.DropTargetDropEvent;
18 import java.awt.dnd.DropTargetEvent;
19 import java.awt.dnd.DropTargetListener;
20 import java.awt.event.ActionEvent;
21 import java.awt.event.ActionListener;
22 import java.awt.event.ComponentEvent;
23 import java.awt.event.ComponentListener;
24 import java.sql.ResultSet;
25 import java.sql.SQLException;
26 import java.sql.Statement;
27 import java.text.SimpleDateFormat;
28 import java.util.ArrayList;
29 import java.util.Date;
30 import java.util.List;
31 import java.util.TooManyListenersException;
32 import java.util.Vector;
34 import javax.swing.ImageIcon;
35 import javax.swing.JComponent;
36 import javax.swing.JOptionPane;
37 import javax.swing.JScrollPane;
38 import javax.swing.SwingUtilities;
39 import javax.swing.UIManager;
41 import kurzAufrufe.KurzAufrufe;
42 import oOorgTools.OOTools;
44 import org.jdesktop.swingworker.SwingWorker;
45 import org.jdesktop.swingx.JXHyperlink;
46 import org.jdesktop.swingx.JXMonthView;
47 import org.jdesktop.swingx.JXPanel;
48 import org.jdesktop.swingx.JXTaskPane;
49 import org.jdesktop.swingx.JXTaskPaneContainer;
50 import org.jdesktop.swingx.border.DropShadowBorder;
51 import org.jdesktop.swingx.plaf.windows.WindowsTaskPaneUI;
52 import org.therapi.reha.patient.AktuelleRezepte;
53 import org.therapi.reha.patient.LadeProg;
55 import rechteTools.Rechte;
56 import sqlTools.ExUndHop;
57 import sqlTools.SqlInfo;
58 import systemEinstellungen.SystemConfig;
59 import systemTools.TestePatStamm;
60 import terminKalender.TerminFenster;
61 import wecker.Wecker;
62 import ag.ion.bion.officelayer.text.ITextDocument;
63 import dialoge.DatumWahl;
64 import events.PatStammEvent;
65 import events.PatStammEventClass;
67 public class LinkeTaskPane extends JXPanel implements ActionListener, ComponentListener, DropTargetListener {
68 /**
71 private static final long serialVersionUID = 1L;
72 //private Reha eltern;
73 private static JXTaskPaneContainer jxTPcontainer = null;
74 public static JXTaskPane tp1 = null;
75 public static JXTaskPane tp2 = null;
76 public static JXTaskPane tp3 = null;
77 public static JXTaskPane tp4 = null;
78 public static JXTaskPane tp5 = null;
79 public static JXTaskPane tp6 = null;
80 private JXHyperlink oo1 = null;
81 private JXHyperlink oo2 = null;
82 public static boolean OOok = true;
83 public static LinkeTaskPane thisClass = null;
84 public static ITextDocument itestdocument = null;
85 private ActionListener al;
86 private String aktTag = "x";
87 private String wahlTag = "y";
88 SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
89 public LinkeTaskPane(){
90 super();
92 this.setBorder(null);
93 this.setBackground(Color.WHITE);
94 //this.eltern = Reha.thisClass;
95 this.setPreferredSize(new Dimension(200,500));
97 GridBagConstraints gridBagConstraints = new GridBagConstraints() ;
98 gridBagConstraints.gridx = 0;
99 gridBagConstraints.anchor = GridBagConstraints.CENTER;
100 gridBagConstraints.fill = GridBagConstraints.BOTH;
101 gridBagConstraints.ipadx = 0;
102 gridBagConstraints.gridy = 0;
103 gridBagConstraints.weightx = 1.0D;
104 gridBagConstraints.weighty = 1.0D;
105 gridBagConstraints.insets = new Insets(5, 2, 5, 2);
107 this.setLayout(new GridBagLayout());
111 * Zuerst die Scrollpane generieren falls der
112 * sp�tere TaskPane-Container die y-Dimension des Fensters �bersteigt.
114 JScrollPane jScrp = new JScrollPane();
115 jScrp.setBorder(null);
116 jScrp.setViewportBorder(null);
117 jScrp.setBackground(Color.white);
118 jScrp.setPreferredSize(new Dimension(180, 100));
119 DropShadowBorder dropShadow = new DropShadowBorder(Color.BLACK, 10, 1, 5, false, true, true, true);
120 jScrp.setBorder(dropShadow);
121 jScrp.getVerticalScrollBar().setUnitIncrement(15);
123 * Jetz generieren wir den Taskpane-Container anschlie�end die TaskPanes
125 jxTPcontainer = new JXTaskPaneContainer();
126 jxTPcontainer.setBackground(new Color(106,130,218));
127 //jxTPcontainer.setPreferredSize(new Dimension(250,0));
129 jxTPcontainer.add(getPatientenStamm());
131 jxTPcontainer.add(getTerminKalender());
133 jxTPcontainer.add(getOpenOfficeOrg());
135 jxTPcontainer.add(getNuetzliches());
137 jxTPcontainer.add(getSystemEinstellungen());
138 jxTPcontainer.add(getMonatsUebersicht());
140 * dann f�gen wir den TaskpaneContainer der ScrollPane hinzu
142 jScrp.setViewportView(jxTPcontainer);
143 jScrp.setVisible(true);
144 jScrp.revalidate();
145 this.add(jScrp,gridBagConstraints);
146 this.validate();
147 thisClass = this;
150 * Task-Pane f�r den Patientenstamm erstellen
151 * @return
154 private JXTaskPane getPatientenStamm(){
155 Image img = null;
156 tp1 = new JXTaskPane();
157 UIManager.put("TaskPane.titleBackgroundGradientStart",Color.WHITE);
158 UIManager.put("TaskPane.titleBackgroundGradientEnd",new Color(200,212,247));
159 UIManager.put("TaskPane.background",new Color(214,223,247));
160 UIManager.put("TaskPane.foreground",Color.BLUE);
161 UIManager.put("TaskPane.useGradient", Boolean.TRUE);
162 WindowsTaskPaneUI wui = new WindowsTaskPaneUI();
163 tp1.setUI(wui);
164 tp1.setTitle("Stammdaten");
165 //tp1.setIcon(new ImageIcon(Reha.proghome+"icons/personen16.gif"));
166 JXHyperlink jxLink = new JXHyperlink();
167 jxLink.setText("Patienten und Rezepte");
168 jxLink.setToolTipText("Strg+P = Patienten-/Rezeptstamm starten");
169 img = new ImageIcon(Reha.proghome+"icons/kontact_contacts.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
170 jxLink.setIcon(new ImageIcon(img));
171 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
172 jxLink.addActionListener(this);
173 jxLink.setEnabled(true);
174 DropTarget dndt = new DropTarget();
175 DropTargetListener dropTargetListener =
176 new DropTargetListener() {
177 public void dragEnter(DropTargetDragEvent e) {}
178 public void dragExit(DropTargetEvent e) {}
179 public void dragOver(DropTargetDragEvent e) {}
180 public void drop(DropTargetDropEvent e) {
181 String mitgebracht = "";
182 try {
183 Transferable tr = e.getTransferable();
184 DataFlavor[] flavors = tr.getTransferDataFlavors();
185 for (int i = 0; i < flavors.length; i++){
186 mitgebracht = (String) tr.getTransferData(flavors[i]);
188 ////System.out.println(mitgebracht);
189 if(mitgebracht.indexOf("°") >= 0){
190 if( ! mitgebracht.split("°")[0].contains("TERMDAT")){
191 return;
193 doPatientDrop(mitgebracht.split("°")[2].trim());
194 //ProgLoader.ProgRoogleFenster(0, mitgebracht);
195 //Reha.thisClass.progLoader.ProgRoogleFenster(0, mitgebracht);
197 ////System.out.println(mitgebracht+" auf Patientenstamm gedropt");
198 } catch (Throwable t) { t.printStackTrace(); }
199 // Ein Problem ist aufgetreten
200 e.dropComplete(true);
202 public void dropActionChanged(
203 DropTargetDragEvent e) {}
205 try {
206 dndt.addDropTargetListener(dropTargetListener);
207 } catch (TooManyListenersException e1) {
208 // TODO Auto-generated catch block
209 e1.printStackTrace();
211 jxLink.setDropTarget(dndt);
213 tp1.add(jxLink);
214 jxLink = new JXHyperlink();
215 jxLink.setText("Ärzte");
216 jxLink.setActionCommand("Arztstamm");
217 jxLink.setToolTipText("Strg+A = Arztstamm starten");
218 img = new ImageIcon(Reha.proghome+"icons/system-users.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
219 jxLink.setIcon(new ImageIcon(img));
220 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
221 jxLink.addActionListener(this);
222 //jxLink.setEnabled(false);
223 tp1.add(jxLink);
224 jxLink = new JXHyperlink();
225 jxLink.setText("Krankenkassen");
226 jxLink.setToolTipText("Strg+K = Kassenstamm starten");
227 img = new ImageIcon(Reha.proghome+"icons/krankenkasse.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
228 jxLink.setIcon(new ImageIcon(img));
229 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
230 jxLink.addActionListener(this);
231 tp1.add(jxLink);
232 tp1.setCollapsed(SystemConfig.taskPaneCollapsed[0]);
233 return tp1;
236 private JXTaskPane getTerminKalender(){
237 Image img = null;
238 tp4 = new JXTaskPane();
239 UIManager.put("TaskPane.titleBackgroundGradientStart",Color.WHITE);
240 UIManager.put("TaskPane.titleBackgroundGradientEnd",new Color(200,212,247));
241 UIManager.put("TaskPane.background",new Color(214,223,247));
242 UIManager.put("TaskPane.useGradient", Boolean.TRUE);
243 WindowsTaskPaneUI wui = new WindowsTaskPaneUI();
244 tp4.setUI(wui);
245 tp4.setTitle("Termin-Management");
246 tp4.setIcon(new ImageIcon(Reha.proghome+"icons/table_mode.png"));
247 JXHyperlink jxLink = new JXHyperlink();
248 jxLink.setText("Terminkalender starten");
249 jxLink.setToolTipText("Strg+T = Terminkalender starten");
250 img = new ImageIcon(Reha.proghome+"icons/evolution-addressbook.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
251 jxLink.setIcon(new ImageIcon(img));
252 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
253 jxLink.addActionListener(this);
254 tp4.add(jxLink);
255 jxLink = new JXHyperlink();
256 DropTarget dndt = new DropTarget();
257 DropTargetListener dropTargetListener =
258 new DropTargetListener() {
259 public void dragEnter(DropTargetDragEvent e) {}
260 public void dragExit(DropTargetEvent e) {}
261 public void dragOver(DropTargetDragEvent e) {}
262 public void drop(DropTargetDropEvent e) {
263 String mitgebracht = "";
264 try {
265 Transferable tr = e.getTransferable();
266 DataFlavor[] flavors = tr.getTransferDataFlavors();
267 for (int i = 0; i < flavors.length; i++){
268 mitgebracht = (String) tr.getTransferData(flavors[i]);
270 //System.out.println("Es wurde mitgebracht "+mitgebracht);
271 if(mitgebracht.indexOf("°") >= 0){
272 if( ! mitgebracht.split("°")[0].contains("TERMDAT")){
273 return;
275 //ProgLoader.ProgRoogleFenster(0, mitgebracht);
276 Reha.thisClass.progLoader.ProgRoogleFenster(0, mitgebracht);
278 ////System.out.println(mitgebracht);
279 } catch (Throwable t) { t.printStackTrace(); }
280 // Ein Problem ist aufgetreten
281 e.dropComplete(true);
283 public void dropActionChanged(
284 DropTargetDragEvent e) {}
286 try {
287 dndt.addDropTargetListener(dropTargetListener);
288 } catch (TooManyListenersException e1) {
289 // TODO Auto-generated catch block
290 e1.printStackTrace();
292 jxLink.setDropTarget(dndt);
293 jxLink.setName("Rugl");
294 String srugl = "<html><font color='#000000'>[</font><font color='#0000ff'>R</font><font color='#ff0000'>u</font>"+
295 "<font color='#00ffff'><b>:</b></font><font color='#0000ff'>g</font><font color='#00ff00'>l</font>"+
296 "<font color='#000000'>]</font>&nbsp;- Die Terminsuchmaschine";
297 jxLink.setText(srugl);
298 //jxLink.setText("[Ru:gl] - Die Terminsuchmaschine");
299 jxLink.setToolTipText("Strg+R = [Ru:gl] starten");
300 img = new ImageIcon(Reha.proghome+"icons/orca.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
301 jxLink.setIcon(new ImageIcon(img));
302 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
303 jxLink.setActionCommand("[Ru:gl] - Die Terminsuchmaschine");
304 jxLink.addActionListener(this);
305 tp4.add(jxLink);
306 jxLink = new JXHyperlink();
307 jxLink.setText("Wochenarbeitszeiten definieren");
308 img = new ImageIcon(Reha.proghome+"icons/alacarte.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
309 jxLink.setIcon(new ImageIcon(img));
310 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
311 jxLink.addActionListener(this);
312 tp4.add(jxLink);
313 jxLink = new JXHyperlink();
314 jxLink.setText("Akutliste - kurzfristige Termine");
315 jxLink.setActionCommand("Akutliste");
316 img = new ImageIcon(Reha.proghome+"icons/vcalendar.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
317 jxLink.setIcon(new ImageIcon(img));
318 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
319 jxLink.addActionListener(this);
320 tp4.add(jxLink);
322 jxLink = new JXHyperlink();
323 jxLink.setText("Thera-\u03C0"+" Erinnerungs-System");
324 //img = new ImageIcon(Reha.proghome+"icons/wecker.gif").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
325 img = new ImageIcon(Reha.proghome+"icons/chronometer.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
326 jxLink.setIcon(new ImageIcon(img));
327 jxLink.setActionCommand("neuerwecker");
328 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
329 jxLink.addActionListener(this);
330 dndt = new DropTarget();
331 dropTargetListener =
332 new DropTargetListener() {
333 public void dragEnter(DropTargetDragEvent e) {}
334 public void dragExit(DropTargetEvent e) {}
335 public void dragOver(DropTargetDragEvent e) {}
336 public void drop(DropTargetDropEvent e) {
337 String mitgebracht = "";
338 try {
339 Transferable tr = e.getTransferable();
340 DataFlavor[] flavors = tr.getTransferDataFlavors();
341 for (int i = 0; i < flavors.length; i++){
342 mitgebracht = (String) tr.getTransferData(flavors[i]);
344 ////System.out.println(mitgebracht);
345 if(mitgebracht.indexOf("°") >= 0){
346 if( ! mitgebracht.split("°")[0].contains("TERMDAT")){
347 return;
349 //ProgLoader.ProgRoogleFenster(0, mitgebracht);
350 doWeckerDrop(mitgebracht);
352 ////System.out.println(mitgebracht);
353 } catch (Throwable t) { t.printStackTrace(); }
354 // Ein Problem ist aufgetreten
355 e.dropComplete(true);
357 public void dropActionChanged(
358 DropTargetDragEvent e) {}
360 try {
361 dndt.addDropTargetListener(dropTargetListener);
362 } catch (TooManyListenersException e1) {
363 // TODO Auto-generated catch block
364 e1.printStackTrace();
366 jxLink.setDropTarget(dndt);
367 jxLink.setName("Rugl");
369 tp4.add(jxLink);
370 tp4.setCollapsed(SystemConfig.taskPaneCollapsed[1]);
371 //tp4.setExpanded(true);
372 return tp4;
376 private JXTaskPane getOpenOfficeOrg(){
377 tp3 = new JXTaskPane();
378 UIManager.put("TaskPane.titleBackgroundGradientStart",Color.WHITE);
379 UIManager.put("TaskPane.titleBackgroundGradientEnd",new Color(200,212,247));
380 UIManager.put("TaskPane.background",new Color(214,223,247));
381 UIManager.put("TaskPane.useGradient", Boolean.TRUE);
382 WindowsTaskPaneUI wui = new WindowsTaskPaneUI();
383 tp3.setUI(wui);
384 tp3.setTitle("OpenOffice.org");
385 tp3.setIcon(SystemConfig.hmSysIcons.get("openoffice"));
386 oo1 = new JXHyperlink();
387 oo1.setText("OpenOffice-Writer");
388 oo1.setClickedColor(new Color(0, 0x33, 0xFF));
389 oo1.setIcon(SystemConfig.hmSysIcons.get("ooowriter"));
390 oo1.addActionListener(this);
391 tp3.add(oo1);
392 oo2 = new JXHyperlink();
393 oo2.setIcon(SystemConfig.hmSysIcons.get("ooocalc"));
394 oo2.setText("OpenOffice-Calc");
395 oo2.setClickedColor(new Color(0, 0x33, 0xFF));
396 oo2.addActionListener(this);
397 tp3.add(oo2);
398 oo2 = new JXHyperlink();
399 oo2.setIcon(SystemConfig.hmSysIcons.get("oooimpress"));
400 oo2.setText("OpenOffice-Impress");
401 oo2.setClickedColor(new Color(0, 0x33, 0xFF));
402 oo2.addActionListener(this);
403 tp3.add(oo2);
404 tp3.setCollapsed(SystemConfig.taskPaneCollapsed[2]);
405 return tp3;
408 private JXTaskPane getNuetzliches(){
409 Image img = null;
410 tp5 = new JXTaskPane();
411 UIManager.put("TaskPane.titleBackgroundGradientStart",Color.WHITE);
412 UIManager.put("TaskPane.titleBackgroundGradientEnd",new Color(200,212,247));
413 UIManager.put("TaskPane.background",new Color(214,223,247));
414 UIManager.put("TaskPane.useGradient", Boolean.TRUE);
415 WindowsTaskPaneUI wui = new WindowsTaskPaneUI();
416 tp5.setUI(wui);
418 tp5.setTitle("Nützliches...");
419 //tp3.setIcon(new ImageIcon("icons/pdf.gif"));
420 JXHyperlink jxLink = new JXHyperlink();
421 jxLink.setText("Thera-PI - Nachrichten");
422 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
423 img = new ImageIcon(Reha.proghome+"icons/emblem-mail.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
424 jxLink.setIcon(new ImageIcon(img));
425 jxLink.addActionListener(this);
426 tp5.add(jxLink);
427 jxLink = new JXHyperlink();
428 jxLink.setText("Thera-PI - Browser");
429 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
430 img = new ImageIcon(Reha.proghome+"icons/home.gif").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
431 jxLink.setIcon(new ImageIcon(img));
432 jxLink.addActionListener(this);
433 tp5.add(jxLink);
434 jxLink = new JXHyperlink();
435 jxLink.setText("piTool - ScreenShots");
436 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
437 img = new ImageIcon(Reha.proghome+"icons/camera_unmount.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
438 //Reha.proghome+"icons/cameraklein.png"
439 jxLink.setIcon(new ImageIcon(img));
440 jxLink.setActionCommand("piTool");
441 jxLink.addActionListener(this);
442 //jxLink.setEnabled(false);
443 tp5.add(jxLink);
444 jxLink = new JXHyperlink();
445 jxLink.setText("piHelp - Hifetextgenerator");
446 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
447 img = new ImageIcon(Reha.proghome+"icons/fragezeichenklein.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
448 jxLink.setIcon(new ImageIcon(img));
449 jxLink.setActionCommand("piHelp");
450 jxLink.addActionListener(this);
451 //jxLink.setEnabled(false);
452 tp5.add(jxLink);
453 jxLink = new JXHyperlink();
454 jxLink.setText("Textbausteine - Therapiebericht");
455 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
456 img = new ImageIcon(Reha.proghome+"icons/abiword.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
457 jxLink.setIcon(new ImageIcon(img));
458 jxLink.setActionCommand("piTextb");
459 jxLink.addActionListener(this);
460 //jxLink.setEnabled(false);
461 tp5.add(jxLink);
463 jxLink = new JXHyperlink();
464 jxLink.setText("Textbausteine - Gutachten");
465 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
466 img = new ImageIcon(Reha.proghome+"icons/abiword.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
467 jxLink.setIcon(new ImageIcon(img));
468 jxLink.setActionCommand("piArztTextb");
469 jxLink.addActionListener(this);
470 //jxLink.setEnabled(false);
471 tp5.add(jxLink);
473 tp5.setCollapsed(SystemConfig.taskPaneCollapsed[3]);
474 return tp5;
478 private JXTaskPane getSystemEinstellungen(){
479 Image img = null;
480 tp2 = new JXTaskPane();
481 UIManager.put("TaskPane.titleBackgroundGradientStart",Color.WHITE);
482 UIManager.put("TaskPane.titleBackgroundGradientEnd",new Color(200,212,247));
483 UIManager.put("TaskPane.background",new Color(214,223,247));
484 UIManager.put("TaskPane.useGradient", Boolean.TRUE);
485 WindowsTaskPaneUI wui = new WindowsTaskPaneUI();
486 tp2.setUI(wui);
488 tp2.setTitle("Systemeinstellungen");
489 tp2.setIcon(new ImageIcon(Reha.proghome+"icons/pdf.gif"));
490 JXHyperlink jxLink = new JXHyperlink();
491 jxLink.setText("Benutzerverwaltung");
492 img = new ImageIcon(Reha.proghome+"icons/contact-new.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
493 jxLink.setIcon(new ImageIcon(img));
494 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
495 jxLink.addActionListener(this);
496 jxLink.setEnabled(true);
497 tp2.add(jxLink);
498 jxLink = new JXHyperlink();
499 jxLink.setText("System Initialisierung");
500 img = new ImageIcon(Reha.proghome+"icons/galternatives.png").getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH);
501 jxLink.setIcon(new ImageIcon(img));
502 jxLink.setClickedColor(new Color(0, 0x33, 0xFF));
503 jxLink.addActionListener(this);
504 tp2.add(jxLink);
505 jxLink = new JXHyperlink();
506 jxLink.setText("Look & Feel");
507 jxLink.addActionListener(this);
508 jxLink.setEnabled(false);
509 tp2.add(jxLink);
510 tp2.setCollapsed(SystemConfig.taskPaneCollapsed[4]);
511 return tp2;
514 private JXTaskPane getMonatsUebersicht(){
515 tp6 = new JXTaskPane();
516 UIManager.put("TaskPane.titleBackgroundGradientStart",Color.WHITE);
517 UIManager.put("TaskPane.titleBackgroundGradientEnd",new Color(200,212,247));
518 UIManager.put("TaskPane.background",new Color(214,223,247));
519 UIManager.put("TaskPane.useGradient", Boolean.TRUE);
520 WindowsTaskPaneUI wui = new WindowsTaskPaneUI();
521 tp6.setUI(wui);
522 tp6.setTitle("Monatsübersicht");
523 final JXMonthView monthView = new JXMonthView ();
524 monthView.setPreferredColumnCount (1);
525 monthView.setPreferredRowCount (1);
526 monthView.setTraversable(true);
527 monthView.setShowingWeekNumber(true);
528 al = new ActionListener(){
529 @Override
530 public void actionPerformed(ActionEvent e) {
531 if(TerminFenster.getThisClass()!= null){
532 Date dat = monthView.getSelectionDate();
533 if(dat==null){
534 return;
536 wahlTag = sdf.format(monthView.getSelectionDate());
537 if(wahlTag.equals(aktTag)){
538 return;
540 aktTag = wahlTag;
541 Reha.thisClass.progLoader.ProgTerminFenster(1, 0);
542 TerminFenster.getThisClass().springeAufDatum(aktTag);
543 }else{
544 Date dat = monthView.getSelectionDate();
545 if(dat==null){
546 return;
548 wahlTag = sdf.format(monthView.getSelectionDate());
549 if(wahlTag.equals(aktTag)){
550 return;
552 aktTag = wahlTag;
553 Reha.thisClass.progLoader.ProgTerminFenster(1, 0);
554 SwingUtilities.invokeLater(new Runnable(){
555 public void run(){
556 TerminFenster.getThisClass().springeAufDatum(aktTag);
564 monthView.addActionListener(al);
565 tp6.add(monthView);
566 tp6.setCollapsed(true);
567 tp6.setCollapsed(SystemConfig.taskPaneCollapsed[5]);
568 return tp6;
572 public static void UpdateUI(){
573 jxTPcontainer.updateUI();
574 tp1.updateUI();
575 tp2.updateUI();
576 tp3.updateUI();
577 tp4.updateUI();
578 tp5.updateUI();
579 tp6.updateUI();
580 ////System.out.println("TaskPane-Container L&F");
583 * Eigener Event-Handler man wird sehen ob das vern�ftig ist.
584 * @Override
586 public void actionPerformed(ActionEvent e) {
587 String cmd = e.getActionCommand();
588 int i;
589 for(i=0;i<1;i++){
590 if (cmd.equals("Look & Feel")) {
591 ExUndHop eUh = new ExUndHop();
592 eUh.setzeStatement("delete from flexlock");
593 //ProgLoader.ProgLookAndFeel(0);
594 break;
597 if (cmd.equals("System Initialisierung")){
598 new SwingWorker<Void,Void>(){
599 @Override
600 protected Void doInBackground() throws Exception {
601 try{
602 Reha.thisFrame.setCursor(Reha.thisClass.wartenCursor);
603 //ProgLoader.SystemInitialisierung();
604 Reha.thisClass.progLoader.SystemInit(1, "");
605 Reha.thisFrame.setCursor(Reha.thisClass.normalCursor);
606 }catch(Exception ex){
607 ex.printStackTrace();
609 return null;
612 }.execute();
614 /*SystemUtil sysUtil = new SystemUtil(Reha.thisFrame);
615 sysUtil.setSize(800,600);
616 sysUtil.setLocation(100,75);
617 sysUtil.setVisible(true);
619 break;
622 if (cmd.equals("Krankenkassen")){
623 new SwingWorker<Void,Void>(){
624 @Override
625 protected Void doInBackground() throws Exception {
626 Reha.thisFrame.setCursor(Reha.thisClass.wartenCursor);
627 Reha.thisClass.progLoader.KassenFenster(0,TestePatStamm.PatStammKasseID());
628 //ProgLoader.KassenFenster(0,TestePatStamm.PatStammKasseID());
629 Reha.thisFrame.setCursor(Reha.thisClass.normalCursor);
630 return null;
632 }.execute();
633 break;
636 if (cmd.equals("Terminkalender starten")){
637 new SwingWorker<Void,Void>(){
638 @Override
639 protected Void doInBackground() throws Exception {
640 Reha.thisFrame.setCursor(Reha.thisClass.wartenCursor);
641 Reha.thisClass.progLoader.ProgTerminFenster(1, (SystemConfig.KalenderStartWochenAnsicht ? 1 : 0));
642 //ProgLoader.ProgTerminFenster(1,0);
643 Reha.thisFrame.setCursor(Reha.thisClass.normalCursor);
644 return null;
646 }.execute();
647 break;
649 if (cmd.equals("Arztstamm")){
650 new SwingWorker<Void,Void>(){
651 @Override
652 protected Void doInBackground() throws Exception {
653 Reha.thisFrame.setCursor(Reha.thisClass.wartenCursor);
654 Reha.thisClass.progLoader.ArztFenster(0,TestePatStamm.PatStammArztID());
655 //ProgLoader.ArztFenster(0,TestePatStamm.PatStammArztID());
656 Reha.thisFrame.setCursor(Reha.thisClass.normalCursor);
657 return null;
659 }.execute();
660 break;
662 if (cmd.equals("Wochenarbeitszeiten definieren")){
663 JComponent termin = AktiveFenster.getFensterAlle("TerminFenster");
664 if(termin != null){
665 JOptionPane.showMessageDialog (null, "Achtung!!!!! \n\nWährend der Arbeitszeit-Definition\n" +
666 "darf der Terminkalender aus Sicherheitsgründen nicht geöffnet sein.\n"+
667 "Beenden Sie den Terminkalender und rufen Sie diese Funktion erneut auf.\n\n");
668 return;
670 Reha.thisClass.progLoader.ProgTerminFenster(0, 2);
671 //ProgLoader.ProgTerminFenster(0,2);
672 //MaskenErstellen();
673 break;
675 if (cmd.equals("monthview")){
676 new DatumWahl(200,200);
677 break;
680 if (cmd.equals("OpenOffice-Writer")){
681 OOTools.starteLeerenWriter();
682 break;
685 if (cmd.equals("OpenOffice-Calc")){
686 OOTools.starteLeerenCalc();
687 break;
690 if (cmd.equals("OpenOffice-Impress")){
691 OOTools.starteLeerenImpress();
692 break;
695 if (cmd.equals("Benutzerverwaltung")){
696 Reha.thisClass.progLoader.BenutzerrechteFenster(1,"");
697 break;
699 if (cmd.equals("[Ru:gl] - Die Terminsuchmaschine")){
700 Reha.thisClass.progLoader.ProgRoogleFenster(0,null);
701 //ProgLoader.ProgRoogleFenster(0,null);
702 break;
704 if (cmd.equals("RTA-Wisssen das Universalwissen")){
705 break;
707 if (cmd.equals("Thera-PI - Browser")){
709 File file = new File(Reha.proghome+"xulrunner/xulrunner.exe");
710 if(! file.exists()){
711 JOptionPane.showMessageDialog(null,"Die Mozilla-Runtime 'xulrunner' wurde nicht, oder nicht korrekt installiert\n"+
712 "Der Thera-PI - Browser kann deshalb nicht gestartet werden");
713 return;
716 new Thread(){
717 public void run(){
718 new LadeProg(Reha.proghome+"RehaWissen.jar");
720 }.start();
721 new SwingWorker<Void,Void>(){
722 @Override
723 protected Void doInBackground() throws Exception {
724 RehaSplash rspl = new RehaSplash(null,"Hilfebrowser laden....dieser Vorgang kann einige Sekunden dauern...");
725 long zeit = System.currentTimeMillis();
726 while(true){
727 Thread.sleep(20);
728 if(System.currentTimeMillis()-zeit > 2000){
729 break;
732 rspl.dispose();
733 return null;
736 }.execute();
739 break;
741 if (cmd.equals("Thera-PI - Nachrichten")){
742 //Reha.nachrichtenRegeln();
743 if(! RehaIOServer.rehaMailIsActive){
744 if(Reha.aktUser.startsWith("Therapeut")){return;}
745 Reha.thisFrame.setCursor(Reha.thisClass.wartenCursor);
746 new Thread(){
747 public void run(){
748 new LadeProg(Reha.proghome+"RehaMail.jar"+" "+Reha.proghome+" "+Reha.aktIK+" "+Reha.xport+" "+Reha.aktUser.replace(" ", "#"));
750 }.start();
752 }else{
753 if(Reha.aktUser.startsWith("Therapeut")){return;}
754 new ReverseSocket().setzeRehaNachricht(RehaIOServer.rehaMailreversePort,"Reha#"+RehaIOMessages.MUST_GOTOFRONT);
760 if (cmd.equals("Neuer Wissensbeitrag anlegen")){
761 JOptionPane.showMessageDialog (null, "Achtung!!!!! \n\nDer Wissens-Generator ist auf diesem System\n\n" +
762 "nicht installiert - oder konnte nicht gefunden werden...\n\n");
763 break;
765 if (cmd.equals("Patienten und Rezepte")){
766 new SwingWorker<Void,Void>(){
767 @Override
768 protected Void doInBackground() throws Exception {
769 setCursor(Reha.thisClass.wartenCursor);
770 Reha.thisClass.progLoader.ProgPatientenVerwaltung(1);
771 //Reha.thisClass.progLoader.ProgTerminFenster(0, 1);
772 //ProgLoader.ProgPatientenVerwaltung(1);
773 setCursor(Reha.thisClass.normalCursor);
774 return null;
776 }.execute();
777 break;
779 if (cmd.equals("piHelp")){
780 new Thread(){
781 public void run(){
782 new LadeProg(Reha.proghome+"piHelp.jar");
784 }.start();
785 break;
787 if (cmd.equals("piTool")){
788 new LadeProg(Reha.proghome+"piTool.jar");
789 break;
791 if (cmd.equals("piTextb")){
792 new LadeProg(Reha.proghome+"TBedit.jar "+
793 Reha.proghome+"ini/"+Reha.aktIK+"/rehajava.ini"+" "+
794 Reha.proghome+"ini/"+Reha.aktIK+"/thbericht.ini");
795 new SwingWorker<Void,Void>(){
796 @Override
797 protected Void doInBackground() throws Exception {
798 RehaSplash rspl = new RehaSplash(null,"Textbaustein-Editor laden....dieser Vorgang kann einige Sekunden dauern...");
799 long zeit = System.currentTimeMillis();
800 while(true){
801 Thread.sleep(20);
802 if(System.currentTimeMillis()-zeit > 2000){
803 break;
806 rspl.dispose();
807 return null;
810 }.execute();
812 break;
814 if (cmd.equals("piArztTextb")){
815 if(!Rechte.hatRecht(Rechte.Sonstiges_textbausteinegutachten, true)){
816 return;
818 new Thread(){
819 public void run(){
820 new LadeProg(Reha.proghome+"ArztBaustein.jar "+
821 Reha.proghome+"ini/"+Reha.aktIK+"/rehajava.ini");
823 }.start();
825 new SwingWorker<Void,Void>(){
826 @Override
827 protected Void doInBackground() throws Exception {
828 RehaSplash rspl = new RehaSplash(null,"Textbaustein-Editor laden....dieser Vorgang kann einige Sekunden dauern...");
829 long zeit = System.currentTimeMillis();
830 while(true){
831 Thread.sleep(20);
832 if(System.currentTimeMillis()-zeit > 2000){
833 break;
836 rspl.dispose();
837 return null;
839 }.execute();
841 break;
846 if (cmd.equals("Akutliste")){
847 if(SqlInfo.holeEinzelFeld("select id from pat5 where akutpat='T' LIMIT 1").equals("")){
848 JOptionPane.showMessageDialog(null,"Keine Akutpatienten im Patientenstamm vermerkt");
849 return;
851 new SwingWorker<Void,Void>(){
852 @Override
853 protected Void doInBackground() throws Exception {
854 Reha.thisFrame.setCursor(Reha.thisClass.wartenCursor);
855 KurzAufrufe.starteFunktion("Akutliste",null,null);
856 Reha.thisFrame.setCursor(Reha.thisClass.cdefault);
857 return null;
859 }.execute();
861 new SwingWorker<Void,Void>(){
862 @Override
863 protected Void doInBackground() throws Exception {
864 RehaSplash rspl = new RehaSplash(null,"Akutliste starten - dieser Vorgang kann einige Sekunden dauern...");
865 long zeit = System.currentTimeMillis();
866 while(true){
867 Thread.sleep(20);
868 if(System.currentTimeMillis()-zeit > 2000){
869 break;
872 rspl.dispose();
873 return null;
876 }.execute();
877 break;
879 if (cmd.equals("neuerwecker")){
880 Wecker wecker = new Wecker(null);
881 wecker.pack();
882 wecker.setVisible(true);
883 wecker = null;
891 @Override
892 public void componentHidden(ComponentEvent e) {
893 // TODO Auto-generated method stub
896 @Override
897 public void componentMoved(ComponentEvent e) {
898 // TODO Auto-generated method stub
901 @Override
902 public void componentResized(ComponentEvent e) {
903 // TODO Auto-generated method stub
904 ////System.out.println("Linke-Task-Pane: "+e);
907 @Override
908 public void componentShown(ComponentEvent e) {
909 // TODO Auto-generated method stub
912 public static void OoOk(){
913 //LinkeTaskPane.thisClass.oo1.setEnabled(true);
914 //LinkeTaskPane.thisClass.oo2.setEnabled(true);
917 public void MaskenErstellen(){
918 String sstmt = "";
919 String behandler = "";
920 Statement stmt = null;
921 try{
922 stmt = (Statement) Reha.thisClass.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
923 ResultSet.CONCUR_UPDATABLE );
924 for(int i=1;i<61;i++){
925 for(int t=1;t<8;t++){
926 behandler = (i<10 ? "0"+i+"BEHANDLER" : Integer.toString(i)+"BEHANDLER");
927 sstmt = "insert into masken set behandler='"+behandler+"' , art = '"+t+"' ,belegt='1', N1='@FREI', TS1='07:00:00', TD1='900', TE1='22:00:00'";
928 ////System.out.println(sstmt);
929 try {
930 stmt.execute(sstmt);
931 } catch (SQLException e) {
932 // TODO Auto-generated catch block
933 e.printStackTrace();
938 } catch (SQLException e) {
939 // TODO Auto-generated catch block
940 e.printStackTrace();
941 }finally {
942 if (stmt != null) {
943 try {
944 stmt.close();
945 } catch (SQLException e) {
946 // TODO Auto-generated catch block
947 e.printStackTrace();
952 private void doWeckerDrop(String drops){
953 Wecker wecker = new Wecker(drops);
954 wecker.pack();
955 wecker.setVisible(true);
956 wecker = null;
958 private void doPatientDrop(String rez_nr){
959 String pat_int = "";
960 String reznr = rez_nr;
961 boolean inhistorie = false;
962 int ind = reznr.indexOf("\\");
963 if(ind >= 0){
964 reznr = reznr.substring(0,ind);
967 Vector<String> vec = SqlInfo.holeSatz("verordn", "pat_intern", "rez_nr='"+reznr+"'",(List<?>) new ArrayList<String>() );
968 if(vec.size() == 0){
969 vec = SqlInfo.holeSatz("lza", "pat_intern", "rez_nr='"+reznr+"'",(List<?>) new ArrayList<String>() );
970 if(vec.size() == 0){
971 JOptionPane.showMessageDialog(null,"Rezept weder im aktuellen Rezeptstamm noch in der Historie vorhanden!\nIst die eingetragene Rezeptnummer korrekt?");
972 return;
973 }else{
974 JOptionPane.showMessageDialog(null,"Rezept ist bereits abgerechnet und somit in der Historie des Patienten!");
975 inhistorie = true;
978 vec = SqlInfo.holeSatz("pat5", "pat_intern", "pat_intern='"+vec.get(0)+"'",(List<?>) new ArrayList<String>() );
979 if(vec.size() == 0){
980 JOptionPane.showMessageDialog(null,"Patient mit zugeordneter Rezeptnummer -> "+reznr+" <- wurde nicht gefunden");
981 return;
983 pat_int = (String) vec.get(0);
984 JComponent patient = AktiveFenster.getFensterAlle("PatientenVerwaltung");
985 final String xreznr = reznr;
986 final boolean xinhistorie = inhistorie;
987 if(patient == null){
988 final String xpat_int = pat_int;
989 new SwingWorker<Void,Void>(){
990 protected Void doInBackground() throws Exception {
991 JComponent xpatient = AktiveFenster.getFensterAlle("PatientenVerwaltung");
992 Reha.thisClass.progLoader.ProgPatientenVerwaltung(1);
993 while( (xpatient == null) ){
994 Thread.sleep(20);
995 xpatient = AktiveFenster.getFensterAlle("PatientenVerwaltung");
997 while( (!AktuelleRezepte.initOk) ){
998 Thread.sleep(20);
1001 String s1 = "#PATSUCHEN";
1002 String s2 = (String) xpat_int;
1003 PatStammEvent pEvt = new PatStammEvent(Reha.thisClass.terminpanel);
1004 pEvt.setPatStammEvent("PatSuchen");
1005 pEvt.setDetails(s1,s2,"#REZHOLEN-"+xreznr) ;
1006 PatStammEventClass.firePatStammEvent(pEvt);
1007 if(xinhistorie){
1008 Reha.thisClass.patpanel.getTab().setSelectedIndex(1);
1009 }else{
1010 Reha.thisClass.patpanel.getTab().setSelectedIndex(0);
1013 return null;
1016 }.execute();
1017 }else{
1018 Reha.thisClass.progLoader.ProgPatientenVerwaltung(1);
1019 String s1 = "#PATSUCHEN";
1020 String s2 = (String) pat_int;
1021 PatStammEvent pEvt = new PatStammEvent(Reha.thisClass.terminpanel);
1022 pEvt.setPatStammEvent("PatSuchen");
1023 pEvt.setDetails(s1,s2,"#REZHOLEN-"+xreznr) ;
1024 PatStammEventClass.firePatStammEvent(pEvt);
1025 if(xinhistorie){
1026 Reha.thisClass.patpanel.getTab().setSelectedIndex(1);
1027 }else{
1028 Reha.thisClass.patpanel.getTab().setSelectedIndex(0);
1034 /************************************************************/
1036 /************************************************************/
1038 @Override
1039 public void dragEnter(DropTargetDragEvent arg0) {
1040 // TODO Auto-generated method stub
1041 ////System.out.println("Enter---->"+arg0);
1042 ////System.out.println(((JComponent)arg0.getSource()).getName());
1045 @Override
1046 public void dragExit(DropTargetEvent arg0) {
1047 // TODO Auto-generated method stub
1050 @Override
1051 public void dragOver(DropTargetDragEvent arg0) {
1052 // TODO Auto-generated method stub
1055 @Override
1056 public void drop(DropTargetDropEvent arg0) {
1057 // TODO Auto-generated method stub
1058 ////System.out.println(arg0);
1061 @Override
1062 public void dropActionChanged(DropTargetDragEvent arg0) {
1063 // TODO Auto-generated method stub
1067 /************************************************************/
1072 class ladeProg{
1074 public ladeProg(String prog){
1075 String progname= null;
1076 if(prog.indexOf(" ")>=0){
1077 progname = prog.split(" ")[0];
1078 }else{
1079 progname = prog;
1081 File f = new File(progname);
1082 if(! f.exists()){
1083 JOptionPane.showMessageDialog(null,"Diese Software ist auf Ihrem System nicht installiert!");
1084 return;
1086 String vmload = "java -jar ";
1087 String commandx = vmload + prog;
1088 File ausgabedatei = new File(Reha.proghome+"laden.bat");
1089 FileWriter fw;
1090 try {
1091 fw = new FileWriter(ausgabedatei);
1092 BufferedWriter bw = new BufferedWriter(fw);
1093 bw.write(commandx);
1094 bw.close();
1095 } catch (IOException e1) {
1096 e1.printStackTrace();
1098 final String xprog = prog;
1099 new SwingWorker<Void, Void>(){
1101 @Override
1102 protected Void doInBackground() throws Exception {
1103 try {
1104 List<String>list = Arrays.asList(xprog.split(" "));
1105 ArrayList<String> alist = new ArrayList<String>(list);
1106 alist.add(0,"-jar");
1107 alist.add(0,"java");
1108 //System.out.println(list);
1109 //System.out.println("Die Liste = "+alist);
1111 //System.out.println("Liste = "+list);
1112 Process process = new ProcessBuilder(alist).start();
1113 InputStream is = process.getInputStream();
1114 InputStreamReader isr = new InputStreamReader(is);
1115 BufferedReader br = new BufferedReader(isr);
1116 String line;
1117 while ((line = br.readLine()) != null) {
1118 //System.out.println(line);
1120 is.close();
1121 isr.close();
1122 br.close();
1125 } catch (IOException e) {
1126 // TODO Auto-generated catch block
1127 e.printStackTrace();
1129 return null;
1132 }.execute();