3 import java
.awt
.AWTEvent
;
4 import java
.awt
.AlphaComposite
;
5 import java
.awt
.BorderLayout
;
7 import java
.awt
.Component
;
8 import java
.awt
.Cursor
;
9 import java
.awt
.Dimension
;
10 import java
.awt
.Event
;
11 import java
.awt
.FlowLayout
;
13 import java
.awt
.GradientPaint
;
14 import java
.awt
.Graphics
;
15 import java
.awt
.Graphics2D
;
16 import java
.awt
.Image
;
17 import java
.awt
.LinearGradientPaint
;
18 import java
.awt
.Toolkit
;
19 import java
.awt
.datatransfer
.DataFlavor
;
20 import java
.awt
.datatransfer
.StringSelection
;
21 import java
.awt
.datatransfer
.Transferable
;
22 import java
.awt
.dnd
.DnDConstants
;
23 import java
.awt
.dnd
.DragGestureEvent
;
24 import java
.awt
.dnd
.DragGestureListener
;
25 import java
.awt
.dnd
.DragGestureRecognizer
;
26 import java
.awt
.dnd
.DragSource
;
27 import java
.awt
.dnd
.DropTarget
;
28 import java
.awt
.dnd
.DropTargetDragEvent
;
29 import java
.awt
.dnd
.DropTargetDropEvent
;
30 import java
.awt
.dnd
.DropTargetEvent
;
31 import java
.awt
.dnd
.DropTargetListener
;
32 import java
.awt
.event
.AWTEventListener
;
33 import java
.awt
.event
.ActionEvent
;
34 import java
.awt
.event
.ActionListener
;
35 import java
.awt
.event
.ComponentEvent
;
36 import java
.awt
.event
.ComponentListener
;
37 import java
.awt
.event
.ContainerEvent
;
38 import java
.awt
.event
.ContainerListener
;
39 import java
.awt
.event
.FocusEvent
;
40 import java
.awt
.event
.FocusListener
;
41 import java
.awt
.event
.KeyEvent
;
42 import java
.awt
.event
.KeyListener
;
43 import java
.awt
.event
.MouseAdapter
;
44 import java
.awt
.event
.MouseEvent
;
45 import java
.awt
.event
.MouseListener
;
46 import java
.awt
.event
.MouseMotionListener
;
47 import java
.awt
.event
.WindowEvent
;
48 import java
.awt
.event
.WindowListener
;
49 import java
.awt
.event
.WindowStateListener
;
50 import java
.awt
.geom
.Point2D
;
51 import java
.beans
.PropertyChangeEvent
;
52 import java
.beans
.PropertyChangeListener
;
53 import java
.io
.BufferedReader
;
55 import java
.io
.IOException
;
56 import java
.io
.InputStream
;
57 import java
.io
.InputStreamReader
;
58 import java
.io
.OutputStream
;
59 import java
.net
.ServerSocket
;
60 import java
.net
.Socket
;
61 import java
.sql
.Connection
;
62 import java
.sql
.DriverManager
;
63 import java
.sql
.SQLException
;
64 import java
.util
.Date
;
65 import java
.util
.HashMap
;
66 import java
.util
.HashSet
;
67 import java
.util
.Iterator
;
68 import java
.util
.TimerTask
;
69 import java
.util
.TooManyListenersException
;
70 import java
.util
.Vector
;
72 import javax
.media
.CannotRealizeException
;
73 import javax
.media
.CaptureDeviceInfo
;
74 import javax
.media
.Manager
;
75 import javax
.media
.MediaLocator
;
76 import javax
.media
.NoPlayerException
;
77 import javax
.media
.Player
;
78 import javax
.media
.format
.YUVFormat
;
79 import javax
.swing
.BorderFactory
;
80 import javax
.swing
.ImageIcon
;
81 import javax
.swing
.JComponent
;
82 import javax
.swing
.JDesktopPane
;
83 import javax
.swing
.JFrame
;
84 import javax
.swing
.JInternalFrame
;
85 import javax
.swing
.JLabel
;
86 import javax
.swing
.JMenu
;
87 import javax
.swing
.JMenuBar
;
88 import javax
.swing
.JMenuItem
;
89 import javax
.swing
.JOptionPane
;
90 import javax
.swing
.JProgressBar
;
91 import javax
.swing
.JScrollPane
;
92 import javax
.swing
.JSplitPane
;
93 import javax
.swing
.KeyStroke
;
94 import javax
.swing
.SwingConstants
;
95 import javax
.swing
.SwingUtilities
;
96 import javax
.swing
.Timer
;
97 import javax
.swing
.TransferHandler
;
98 import javax
.swing
.UIDefaults
;
99 import javax
.swing
.UIManager
;
100 import javax
.swing
.UnsupportedLookAndFeelException
;
101 import javax
.swing
.plaf
.FontUIResource
;
102 import javax
.swing
.plaf
.basic
.BasicSplitPaneUI
;
104 import krankenKasse
.KassenPanel
;
105 import menus
.TerminMenu
;
106 import oOorgTools
.OOTools
;
108 import opencard
.core
.service
.CardServiceException
;
109 import opencard
.core
.terminal
.CardTerminalException
;
111 import org
.jdesktop
.swingworker
.SwingWorker
;
112 import org
.jdesktop
.swingx
.JXFrame
;
113 import org
.jdesktop
.swingx
.JXPanel
;
114 import org
.jdesktop
.swingx
.JXStatusBar
;
115 import org
.jdesktop
.swingx
.JXTitledPanel
;
116 import org
.jdesktop
.swingx
.border
.DropShadowBorder
;
117 import org
.jdesktop
.swingx
.painter
.CompoundPainter
;
118 import org
.jdesktop
.swingx
.painter
.MattePainter
;
119 import org
.thera_pi
.updates
.TestForUpdates
;
120 import org
.therapi
.reha
.patient
.LadeProg
;
121 import org
.therapi
.reha
.patient
.PatientHauptPanel
;
123 import rechteTools
.Rechte
;
124 import rehaInternalFrame
.JRehaInternal
;
125 import rehaInternalFrame
.OOODesktopManager
;
126 import roogle
.RoogleFenster
;
127 import CommonTools
.ExUndHop
;
128 import systemEinstellungen
.SystemConfig
;
129 import systemEinstellungen
.SystemInit
;
130 import systemEinstellungen
.SystemPreislisten
;
131 import CommonTools
.Colors
;
132 import CommonTools
.FileTools
;
133 import CommonTools
.JRtaTextField
;
134 import systemTools
.RehaPainters
;
135 import systemTools
.RezeptFahnder
;
136 import systemTools
.TestePatStamm
;
137 import terminKalender
.DatFunk
;
138 import terminKalender
.ParameterLaden
;
139 import terminKalender
.TerminFenster
;
140 import urlaubBeteiligung
.Beteiligung
;
141 import urlaubBeteiligung
.Urlaub
;
142 import verkauf
.VerkaufTab
;
143 import wecker
.Wecker
;
144 import CommonTools
.FireRehaError
;
145 import CommonTools
.INIFile
;
146 import CommonTools
.INITool
;
147 import CommonTools
.SqlInfo
;
148 import CommonTools
.StartOOApplication
;
149 import abrechnung
.AbrechnungGKV
;
150 import abrechnung
.AbrechnungReha
;
151 import ag
.ion
.bion
.officelayer
.application
.IOfficeApplication
;
152 import ag
.ion
.bion
.officelayer
.application
.OfficeApplicationException
;
153 import anmeldungUmsatz
.Anmeldungen
;
154 import anmeldungUmsatz
.Umsaetze
;
155 import arztFenster
.ArztPanel
;
156 import barKasse
.Barkasse
;
157 import benutzerVerwaltung
.BenutzerRechte
;
159 import com
.jgoodies
.forms
.layout
.CellConstraints
;
160 import com
.jgoodies
.forms
.layout
.FormLayout
;
161 import com
.jgoodies
.looks
.HeaderStyle
;
162 import com
.jgoodies
.looks
.Options
;
163 import com
.sun
.star
.uno
.Exception
;
165 import dialoge
.RehaSmartDialog
;
166 import dta301
.Dta301
;
167 import entlassBerichte
.EBerichtPanel
;
168 import CommonTools
.RehaEvent
;
169 import CommonTools
.RehaEventClass
;
170 import CommonTools
.RehaEventListener
;
171 import geraeteInit
.BarCodeScanner
;
173 public class Reha
implements FocusListener
,ComponentListener
,ContainerListener
,MouseListener
,MouseMotionListener
,KeyListener
,RehaEventListener
, WindowListener
, WindowStateListener
, ActionListener
{
175 public PatientHauptPanel patpanel
= null;
176 public EBerichtPanel eberichtpanel
= null;
177 public KassenPanel kassenpanel
= null;
178 public ArztPanel arztpanel
= null;
179 public TerminFenster terminpanel
= null;
180 public RoogleFenster rooglepanel
= null;
181 public AbrechnungGKV abrechnungpanel
= null;
182 public Anmeldungen anmeldungenpanel
= null;
183 public Umsaetze umsaetzepanel
= null;
184 public Beteiligung beteiligungpanel
= null;
185 public Urlaub urlaubpanel
= null;
186 public VerkaufTab verkaufpanel
= null;
187 public Barkasse barkassenpanel
= null;
188 public AbrechnungReha rehaabrechnungpanel
= null;
189 public BenutzerRechte benutzerrechtepanel
= null;
190 public SystemInit systeminitpanel
= null;
191 public Dta301 dta301panel
= null;
193 public final int patiddiff
= 5746;
194 private JXFrame jFrame
= null;
196 private JMenuBar jJMenuBar
= null;
197 private JMenu fileMenu
= null;
198 private JMenu stammMenu
= null;
199 private JMenu abrechnungMenu
= null;
200 private JMenu statistikMenu
= null;
201 private JMenu toolsMenu
= null;
202 private JMenu bueroMenu
= null;
203 private JMenu verkaufMenu
= null;
204 private JMenu urlaubMenu
= null;
205 private JMenu helpMenu
= null;
206 private JMenuItem exitMenuItem
= null;
207 private JMenuItem aboutMenuItem
= null;
208 public JXStatusBar jXStatusBar
= null;
209 private int dividerLocLR
= 0;
210 public JLabel shiftLabel
= null;
211 public static boolean dividerOk
= false;
212 public JLabel messageLabel
= null;
213 public JLabel dbLabel
= null;
214 public JXPanel versionbar
= null;
215 public JLabel mousePositionLabel
= null;
216 public JXPanel jxPinContainer
= null;
217 public JXPanel jxCopyContainer
= null;
218 public JLabel copyLabel
= null;
220 public JXPanel jxLinks
= null;
221 public JXPanel jxRechts
= null;
222 public JXPanel jxRechtsOben
= null;
223 public JXPanel jxRechtsUnten
= null;
224 public UIFSplitPane jSplitLR
= null;
225 public UIFSplitPane jSplitRechtsOU
= null;
226 public JXTitledPanel jxTitelOben
= null;
227 public JXTitledPanel jxTitelUnten
= null;
228 public static Reha thisClass
; // @jve:decl-index=0:
229 public static JXFrame thisFrame
;
231 public JXPanel jInhaltOben
= null;
232 public JXPanel jInhaltUnten
= null;
233 public JXPanel jEventTargetOben
= null;
234 public JXPanel jEventTargetUnten
= null;
235 public JXPanel jContainerOben
= null;
236 public JXPanel jContainerUnten
= null;
237 public JXPanel jLeerOben
= null;
238 public JXPanel jLeerUnten
= null;
240 public boolean initok
= false;
241 public boolean splashok
= false;
243 public RehaSmartDialog splash
= null;
245 public Connection conn
= null;
246 public Connection hilfeConn
= null;
248 public static boolean DbOk
= false;
249 public static boolean HilfeDbOk
= false;
251 public static String progRechte
= "0123";
253 public final static String Titel
= "Thera-\u03C0";
255 public boolean KollegenOk
= false;
256 public static String aktLookAndFeel
= "";
257 public static SystemConfig sysConf
= null;
258 public static IOfficeApplication officeapplication
;
260 public static BarCodeScanner barcodeScanner
= null;
262 public static RehaSockServer RehaSock
= null;
263 @SuppressWarnings("rawtypes")
264 public static CompoundPainter
[] RehaPainter
= {null,null,null,null,null};
265 public Vector
<Object
> aktiveFenster
= new Vector
<Object
>();
266 public static String proghome
= "";
267 public static String userHome
= "";
268 public final String NULL_DATE
= " . . ";
269 public static boolean warten
=true;
270 public static String aktIK
= "000000000";
271 public static String aktMandant
= "Ãœbungs-Mandant";
272 public static String aktUser
= "";
273 public static String kalMin
= "";
274 public static String kalMax
= "";
275 public static String Titel2
;
276 public static String osVersion
= "";
277 public int vollsichtbar
= 0;
278 public JDesktopPane deskrechts
= new JDesktopPane();
279 public JDesktopPane
[] desktops
= {null,null,null,null};
280 public JDesktopPane desktopUnten
= new JDesktopPane();
281 public JXPanel jpOben
= null;
282 public JXPanel jpUnten
= null;
284 public static boolean patientFirstStart
= true;
285 public static boolean terminFirstStart
= true;
286 public static boolean kassenFirstStart
= true;
287 public static boolean arztFirstStart
= true;
288 public static boolean iconsOk
= false;
289 public static ImageIcon rehaBackImg
= null;
290 public JLabel bunker
= null;
291 public JProgressBar Rehaprogress
= null;
292 public final Cursor wartenCursor
= new Cursor(Cursor
.WAIT_CURSOR
);
293 public final Cursor normalCursor
= new Cursor(Cursor
.DEFAULT_CURSOR
);
294 public final Cursor kreuzCursor
= new Cursor(Cursor
.CROSSHAIR_CURSOR
);
295 public final Cursor cmove
= new Cursor(Cursor
.MOVE_CURSOR
); // @jve:decl-index=0:
296 public final Cursor cnsize
= new Cursor(Cursor
.N_RESIZE_CURSOR
); // @jve:decl-index=0:
297 public final Cursor cnwsize
= new Cursor(Cursor
.NW_RESIZE_CURSOR
); // @jve:decl-index=0:
298 public final Cursor cnesize
= new Cursor(Cursor
.NE_RESIZE_CURSOR
); // @jve:decl-index=0:
299 public final Cursor cswsize
= new Cursor(Cursor
.SW_RESIZE_CURSOR
); // @jve:decl-index=0:
300 public final Cursor cwsize
= new Cursor(Cursor
.W_RESIZE_CURSOR
); // @jve:decl-index=0:
301 public final Cursor csesize
= new Cursor(Cursor
.SE_RESIZE_CURSOR
); // @jve:decl-index=0:
302 public final Cursor cssize
= new Cursor(Cursor
.S_RESIZE_CURSOR
); // @jve:decl-index=0:
303 public final Cursor cesize
= new Cursor(Cursor
.E_RESIZE_CURSOR
); // @jve:decl-index=0:
304 public final Cursor cdefault
= new Cursor(Cursor
.DEFAULT_CURSOR
); // @jve:decl-index=0:
307 public GradientPaint gp1
= new GradientPaint(0,0,new Color(112,141,255),0,25,Color
.WHITE
,true);
308 public GradientPaint gp2
= new GradientPaint(0,0,new Color(112,141,120),0,25,Color
.WHITE
,true);
309 public HashMap
<String
,CompoundPainter
<Object
>> compoundPainter
= new HashMap
<String
,CompoundPainter
<Object
>>();
310 /**************************/
311 public JXPanel desktop
= null;
312 public ProgLoader progLoader
=null;
314 public static boolean demoversion
= false;
315 public static boolean vollbetrieb
= true;
317 public static String aktuelleVersion
= "2015-12-08-DB=";
319 public static Vector
<Vector
<Object
>> timerVec
= new Vector
<Vector
<Object
>>();
320 public static Timer fangoTimer
= null;
321 public static boolean timerLaeuft
= false;
322 public static boolean timerInBearbeitung
= false;
324 public static java
.util
.Timer nachrichtenTimer
= null;
325 public static boolean nachrichtenLaeuft
= false;
326 public static boolean nachrichtenInBearbeitung
= false;
327 //final public JProgressBar rehaNachrichtenprogress = new JProgressBar();
329 public static boolean updatesBereit
= false;
330 public static boolean updatesChecken
= true;
331 public static int toolsDlgRueckgabe
= -1;
333 public RehaIOServer rehaIOServer
= null;
334 public static int xport
= 6000;
335 public static boolean isStarted
= false;
336 public static int divider1
= -1;
337 public static int divider2
= -1;
339 public static int zugabex
= 20;
340 public static int zugabey
= 20;
342 public OcKVK ocKVK
= null;
344 public CaptureDeviceInfo device
= null;
345 public MediaLocator ml
= null;
346 public Player player
= null;
348 public static JComponent dragDropComponent
= null;
350 public int lastSelectedPat
= -1;
351 public String lastSelectedValue
= "";
352 public int lastSelectedFloskel
= -1;
354 public boolean isLibreOffice
= false;
355 public SqlInfo sqlInfo
= null;
356 public static int nachladenDB
= 0;
357 public static int dbLoadError
= 1;
359 public static String lastCommId
= "";
360 public static String lastCommAction
= "";
361 public boolean lastCommActionConfirmed
= true;
363 public RehaCommServer rehaCommServer
= null;
364 public static boolean phoneOk
= false;
366 public static Vector
<Vector
<String
>> vRGAFoffen
;
367 public static boolean bRGAFoffen
;
368 public static boolean bHatMerkmale
;
371 * Einschalten für Geschwindigkeitstests
372 * zusätzlich in der Terminkalender.java die Zeilen
373 * 2670, 2671,2714,2928,2929
374 public static int datecounts = 0;
375 public static long startmillis = 0;
378 @SuppressWarnings({ "unchecked", "rawtypes" })
379 public static void main(String
[] args
) {
380 String prog
= java
.lang
.System
.getProperty("user.dir");
381 String homedir
= java
.lang
.System
.getProperty("user.home");
382 osVersion
= System
.getProperty("os.name");
383 if(osVersion
.contains("Linux")){
384 proghome
= "/opt/RehaVerwaltung/";
385 }else if(osVersion
.contains("Windows")){
386 proghome
= prog
.substring(0, 2)+"/RehaVerwaltung/";
387 }else if(osVersion
.contains("Mac OS X")){
388 System
.out
.println("Vermutlich MAC, Output = "+osVersion
);
389 proghome
= homedir
+"/RehaVerwaltung/";
392 //Reha.proghome = "C:/RehaVerwaltung/";
393 System
.out
.println("Programmverzeichnis = "+Reha
.proghome
);
396 String javaPfad
= java
.lang
.System
.getProperty("java.home").replaceAll("\\\\","/");
398 INITool.setDBInis(new String[] {"preisgruppen.ini","terminkalender.ini","gruppen.ini","icons.ini","fristen.ini","color.ini",
399 "dta301.ini","firmen.ini","gutachten.ini","ktraeger.ini","offeneposten.ini","oprgaf.ini","sqlmodul.ini","thbericht.ini"});
403 String
[] split
= args
[0].split("@");
405 aktMandant
= split
[1];
407 for(int i
= 1; i
< args
.length
;i
++){
409 aktMandant
+= " "+args
[i
];
410 }catch(NullPointerException ex
){
411 aktMandant
= split
[1];
416 INIFile inif
= new INIFile(Reha
.proghome
+"ini/mandanten.ini");
417 int DefaultMandant
= inif
.getIntegerProperty("TheraPiMandanten", "DefaultMandant");
418 aktIK
= inif
.getStringProperty("TheraPiMandanten", "MAND-IK"+DefaultMandant
);
419 aktMandant
= inif
.getStringProperty("TheraPiMandanten", "MAND-NAME"+DefaultMandant
);
421 INITool
.init(proghome
+"ini/"+aktIK
+"/");
422 System
.out
.println("Insgesamt sind "+Integer
.toString(INITool
.getDBInis().length
)+" INI-Dateien in der Tabelle inidatei abgelegt");
424 Titel2
= " --> [Mandant: "+aktMandant
+"]";
425 //System.out.println(Titel2);
426 /**************************/
430 RehaSock
= new RehaSockServer();
431 } catch (IOException e
) {
432 System
.out
.println("Kann RehaSocket-Server nicht starten");
437 /**************************/
442 System
.out
.println("Starte RehaxSwing.jar");
443 process
= new ProcessBuilder("java","-Djava.net.preferIPv4Stack=true", "-jar",proghome
+"RehaxSwing.jar").start();
444 InputStream is
= process
.getInputStream();
446 InputStreamReader isr
= new InputStreamReader(is
);
447 BufferedReader br
= new BufferedReader(isr
);
449 while ((br
.readLine()) != null) {
450 //System.out.println(br.readLine());
455 System
.out
.println("RehaxSwing beendet");
456 } catch (IOException e
) {
462 while(warten
&& i
< 50){
466 } catch (InterruptedException e
) {
471 * War nur bis WinXP sinnvoll einsetzbar
472 new SocketClient().setzeInitStand("Überprüfe Dateisystem");
474 if(osVersion.contains("Windows")){
475 f = new File(javaPfad+"/bin/win32com.dll");
477 new SocketClient().setzeInitStand("Kopiere win32com.dll");
479 FileTools.copyFile(new File(proghome+"Libraries/lib/serial/win32com.dll"),f, 4096, false);
480 } catch (IOException e) {
484 ////System.out.println("Systemdateien win32com.dll existiert bereits, kopieren nicht erforderlich");
487 f = new File(javaPfad+"/lib/ext/comm.jar");
490 new SocketClient().setzeInitStand("Kopiere comm.jar");
491 FileTools.copyFile(new File(proghome+"Libraries/lib/serial/comm.jar"),f, 4096, false);
492 } catch (IOException e) {
496 ////System.out.println("Systemdateien comm.jar existiert bereits, kopieren nicht erforderlich");
498 f = new File(javaPfad+"/lib/javax.comm.properties");
501 new SocketClient().setzeInitStand("Kopiere javax.comm.properties");
502 FileTools.copyFile(new File(proghome+"Libraries/lib/serial/javax.comm.properties"),f, 4096, false);
503 } catch (IOException e) {
507 ////System.out.println("Systemdateien javax.comm.properties existiert bereits, kopieren nicht erforderlich");
513 new SocketClient().setzeInitStand("System-Icons laden");
518 } catch (InterruptedException e
) {
522 SystemConfig
.SystemIconsInit();
524 new SocketClient().setzeInitStand("System-Config initialisieren");
530 SystemConfig sysConf
= new SystemConfig();
532 setSystemConfig(sysConf
);
534 sysConf
.SystemStart(Reha
.proghome
);
536 sysConf
.SystemInit(1);
538 sysConf
.SystemInit(2);
541 UIManager
.setLookAndFeel((aktLookAndFeel
= SystemConfig
.aHauptFenster
.get(4)));
542 } catch (ClassNotFoundException e1
) {
543 e1
.printStackTrace();
544 } catch (InstantiationException e1
) {
545 e1
.printStackTrace();
546 } catch (IllegalAccessException e1
) {
547 e1
.printStackTrace();
548 } catch (UnsupportedLookAndFeelException e1
) {
549 e1
.printStackTrace();
551 /***********************/
552 Color c
= UIManager
.getColor("Button.disabledForeground");
554 UIManager
.put("Button.disabledText", new Color(112,126,106)/*original = Color.BLACK*/);
556 UIManager
.put("Button.disabledText", new Color(112,126,106)/*original = Color.BLACK*/);
557 UIManager
.put("Button.disabledForeground",new Color(112,126,106)/*original = Color.BLACK*/);
559 UIManager
.put("ComboBox.disabledForeground", Color
.RED
);
561 /***********************/
563 javax
.swing
.plaf
.FontUIResource fontUIDresource
= new FontUIResource("Tahoma", Font
.PLAIN
, 11);
565 Font fon= new Font("Tahoma", Font.PLAIN, 11);
566 Attribute[] attr = (Attribute[]) fontUIDresource.getAvailableAttributes();
567 Map attrMap = fontUIDresource.getAttributes();
568 for(int i2 = 0; i2 < attr.length;i2++){
569 System.out.println("Key = "+attr[i2]);
570 System.out.println("Wert = "+attrMap.get(attr[i2]));
574 //String name = "Tahoma";
576 //PLAIN=0, BOLD=1, ITALIC=2
577 //Font[] fonts = {new Font(name, 0, size), new Font(name, 1, size),
578 //new Font(name, 2, size), new Font(name, 3, size)};
579 UIDefaults defs
= (UIDefaults
) UIManager
.getLookAndFeelDefaults().clone();
581 for(Iterator ii
= new HashSet(defs
.keySet()).iterator(); ii
.hasNext(); ) {
582 Object key
= ii
.next();
583 if(key
.equals("FormattedTextField.font")){
584 UIManager
.put(key
, fontUIDresource
);
586 if(key
.equals("TextField.font")){
587 UIManager
.put(key
, fontUIDresource
);
589 if(key
.equals("Label.font")){
590 UIManager
.put(key
, fontUIDresource
);
592 if(key
.equals("Button.font")){
593 UIManager
.put(key
, fontUIDresource
);
595 if(key
.equals("Table.font")){
596 UIManager
.put(key
, fontUIDresource
);
598 if(key
.equals("ComboBox.font")){
599 UIManager
.put(key
, fontUIDresource
);
602 //new ListUIManagerValues();
603 SwingUtilities
.invokeLater(new Runnable() {
606 Reha application
= new Reha();
607 application
.sqlInfo
= new SqlInfo();
608 application
.sqlInfo
.setDieseMaschine(SystemConfig
.dieseMaschine
);
609 rehaBackImg
= new ImageIcon(Reha
.proghome
+"icons/therapieMT1.gif");
610 thisClass
= application
;
611 RehaEventClass rehaEvent
= new RehaEventClass();
612 rehaEvent
.addRehaEventListener(thisClass
);
613 //new DatenbankStarten().run();
614 new Thread(new DatenbankStarten()).start();
615 application
.getJFrame();
618 Reha
.thisFrame
.setIconImage( Toolkit
.getDefaultToolkit().getImage( Reha
.proghome
+"icons/Pi_1_0.png" ) );
621 //Reha.thisClass.setDivider(5);
625 Reha
.thisClass
.doCompoundPainter();
626 Reha
.thisClass
.starteTimer();
627 if(SystemConfig
.timerdelay
> 0){
628 Reha
.thisClass
.starteNachrichtenTimer();
631 SwingUtilities
.invokeLater(new Runnable(){
634 Reha
.thisClass
.rehaIOServer
= new RehaIOServer(6000);
635 System
.out
.println("RehaIOServer wurde initialisiert");
636 SystemConfig
.AktiviereLog();
638 if(SystemConfig
.activateSMS
){
639 Reha
.thisClass
.rehaCommServer
= new RehaCommServer(Integer
.parseInt(SystemConfig
.hmSMS
.get("COMM")));
641 }catch(NullPointerException ex
){
642 Reha
.thisClass
.rehaCommServer
= null;
644 }catch(NullPointerException ex
){
645 System
.out
.println("RehaCommServer = null");
649 }catch(NullPointerException ex
){
650 ex
.printStackTrace();
651 System
.out
.println("Fehler beim Systemstart");
659 public void setzeInitEnde(){
660 new SwingWorker
<Void
,Void
>(){
662 protected Void
doInBackground() throws java
.lang
.Exception
{
663 new SocketClient().setzeInitStand("INITENDE");
667 System.out.println("Abfeuern des ErrorEvents");
668 new FireRehaError(this, RehaEvent.ERROR_EVENT,new String[] {"Reha","Blödsinn\nBlödsinn"});
669 }catch(NullPointerException ex){
670 ex.printStackTrace();
679 Runtime
.getRuntime().exec("cmd /c start.bat");
680 } catch (IOException e
) {
684 INIFile inif
= INITool
.openIni(Reha
.proghome
+"ini/"+Reha
.aktIK
+"/", "rehajava.ini");
685 SystemConfig
.UpdateIni(inif
, "HauptFenster", "Divider1",(Object
)jSplitLR
.getDividerLocation(),null );
686 SystemConfig
.UpdateIni(inif
, "HauptFenster", "Divider2",(Object
)jSplitRechtsOU
.getDividerLocation(),null );
687 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP1Offen",(Object
)(LinkeTaskPane
.tp1
.isCollapsed() ?
"1" : "0"),null );
688 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP2Offen",(Object
)(LinkeTaskPane
.tp4
.isCollapsed() ?
"1" : "0"),null );
689 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP3Offen",(Object
)(LinkeTaskPane
.tp3
.isCollapsed() ?
"1" : "0"),null );
690 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP4Offen",(Object
)(LinkeTaskPane
.tp5
.isCollapsed() ?
"1" : "0"),null );
691 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP5Offen",(Object
)(LinkeTaskPane
.tp2
.isCollapsed() ?
"1" : "0"),null );
692 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP6Offen",(Object
)(LinkeTaskPane
.tp6
.isCollapsed() ?
"1" : "0"),null );
693 }catch(NullPointerException ex
){
694 JOptionPane
.showMessageDialog(null,"Fehler beim Speichern der aktuellen Fensteranordnung!");
698 public void beendeSofort(){
699 this.jFrame
.removeWindowListener(this);
700 if(Reha
.thisClass
.conn
!= null){
702 Reha
.thisClass
.conn
.close();
703 System
.out
.println("Datenbankverbindung geschlossen");
704 } catch (SQLException e1
) {
705 e1
.printStackTrace();
708 if(Reha
.barcodeScanner
!= null){
710 BarCodeScanner
.serialPort
.close();
711 Reha
.barcodeScanner
= null;
712 System
.out
.println("Serielle-Schnittstelle geschlossen");
713 }catch(NullPointerException ex
){
717 if(Reha
.timerLaeuft
){
718 Reha
.fangoTimer
.stop();
719 Reha
.timerLaeuft
= false;
721 if(Reha
.nachrichtenTimer
!= null){
722 Reha
.nachrichtenTimer
.cancel();
723 Reha
.nachrichtenLaeuft
= false;
724 Reha
.nachrichtenTimer
= null;
726 if(rehaIOServer
!= null){
728 rehaIOServer
.serv
.close();
729 System
.out
.println("RehaIO-SocketServer geschlossen");
730 } catch (IOException e
) {
734 if(rehaCommServer
!= null){
736 rehaCommServer
.serv
.close();
737 System
.out
.println("RehaComm-SocketServer geschlossen");
738 } catch (IOException e
) {
742 if(SystemConfig
.sReaderAktiv
.equals("1") && Reha
.thisClass
.ocKVK
!= null){
744 Reha
.thisClass
.ocKVK
.TerminalDeaktivieren();
745 System
.out
.println("Card-Terminal deaktiviert");
746 }catch(NullPointerException ex
){
751 INIFile inif
= INITool
.openIni(Reha
.proghome
+"ini/"+Reha
.aktIK
+"/", "rehajava.ini");
752 SystemConfig
.UpdateIni(inif
, "HauptFenster", "Divider1",(Object
)jSplitLR
.getDividerLocation(),null );
753 SystemConfig
.UpdateIni(inif
, "HauptFenster", "Divider2",(Object
)jSplitRechtsOU
.getDividerLocation(),null );
754 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP1Offen",(Object
)(LinkeTaskPane
.tp1
.isCollapsed() ?
"1" : "0"),null );
755 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP2Offen",(Object
)(LinkeTaskPane
.tp4
.isCollapsed() ?
"1" : "0"),null );
756 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP3Offen",(Object
)(LinkeTaskPane
.tp3
.isCollapsed() ?
"1" : "0"),null );
757 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP4Offen",(Object
)(LinkeTaskPane
.tp5
.isCollapsed() ?
"1" : "0"),null );
758 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP5Offen",(Object
)(LinkeTaskPane
.tp2
.isCollapsed() ?
"1" : "0"),null );
759 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP6Offen",(Object
)(LinkeTaskPane
.tp6
.isCollapsed() ?
"1" : "0"),null );
760 }catch(NullPointerException ex
){
761 JOptionPane
.showMessageDialog(null,"Fehler beim Speichern der aktuellen Fensteranordnung!");
766 private void doCompoundPainter(){
767 new SwingWorker
<Void
,Void
>(){
770 protected Void
doInBackground() throws Exception
{
772 CompoundPainter
<Object
> cp
= null;
773 MattePainter mp
= null;
774 LinearGradientPaint p
= null;
776 Point2D start
= new Point2D
.Float(0, 0);
777 Point2D end
= new Point2D
.Float(960,100);
778 float[] dist
= {0.0f
, 0.75f
};
779 Color
[] colors
= {Color
.WHITE
,Colors
.PiOrange
.alpha(0.25f
)};
780 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
781 mp
= new MattePainter(p
);
782 cp
= new CompoundPainter
<Object
>(mp
);
783 Reha
.thisClass
.compoundPainter
.put("PatNeuanlage",cp
);
785 start
= new Point2D
.Float(0, 0);
786 end
= new Point2D
.Float(0,100);
787 dist
= new float[] {0.0f
, 0.75f
};
788 colors
= new Color
[] {Color
.WHITE
,new Color(231,120,23)};
789 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
790 mp
= new MattePainter(p
);
791 cp
= new CompoundPainter
<Object
>(mp
);
792 Reha
.thisClass
.compoundPainter
.put("SuchePanel",cp
);
794 start
= new Point2D
.Float(0, 0);
795 end
= new Point2D
.Float(0,15);//vorher 45
796 dist
= new float[] {0.0f
, 0.75f
};
797 colors
= new Color
[] {Colors
.PiOrange
.alpha(0.5f
),Color
.WHITE
};
798 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
799 mp
= new MattePainter(p
);
800 cp
= new CompoundPainter
<Object
>(mp
);
801 Reha
.thisClass
.compoundPainter
.put("ButtonPanel",cp
);
803 start
= new Point2D
.Float(0, 0);
804 end
= new Point2D
.Float(0,40);
805 dist
= new float[] {0.0f
, 1.00f
};
806 colors
= new Color
[] {Colors
.PiOrange
.alpha(0.5f
),Color
.WHITE
};
807 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
808 mp
= new MattePainter(p
);
809 cp
= new CompoundPainter
<Object
>(mp
);
810 Reha
.thisClass
.compoundPainter
.put("StammDatenPanel",cp
);
812 start
= new Point2D
.Float(0, 0);
813 end
= new Point2D
.Float(0,100);
814 dist
= new float[] {0.0f
, 0.75f
};
815 colors
= new Color
[] {Colors
.PiOrange
.alpha(0.70f
),Color
.WHITE
};
816 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
817 mp
= new MattePainter(p
);
818 cp
= new CompoundPainter
<Object
>(mp
);
819 Reha
.thisClass
.compoundPainter
.put("AnredePanel",cp
);
821 start
= new Point2D
.Float(0, 0);
822 end
= new Point2D
.Float(0,150);
823 dist
= new float[] {0.0f
, 0.75f
};
824 colors
= new Color
[] {Color
.WHITE
,Colors
.PiOrange
.alpha(0.5f
)};
825 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
826 mp
= new MattePainter(p
);
827 cp
= new CompoundPainter
<Object
>(mp
);
828 Reha
.thisClass
.compoundPainter
.put("HauptPanel",cp
);
830 start
= new Point2D
.Float(0, 0);
831 end
= new Point2D
.Float(0,150);
832 dist
= new float[] {0.0f
, 0.75f
};
833 colors
= new Color
[] {Color
.WHITE
,Colors
.PiOrange
.alpha(0.5f
)};
834 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
835 mp
= new MattePainter(p
);
836 cp
= new CompoundPainter
<Object
>(mp
);
837 Reha
.thisClass
.compoundPainter
.put("FliessText",cp
);
839 start
= new Point2D
.Float(0, 0);
840 end
= new Point2D
.Float(0,150);
841 dist
= new float[] {0.0f
, 0.75f
};
842 colors
= new Color
[] {Color
.WHITE
,Colors
.PiOrange
.alpha(0.5f
)};
843 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
844 mp
= new MattePainter(p
);
845 cp
= new CompoundPainter
<Object
>(mp
);
846 Reha
.thisClass
.compoundPainter
.put("getTabs",cp
);
848 start
= new Point2D
.Float(0, 0);
849 end
= new Point2D
.Float(0,450);
850 dist
= new float[] {0.0f
, 0.75f
};
851 colors
= new Color
[] {Colors
.PiOrange
.alpha(0.25f
),Color
.WHITE
};
852 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
853 mp
= new MattePainter(p
);
854 cp
= new CompoundPainter
<Object
>(mp
);
855 Reha
.thisClass
.compoundPainter
.put("getTabs2",cp
);
857 start
= new Point2D
.Float(0, 0);
858 end
= new Point2D
.Float(350,290);
859 dist
= new float[] {0.0f
, 0.75f
};
860 colors
= new Color
[] {Color
.WHITE
,Colors
.Yellow
.alpha(0.05f
)};
861 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
862 mp
= new MattePainter(p
);
863 cp
= new CompoundPainter
<Object
>(mp
);
864 Reha
.thisClass
.compoundPainter
.put("RezeptGebuehren",cp
);
866 start
= new Point2D
.Float(0, 0);
867 end
= new Point2D
.Float(400,550);
868 dist
= new float[] {0.0f
, 0.75f
};
869 colors
= new Color
[] {Color
.WHITE
,Colors
.Gray
.alpha(0.15f
)};
870 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
871 mp
= new MattePainter(p
);
872 cp
= new CompoundPainter
<Object
>(mp
);
873 Reha
.thisClass
.compoundPainter
.put("EBerichtPanel",cp
);
875 start
= new Point2D
.Float(0, 0);
876 end
= new Point2D
.Float(600,350);
877 dist
= new float[] {0.0f
, 0.75f
};
878 colors
= new Color
[] {Color
.WHITE
,Colors
.Yellow
.alpha(0.25f
)};
879 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
880 mp
= new MattePainter(p
);
881 cp
= new CompoundPainter
<Object
>(mp
);
882 Reha
.thisClass
.compoundPainter
.put("ArztBericht",cp
);
884 start
= new Point2D
.Float(0, 0);
885 end
= new Point2D
.Float(600,750);
886 dist
= new float[] {0.0f
, 0.75f
};
887 colors
= new Color
[] {Color
.WHITE
,Colors
.Yellow
.alpha(0.05f
)};
888 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
889 mp
= new MattePainter(p
);
890 cp
= new CompoundPainter
<Object
>(mp
);
891 Reha
.thisClass
.compoundPainter
.put("RezNeuanlage",cp
);
893 start
= new Point2D
.Float(0, 0);
894 end
= new Point2D
.Float(300,100);
895 dist
= new float[] {0.0f
, 0.75f
};
896 colors
= new Color
[] {Color
.WHITE
,Colors
.Gray
.alpha(0.05f
)};
897 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
898 mp
= new MattePainter(p
);
899 cp
= new CompoundPainter
<Object
>(mp
);
900 Reha
.thisClass
.compoundPainter
.put("ScannerUtil",cp
);
902 start
= new Point2D
.Float(0, 0);
903 end
= new Point2D
.Float(0,400);
904 dist
= new float[] {0.0f
, 0.75f
};
905 colors
= new Color
[] {Color
.WHITE
,Colors
.TaskPaneBlau
.alpha(0.45f
)};
906 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
907 mp
= new MattePainter(p
);
908 cp
= new CompoundPainter
<Object
>(mp
);
909 Reha
.thisClass
.compoundPainter
.put("ArztAuswahl",cp
);
911 start
= new Point2D
.Float(0, 0);
912 end
= new Point2D
.Float(0,400);
913 dist
= new float[] {0.0f
, 0.75f
};
914 colors
= new Color
[] {Color
.WHITE
,Colors
.Green
.alpha(0.45f
)};
915 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
916 mp
= new MattePainter(p
);
917 cp
= new CompoundPainter
<Object
>(mp
);
918 Reha
.thisClass
.compoundPainter
.put("KassenAuswahl",cp
);
920 start
= new Point2D
.Float(0, 0);
921 end
= new Point2D
.Float(900,100);
922 dist
= new float[] {0.0f
, 0.75f
};
923 colors
= new Color
[] {Color
.WHITE
,Colors
.PiOrange
.alpha(0.25f
)};
924 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
925 mp
= new MattePainter(p
);
926 cp
= new CompoundPainter
<Object
>(mp
);
927 Reha
.thisClass
.compoundPainter
.put("KVKRohDaten",cp
);
929 start
= new Point2D
.Float(0, 0);
930 end
= new Point2D
.Float(600,550);
931 dist
= new float[] {0.0f
, 0.75f
};
932 colors
= new Color
[] {Color
.WHITE
,Colors
.TaskPaneBlau
.alpha(0.45f
)};
933 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
934 mp
= new MattePainter(p
);
935 cp
= new CompoundPainter
<Object
>(mp
);
936 Reha
.thisClass
.compoundPainter
.put("ArztPanel",cp
);
938 start
= new Point2D
.Float(0, 0);
939 end
= new Point2D
.Float(400,100);
940 dist
= new float[]{0.0f
, 0.75f
};
941 colors
= new Color
[] {Color
.WHITE
,Colors
.Blue
.alpha(0.15f
)};
942 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
943 mp
= new MattePainter(p
);
944 cp
= new CompoundPainter
<Object
>(mp
);
945 Reha
.thisClass
.compoundPainter
.put("ArztNeuanlage",cp
);
947 start
= new Point2D
.Float(0, 0);
948 end
= new Point2D
.Float(400,100);
949 dist
= new float[] {0.0f
, 0.75f
};
950 colors
= new Color
[] {Color
.WHITE
,Colors
.Green
.alpha(0.25f
)};
951 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
952 mp
= new MattePainter(p
);
953 cp
= new CompoundPainter
<Object
>(mp
);
954 Reha
.thisClass
.compoundPainter
.put("KasseNeuanlage",cp
);
956 start
= new Point2D
.Float(0, 0);
957 end
= new Point2D
.Float(600,550);
958 dist
= new float[] {0.0f
, 0.75f
};
959 colors
= new Color
[] {Color
.WHITE
,Colors
.Green
.alpha(0.5f
)};
960 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
961 mp
= new MattePainter(p
);
962 cp
= new CompoundPainter
<Object
>(mp
);
963 Reha
.thisClass
.compoundPainter
.put("KassenPanel",cp
);
965 start
= new Point2D
.Float(0, 0);
966 end
= new Point2D
.Float(200,120);
967 dist
= new float[] {0.0f
, 0.5f
};
968 colors
= new Color
[] {Colors
.TaskPaneBlau
.alpha(1.0f
), Color
.WHITE
};
969 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
970 mp
= new MattePainter(p
);
971 cp
= new CompoundPainter
<Object
>(mp
);
972 Reha
.thisClass
.compoundPainter
.put("SuchenSeite",cp
);
974 start
= new Point2D
.Float(0, 0);
975 end
= new Point2D
.Float(300,270);
976 dist
= new float[] {0.0f
, 0.75f
};
977 colors
= new Color
[] {Color
.WHITE
,Colors
.Gray
.alpha(0.15f
)};
978 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
979 mp
= new MattePainter(p
);
980 cp
= new CompoundPainter
<Object
>(mp
);
981 Reha
.thisClass
.compoundPainter
.put("GutachtenWahl",cp
);
983 start
= new Point2D
.Float(0, 0);
984 end
= new Point2D
.Float(900,100);
985 dist
= new float[] {0.0f
, 0.75f
};
986 colors
= new Color
[] {Color
.WHITE
,Colors
.Yellow
.alpha(0.05f
)};
987 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
988 mp
= new MattePainter(p
);
989 cp
= new CompoundPainter
<Object
>(mp
);
990 Reha
.thisClass
.compoundPainter
.put("VorBerichte",cp
);
992 start
= new Point2D
.Float(0, 0);
993 end
= new Point2D
.Float(0,600);
994 dist
= new float[] {0.0f
, 0.75f
};
995 colors
= new Color
[] {Colors
.Yellow
.alpha(0.15f
),Color
.WHITE
};
996 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
997 mp
= new MattePainter(p
);
998 cp
= new CompoundPainter
<Object
>(mp
);
999 Reha
.thisClass
.compoundPainter
.put("TextBlock",cp
);
1001 start
= new Point2D
.Float(0, 0);
1002 end
= new Point2D
.Float(200,120);
1003 dist
= new float[] {0.0f
, 0.5f
};
1004 colors
= new Color
[] {Colors
.TaskPaneBlau
.alpha(1.0f
), Color
.WHITE
};
1005 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
1006 mp
= new MattePainter(p
);
1007 cp
= new CompoundPainter
<Object
>(mp
);
1008 Reha
.thisClass
.compoundPainter
.put("TagWahlNeu",cp
);
1010 start
= new Point2D
.Float(0, 0);
1011 end
= new Point2D
.Float(390,180);
1012 dist
= new float[] {0.0f
, 0.5f
};
1013 colors
= new Color
[] {Colors
.TaskPaneBlau
.alpha(1.0f
), Color
.WHITE
};
1014 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
1015 mp
= new MattePainter(p
);
1016 cp
= new CompoundPainter
<Object
>(mp
);
1017 Reha
.thisClass
.compoundPainter
.put("Zeitfenster",cp
);
1019 start
= new Point2D
.Float(0, 0);
1020 end
= new Point2D
.Float(400,500);
1021 dist
= new float[] {0.0f
, 0.5f
};
1022 colors
= new Color
[] {Color
.WHITE
,Colors
.Gray
.alpha(0.15f
)};
1023 p
= new LinearGradientPaint(start
, end
, dist
, colors
);
1024 mp
= new MattePainter(p
);
1025 cp
= new CompoundPainter
<Object
>(mp
);
1026 Reha
.thisClass
.compoundPainter
.put("SystemInit",cp
);
1029 progLoader
= new ProgLoader();
1031 }catch(NullPointerException ex
){
1032 ex
.printStackTrace();
1041 /***************************************/
1042 private void starteNachrichtenTimer(){
1043 Reha
.nachrichtenTimer
= new java
.util
.Timer();
1044 TimerTask task
= new TimerTask() {
1046 if(!nachrichtenInBearbeitung
){
1047 //nur wenn das Nachrichtentool nich läuft
1048 if(!RehaIOServer
.rehaMailIsActive
){
1049 nachrichtenInBearbeitung
= true;
1051 if( (!Reha
.aktUser
.equals("")) && (checkForMails()) && (Reha
.officeapplication
!= null)){
1052 nachrichtenRegeln();
1056 nachrichtenInBearbeitung
= false;
1061 Reha
.nachrichtenTimer
.scheduleAtFixedRate(task
, SystemConfig
.timerdelay
, SystemConfig
.timerdelay
);
1063 public static void nachrichtenRegeln(){
1064 //System.out.println(Reha.aktUser);
1065 boolean newmail
= checkForMails();
1066 if((!Reha
.aktUser
.trim().startsWith("Therapeut")) && RehaIOServer
.rehaMailIsActive
&& newmail
){
1067 new ReverseSocket().setzeRehaNachricht(RehaIOServer
.rehaMailreversePort
, "Reha#"+RehaIOMessages
.MUST_CHANGEUSER
+"#"+Reha
.aktUser
);
1068 new ReverseSocket().setzeRehaNachricht(RehaIOServer
.rehaMailreversePort
,"Reha#"+RehaIOMessages
.MUST_GOTOFRONT
);
1069 }else if((!Reha
.aktUser
.trim().startsWith("Therapeut")) && RehaIOServer
.rehaMailIsActive
&& (!newmail
)){
1070 new ReverseSocket().setzeRehaNachricht(RehaIOServer
.rehaMailreversePort
, "Reha#"+RehaIOMessages
.MUST_CHANGEUSER
+"#"+Reha
.aktUser
);
1072 if((!Reha
.aktUser
.trim().startsWith("Therapeut")) && Reha
.checkForMails()){
1074 new LadeProg(Reha
.proghome
+"RehaMail.jar"+" "+Reha
.proghome
+" "+Reha
.aktIK
+" "+Reha
.xport
+" "+Reha
.aktUser
.replace(" ", "#"));
1079 public static boolean checkForMails(){
1080 if(!SqlInfo
.holeEinzelFeld("select gelesen from pimail where empfaenger_person ='"+
1081 Reha
.aktUser
+"' and gelesen='F' LIMIT 1").trim().equals("") ) {
1086 /***************************************/
1087 public void aktiviereNaechsten(int welchen
){
1088 JInternalFrame
[] frame
= desktops
[welchen
].getAllFrames();
1089 if(frame
.length
> 0){
1090 for(int i
= 0; i
< frame
.length
;i
++){
1091 ////System.out.println("InternalFrames übrig = "+frame[i].getTitle());
1092 ((JRehaInternal
)frame
[i
]).toFront();
1093 ((JRehaInternal
)frame
[i
]).setActive(true);
1094 ((JRehaInternal
)frame
[i
]).getContent().requestFocus();
1101 frame
= desktops
[1].getAllFrames();
1102 for(int i
= 0; i
< frame
.length
;i
++){
1103 ((JRehaInternal
)frame
[i
]).toFront();
1104 ((JRehaInternal
)frame
[i
]).setActive(true);
1105 ((JRehaInternal
)frame
[i
]).getContent().requestFocus();
1106 ProgLoader
.containerHandling(1);
1112 frame
= desktops
[0].getAllFrames();
1113 for(int i
= 0; i
< frame
.length
;i
++){
1114 ((JRehaInternal
)frame
[i
]).toFront();
1115 ((JRehaInternal
)frame
[i
]).setActive(true);
1116 ((JRehaInternal
)frame
[i
]).getContent().requestFocus();
1117 ProgLoader
.containerHandling(0);
1127 public void aktiviereNachNamen(String winname
){
1130 public void aktiviereNachWinnum(int winnum
){
1133 public void setzeDivider(){
1137 @SuppressWarnings("rawtypes")
1138 private JXFrame
getJFrame() {
1139 if (jFrame
== null) {
1140 jFrame
= new JXFrame();/*{
1142 private static final long serialVersionUID = 1L;
1145 public void setVisible(final boolean visible) {
1146 if(!isStarted){return;}
1147 if(getState()!=JFrame.NORMAL) { setState(JFrame.NORMAL); }
1149 if (!visible || !isVisible()) {
1150 super.setVisible(visible);
1154 int state = super.getExtendedState();
1155 state &= ~JFrame.ICONIFIED;
1156 super.setExtendedState(state);
1157 super.setAlwaysOnTop(true);
1159 super.requestFocus();
1160 super.setAlwaysOnTop(false);
1165 public void toFront() {
1166 super.setVisible(true);
1167 int state = super.getExtendedState();
1168 state &= ~JFrame.ICONIFIED;
1169 super.setExtendedState(state);
1170 super.setAlwaysOnTop(true);
1172 super.requestFocus();
1173 super.setAlwaysOnTop(false);
1176 sqlInfo
.setFrame(jFrame
);
1178 jFrame
.addWindowListener(this);
1179 jFrame
.addWindowStateListener(this);
1180 jFrame
.addComponentListener(this);
1181 jFrame
.addContainerListener(this);
1183 new Thread(new SplashStarten()).start();
1185 jFrame
.setDefaultCloseOperation(JFrame
.DO_NOTHING_ON_CLOSE
);
1188 JDesktopPane desk
= new JDesktopPane();
1189 desk
.setName("desk");
1190 desk
.setOpaque(false);
1191 jFrame
.setContentPane(desk
);
1194 jFrame
.setTitle(Titel
+Titel2
);
1195 jFrame
.setJMenuBar(getJJMenuBar());
1196 jFrame
.setStatusBar(getJXStatusBar());
1197 Reha
.thisClass
.shiftLabel
.setText("Prog-User ok!");
1198 Reha
.RehaPainter
[0] = RehaPainters
.getBlauPainter();
1199 Reha
.RehaPainter
[1] = RehaPainters
.getSchwarzGradientPainter();
1200 Reha
.RehaPainter
[2] = RehaPainters
.getBlauGradientPainter() ;
1203 * Zuerste die Panels für die linke und rechte Seite erstellen,
1204 * dann die Splitpane generieren und die Panels L+R übergeben
1207 jxLinks
= new JXPanel(new BorderLayout());
1208 jxLinks
.setDoubleBuffered(true);
1209 jxLinks
.setName("LinkesGrundpanel");
1210 jxLinks
.setBorder(null);
1211 jxLinks
.setBackground(Color
.WHITE
);
1213 jxRechts
= new JXPanel(new BorderLayout());
1214 jxRechts
.setDoubleBuffered(true);
1215 jxRechts
.setName("RechtesGrundpanel");
1216 jxRechts
.setBackground(Color
.WHITE
);
1217 jxRechts
.setBorder(BorderFactory
.createEmptyBorder(5,0,5,5));
1219 jSplitLR
= UIFSplitPane
.createStrippedSplitPane(JSplitPane
.HORIZONTAL_SPLIT
,
1222 jSplitLR
.setBackground(Color
.WHITE
);
1223 jSplitLR
.setDividerSize(7);
1224 jSplitLR
.addPropertyChangeListener(new PropertyChangeListener(){
1226 public void propertyChange(PropertyChangeEvent arg0
) {
1227 dividerLocLR
= jSplitLR
.getDividerLocation();
1231 jSplitLR
.setDividerBorderVisible(false);
1232 jSplitLR
.setName("GrundSplitLinksRechts");
1233 jSplitLR
.setOneTouchExpandable(true);
1234 jSplitLR
.setDividerLocation(Toolkit
.getDefaultToolkit().getScreenSize().width
-250);
1235 ((BasicSplitPaneUI
) jSplitLR
.getUI()).getDivider().setBackground(Color
.WHITE
);
1237 desktop
= new JXPanel(new BorderLayout());
1238 desktop
.add(jSplitLR
,BorderLayout
.CENTER
);
1239 desktop
.setSize(2500,2500);
1241 jFrame
.getContentPane().add(desktop
);
1242 jFrame
.getContentPane().addComponentListener(this);
1244 /********* den BackgroundPainter basteln *********/
1245 Point2D start
= new Point2D
.Float(0, 0);
1246 Point2D end
= new Point2D
.Float(800,500);
1247 float[] dist
= {0.2f
, 0.7f
, 1.0f
};
1248 Color
[] colors
= {Colors
.TaskPaneBlau
.alpha(1.0f
), Color
.WHITE
, Colors
.TaskPaneBlau
.alpha(1.0f
)};
1249 LinearGradientPaint p
=
1250 new LinearGradientPaint(start
, end
, dist
, colors
);
1251 MattePainter mp
= new MattePainter(p
);
1253 DropShadowBorder dropShadow
= new DropShadowBorder(Color
.BLACK
, 10, 1, 5, false, true, true, true);
1256 * Jetzt die Panels für die rechte Seite oben und unten erstellen,
1257 * dann die Splitpane generieren und die Panels O+U übergeben.
1259 jxRechtsOben
= new JXPanel(new BorderLayout());
1260 jxRechtsOben
.setDoubleBuffered(true);
1261 jxRechtsOben
.setPreferredSize(new Dimension(0,250));
1262 jxRechtsOben
.setName("RechtsOben");
1263 jxRechtsOben
.setBorder(null);
1264 jxRechtsOben
.setBackground(Color
.WHITE
);
1265 JXPanel jp2
= new JXPanel(new BorderLayout());
1266 jp2
.setBackground(Color
.WHITE
);
1267 jp2
.setBorder(dropShadow
);
1270 jpOben
= new JXPanel(new BorderLayout());
1271 jpOben
.setBorder(null);
1272 jpOben
.setBackgroundPainter(new CompoundPainter(mp
));
1273 jpOben
.setName("PanelOben");
1274 jpOben
.addComponentListener(this);
1276 desktops
[0] = new Hintergrund(Reha
.rehaBackImg
);
1277 desktops
[0].setName("DesktopOben");
1278 desktops
[0].setOpaque(false);
1279 desktops
[0].setSize(2000,2000);
1280 desktops
[0].setDesktopManager(new OOODesktopManager(0));
1281 desktops
[0].addFocusListener(this);
1282 desktops
[0].addMouseListener(this);
1283 desktops
[0].addMouseMotionListener(this);
1284 desktops
[0].addComponentListener(this);
1285 desktops
[0].addContainerListener(this);
1287 jpOben
.add(desktops
[0]);
1289 jp2
.add(jpOben
,BorderLayout
.CENTER
);
1290 jxRechtsOben
.add(jp2
,BorderLayout
.CENTER
);
1291 jxRechtsOben
.validate();
1292 jxRechtsOben
.updateUI();
1295 /*********************/
1296 jxRechtsUnten
= new JXPanel(new BorderLayout());
1297 jxRechtsUnten
.setDoubleBuffered(true);
1298 jxRechtsUnten
.setPreferredSize(new Dimension(0,250));
1299 jxRechtsUnten
.setName("RechtsUnten");
1300 jxRechtsUnten
.setBorder(null);
1301 jxRechtsUnten
.setBackground(Color
.WHITE
);
1303 jp2
= new JXPanel(new BorderLayout());
1304 jp2
.setBackground(Color
.WHITE
);
1305 jp2
.setBorder(dropShadow
);
1306 jp2
.addComponentListener(this);
1308 jpUnten
= new JXPanel(new BorderLayout());
1309 jpUnten
.setBorder(null);
1310 jpUnten
.setBackgroundPainter(new CompoundPainter(mp
));
1311 jpUnten
.setName("PanelUnten");
1312 jpUnten
.addComponentListener(this);
1314 desktops
[1] = new Hintergrund(Reha
.rehaBackImg
);
1315 desktops
[1].setName("DesktopUnten");
1316 desktops
[1].setOpaque(false);
1317 desktops
[1].setSize(2000,2000);
1318 desktops
[1].setDesktopManager(new OOODesktopManager(1));
1319 desktops
[1].addFocusListener(this);
1320 desktops
[1].addMouseListener(this);
1321 desktops
[1].addMouseMotionListener(this);
1322 desktops
[1].addComponentListener(this);
1323 desktops
[1].addContainerListener(this);
1325 //desktops[1].add(new WorkFlow("WorkFlow",null,1));
1327 jpUnten
.add(desktops
[1]);
1328 jp2
.add(jpUnten
,BorderLayout
.CENTER
);
1329 jxRechtsUnten
.add(jp2
,BorderLayout
.CENTER
);
1330 jxRechtsUnten
.validate();
1331 jxRechtsUnten
.updateUI();
1332 /********************************/
1334 if(SystemConfig
.desktopHorizontal
){
1335 jSplitRechtsOU
= UIFSplitPane
.createStrippedSplitPane(JSplitPane
.VERTICAL_SPLIT
,
1339 jSplitRechtsOU
= UIFSplitPane
.createStrippedSplitPane(JSplitPane
.HORIZONTAL_SPLIT
,
1344 jSplitRechtsOU
.addPropertyChangeListener(new PropertyChangeListener(){
1346 public void propertyChange(PropertyChangeEvent arg0
) {
1347 //dividerLocOU = jSplitRechtsOU.getDividerLocation();
1351 jSplitRechtsOU
.setDividerBorderVisible(false);
1352 jSplitRechtsOU
.setDividerSize(7);
1353 ((BasicSplitPaneUI
) jSplitRechtsOU
.getUI()).getDivider().setBackground(Color
.WHITE
);
1355 jSplitRechtsOU
.setBackground(Color
.WHITE
);
1356 jSplitRechtsOU
.setName("RechtsSplitObenUnten");
1357 jSplitRechtsOU
.setOneTouchExpandable(true);
1358 jxRechts
.add(jSplitRechtsOU
,BorderLayout
.CENTER
); //bislang o.k.
1362 jxRechts
.addComponentListener(this);
1363 jxRechts
.validate();
1366 * Jetzt erstellen wir die TaskPanes der linken Seite
1368 while((!Reha
.iconsOk
) ){
1371 } catch (InterruptedException e
) {
1372 e
.printStackTrace();
1375 jxLinks
.add(new LinkeTaskPane(),BorderLayout
.CENTER
);
1377 jFrame
.getContentPane().validate();
1381 while((!Reha.iconsOk) && (!Reha.DbOk)){
1384 } catch (InterruptedException e) {
1385 e.printStackTrace();
1388 jxLinks.add(new LinkeTaskPane(),BorderLayout.CENTER);
1390 jFrame.getContentPane().validate();
1394 new SwingWorker
<Void
,Void
>(){
1396 protected Void
doInBackground() throws java
.lang
.Exception
{
1398 INIFile updateini
= null;
1399 File f
= new File(Reha
.proghome
+"ini/tpupdateneu.ini");
1401 updateini
= INITool
.openIni(Reha
.proghome
+"ini/", "tpupdateneu.ini");
1403 updateini
= INITool
.openIni(Reha
.proghome
+"ini/", "tpupdate.ini");
1406 if(updateini
.getStringProperty("TheraPiUpdates", "ProxyIP") != null && updateini
.getStringProperty("TheraPiUpdates", "ProxyPort") != null && updateini
.getStringProperty("TheraPiUpdates", "NoProxy") != null &&
1407 updateini
.getStringProperty("TheraPiUpdates", "ProxyIP").equals("") && updateini
.getStringProperty("TheraPiUpdates", "ProxyPort").equals("") && updateini
.getStringProperty("TheraPiUpdates", "NoProxy").equals("")) {
1408 System
.setProperty("http.proxyHost", updateini
.getStringProperty("TheraPiUpdates", "ProxyIP"));
1409 System
.setProperty("http.proxyPort", updateini
.getStringProperty("TheraPiUpdates", "ProxyPort"));
1410 System
.setProperty("http.nonProxyHosts", updateini
.getStringProperty("TheraPiUpdates", "NoProxy"));
1411 System
.setProperty("ftp.proxyHost", updateini
.getStringProperty("TheraPiUpdates", "ProxyIP"));
1412 System
.setProperty("ftp.proxyPort", updateini
.getStringProperty("TheraPiUpdates", "ProxyPort"));
1413 System
.setProperty("ftp.nonProxyHosts", updateini
.getStringProperty("TheraPiUpdates", "NoProxy"));
1415 }catch(NullPointerException ex
){
1416 ex
.printStackTrace();
1419 Reha
.updatesChecken
= (updateini
.getIntegerProperty("TheraPiUpdates", "UpdateChecken") > 0 ?
true : false);
1420 System
.out
.println("System soll nach Updates suchen = "+Reha
.updatesChecken
);
1421 }catch(NullPointerException ex
){
1422 Reha
.updatesChecken
= true;
1424 if(!Reha
.updatesChecken
){
1430 TestForUpdates tfupd
= null;
1431 tfupd
= new TestForUpdates();
1433 Reha
.updatesBereit
= tfupd
.doFtpTest();
1435 if(Reha
.updatesBereit
){
1436 JOptionPane
.showMessageDialog(null, "<html><b><font color='aa0000'>Es existieren Updates für Thera-Pi 1.0.</font></b><br><br>Bitte gehen Sie auf die Seite<br><br><b>System-Initialisierung -> 'Software-Updateservice'</b></html>");
1438 }catch(NullPointerException ex
){
1439 System
.out
.println("Fehler bei der Updatesuche");
1440 ex
.printStackTrace();
1445 }catch(NullPointerException ex
){
1446 StackTraceElement
[] element
= ex
.getStackTrace();
1448 for(int i
= 0; i
< element
.length
;i
++){
1449 cmd
= cmd
+element
[i
]+"\n";
1451 JOptionPane
.showMessageDialog(null, "Suche nach Updates fehlgeschlagen!\nIst die Internetverbindung o.k.");
1462 jxLinks
.setAlpha(1.0f
);
1463 jxRechts
.setAlpha(1.0f
);
1465 //jxLinks.setAlpha(0.3f);
1466 //jxRechts.setAlpha(0.3f);
1468 //new Thread(new DatenbankStarten()).start();
1470 jFrame
.setExtendedState(JXFrame
.MAXIMIZED_BOTH
);
1472 setKeyboardActions();
1476 AktiveFenster
.Init();
1480 rehaEvent.addRehaEventListener(new RehaEventListener() {
1482 public void RehaEventOccurred(RehaEvent evt) {
1483 //System.out.println("Event getSource: = "+evt.getSource());
1484 //System.out.println("Event Nachricht: = "+ evt.getRehaEvent());
1491 public static void setSystemConfig(SystemConfig sysConf
){
1492 Reha
.sysConf
= sysConf
;
1495 private JXStatusBar
getJXStatusBar() {
1496 if (jXStatusBar
== null) {
1497 UIManager
.put("Separator.foreground", new Color(231,120,23) );
1499 jXStatusBar
= new JXStatusBar();
1501 jXStatusBar
.putClientProperty(Options
.HEADER_STYLE_KEY
, HeaderStyle
.BOTH
);
1502 jXStatusBar
.putClientProperty(Options
.NO_CONTENT_BORDER_KEY
,Boolean
.TRUE
);
1503 jXStatusBar
.putClientProperty(Options
.HI_RES_GRAY_FILTER_ENABLED_KEY
,Boolean
.FALSE
);
1505 jXStatusBar
.setPreferredSize(new Dimension(1280, 30));
1506 jXStatusBar
.setBorder(BorderFactory
.createEmptyBorder(0,0,0,0));
1507 jXStatusBar
.setLayout(new BorderLayout());
1509 FormLayout sblay
= new FormLayout("10dlu,fill:0:grow(0.16),4dlu,fill:0:grow(0.16),4dlu,fill:0:grow(0.16),4dlu,fill:0:grow(0.16),4dlu,fill:0:grow(0.16),4dlu,fill:0:grow(0.16),10dlu",
1510 "fill:0:grow(0.5),18px,fill:0:grow(0.5)");
1511 CellConstraints sbcc
= new CellConstraints();
1512 JXPanel sbkomplett
= new JXPanel();
1513 sbkomplett
.setBorder(BorderFactory
.createEmptyBorder(1,0,1,0));
1514 sbkomplett
.setOpaque(false);
1515 sbkomplett
.setLayout(sblay
);
1517 /*************1 Container*****************************/
1518 JXPanel bar
= new JXPanel(new BorderLayout());
1519 bar
.setOpaque(false);
1520 bar
.setBorder(BorderFactory
.createLoweredBevelBorder());
1521 JXPanel versionbar
= new JXPanel(new BorderLayout());
1522 versionbar
.setOpaque(false);
1523 versionbar
.setBorder(BorderFactory
.createEmptyBorder(0, 2, 0, 2));
1524 dbLabel
= new JLabel(" ");
1525 //JLabel lab = new JLabel("Benutzer: Admin");
1526 dbLabel
.setVerticalAlignment(JLabel
.CENTER
);
1527 dbLabel
.setHorizontalAlignment(JLabel
.LEFT
);
1528 versionbar
.add(dbLabel
);
1529 bar
.add(versionbar
);
1530 sbkomplett
.add(bar
,sbcc
.xy(2, 2));
1532 /*************2 Container*****************************/
1534 FlowLayout flay
= new FlowLayout(FlowLayout
.LEFT
);
1536 jxPinContainer
= new JXPanel(flay
);
1537 jxPinContainer
.setBorder(null);
1538 jxPinContainer
.setOpaque(false);
1539 bar
= new JXPanel(new BorderLayout());
1540 bar
.setOpaque(false);
1541 bar
.setBorder(BorderFactory
.createLoweredBevelBorder());
1542 JXPanel bar2
= new JXPanel(new BorderLayout());
1543 bar2
.setOpaque(false);
1544 bar2
.setBorder(BorderFactory
.createEmptyBorder(0, 2, 0, 2));
1545 messageLabel
= new JLabel("starte OpenOffice.org");
1546 messageLabel
.setForeground(Color
.RED
);
1547 messageLabel
.setVerticalAlignment(SwingConstants
.CENTER
);
1548 messageLabel
.setHorizontalAlignment(SwingConstants
.LEFT
);
1549 jxPinContainer
.add(messageLabel
);
1550 bar2
.add(jxPinContainer
);
1552 sbkomplett
.add(bar
,sbcc
.xy(4, 2));
1554 /**************3 Container****************************/
1556 bar
= new JXPanel(new BorderLayout());
1557 bar
.setOpaque(false);
1558 bar
.setBorder(BorderFactory
.createLoweredBevelBorder());
1559 bar2
= new JXPanel(new BorderLayout());
1560 bar2
.setOpaque(false);
1561 bar2
.setBorder(BorderFactory
.createEmptyBorder(0, 2, 0, 2));
1562 mousePositionLabel
= new javax
.swing
.JLabel("Druckliste = leer");
1563 mousePositionLabel
.setHorizontalAlignment(SwingConstants
.LEFT
);
1564 mousePositionLabel
.setVerticalAlignment(SwingConstants
.CENTER
);
1565 bar2
.add(mousePositionLabel
);
1567 sbkomplett
.add(bar
,sbcc
.xy(6, 2));
1569 /**************4 Container****************************/
1571 bar
= new JXPanel(new BorderLayout());
1572 bar
.setOpaque(false);
1573 bar
.setBorder(BorderFactory
.createLoweredBevelBorder());
1574 bar2
= new JXPanel(new BorderLayout());
1575 bar2
.setOpaque(false);
1576 bar2
.setBorder(BorderFactory
.createEmptyBorder(0, 2, 0, 2));
1577 Rehaprogress
= new JProgressBar();
1578 Rehaprogress
.setOpaque(false);
1579 Rehaprogress
.setIndeterminate(true);
1580 Rehaprogress
.setForeground(Color
.RED
);
1581 Rehaprogress
.setBorder(null);
1582 Rehaprogress
.setBorderPainted(false);
1584 bar2
.add(Rehaprogress
);
1586 sbkomplett
.add(bar
,sbcc
.xy(8, 2));
1588 /***************5 Container***************************/
1590 bar
= new JXPanel(new BorderLayout());
1591 bar
.setOpaque(false);
1592 bar
.setBorder(BorderFactory
.createLoweredBevelBorder());
1593 bar2
= new JXPanel(new BorderLayout());
1594 bar2
.setOpaque(false);
1595 bar2
.setBorder(BorderFactory
.createEmptyBorder(0, 2, 0, 2));
1597 shiftLabel
= new JLabel("Standard User");
1598 shiftLabel
.setForeground(Color
.RED
);
1599 shiftLabel
.setVerticalAlignment(SwingConstants
.CENTER
);
1600 shiftLabel
.setHorizontalAlignment(SwingConstants
.LEFT
);
1601 shiftLabel
.setForeground(Color
.RED
);
1602 bar2
.add(shiftLabel
,BorderLayout
.WEST
);
1604 sbkomplett
.add(bar
,sbcc
.xy(10,2));
1606 /******************************************/
1608 bar
= new JXPanel(new BorderLayout());
1609 bar
.setOpaque(false);
1610 bar
.setBorder(BorderFactory
.createLoweredBevelBorder());
1611 bar2
= new JXPanel(new BorderLayout());
1612 bar2
.setOpaque(false);
1613 bar2
.setBorder(BorderFactory
.createEmptyBorder(0, 2, 0, 2));
1614 copyLabel
= new JLabel("");
1615 copyLabel
.setHorizontalAlignment(SwingConstants
.LEFT
);
1616 copyLabel
.setVerticalAlignment(SwingConstants
.CENTER
);
1617 new SwingWorker
<Void
,Void
>(){
1619 protected Void
doInBackground() throws Exception
{
1623 } catch (InterruptedException e
) {
1624 e
.printStackTrace();
1627 copyLabel
.setIcon(SystemConfig
.hmSysIcons
.get("bunker"));
1631 DropTarget dndt
= new DropTarget();
1632 DropTargetListener dropTargetListener
=
1633 new DropTargetListener() {
1634 public void dragEnter(DropTargetDragEvent e
) {}
1635 public void dragExit(DropTargetEvent e
) {}
1636 public void dragOver(DropTargetDragEvent e
) {}
1637 public void drop(DropTargetDropEvent e
) {
1638 String mitgebracht
= "";
1640 Transferable tr
= e
.getTransferable();
1641 //Ursprüngliche Routine
1643 DataFlavor[] flavors = tr.getTransferDataFlavors();
1644 for (int i = 0; i < flavors.length; i++){
1645 mitgebracht = String.valueOf((String) tr.getTransferData(flavors[i]).toString());
1648 if(Reha
.osVersion
.contains("Linux")){
1649 if(Reha
.dragDropComponent
instanceof JRtaTextField
){
1650 mitgebracht
= ((JRtaTextField
)Reha
.dragDropComponent
).getText();
1653 DataFlavor
[] flavors
= tr
.getTransferDataFlavors();
1654 for (int i
= 0; i
< flavors
.length
; i
++){
1655 mitgebracht
= String
.valueOf((String
) tr
.getTransferData(flavors
[i
]).toString());
1659 if(mitgebracht
.indexOf("°") >= 0){
1660 String
[] labs
= mitgebracht
.split("°");
1661 if(labs
[0].contains("TERMDAT")){
1662 copyLabel
.setText(labs
[1]+"°"+labs
[2]+"°"+labs
[3]);
1663 bunker
.setText("TERMDATEXT°"+copyLabel
.getText());
1664 e
.dropComplete(true);
1666 }else if(labs
[0].contains("PATDAT")){
1667 copyLabel
.setText("");
1669 e
.dropComplete(true);
1671 copyLabel
.setText("");
1673 e
.dropComplete(true);
1677 } catch (Throwable t
) { t
.printStackTrace(); }
1678 e
.dropComplete(true);
1680 public void dropActionChanged(
1681 DropTargetDragEvent e
) {}
1684 dndt
.addDropTargetListener(dropTargetListener
);
1685 } catch (TooManyListenersException e1
) {
1686 e1
.printStackTrace();
1688 copyLabel
.setDropTarget(dndt
);
1690 final String propertyName
= "text";
1691 bunker
= new JLabel();
1692 bunker
.setName("bunker");
1693 bunker
.setTransferHandler(new TransferHandler(propertyName
));
1694 copyLabel
.setTransferHandler(new TransferHandler(propertyName
));
1695 copyLabel
.setName("copyLabel");
1696 /*********************/
1697 if(Reha
.osVersion
.contains("Linux")){
1698 DragGestureListener dragGestureListener
= new DragGestureListener() {
1699 public void dragGestureRecognized(
1700 DragGestureEvent e
) {
1701 StringSelection selection
= new StringSelection(copyLabel
.getText());
1702 //if(Reha.osVersion.contains("Linux")){
1703 Reha
.dragDropComponent
= (JComponent
) bunker
;
1704 if(!Rechte
.hatRecht(Rechte
.Kalender_termindragdrop
, false)){
1707 JComponent comp
= (JComponent
)copyLabel
;
1708 if( ((JLabel
)comp
).getText().equals("") ){
1711 if(bunker
.getText().startsWith("TERMDAT")){
1712 TerminFenster
.setDragMode(0);
1715 e
.startDrag(null, selection
, null);
1719 DragSource dragSource
= new DragSource();
1721 @SuppressWarnings("unused")
1722 DragGestureRecognizer dgr
= dragSource
.createDefaultDragGestureRecognizer(
1724 DnDConstants
.ACTION_COPY
,
1725 dragGestureListener
);
1727 /*********************/
1729 copyLabel
.addMouseListener(new MouseAdapter() {
1730 public void mousePressed(MouseEvent evt
) {
1731 if(!Rechte
.hatRecht(Rechte
.Kalender_termindragdrop
, false)){
1734 JComponent comp
= (JComponent
)evt
.getSource();
1735 if( ((JLabel
)comp
).getText().equals("") ){
1738 if(bunker
.getText().startsWith("TERMDAT")){
1739 TerminFenster
.setDragMode(0);
1741 TransferHandler th
= bunker
.getTransferHandler();
1742 th
.exportAsDrag((JComponent
) bunker
, evt
, TransferHandler
.COPY
);
1745 bar2
.add(copyLabel
);
1747 sbkomplett
.add(bar
,sbcc
.xy(12,2));
1748 sbkomplett
.validate();
1749 jXStatusBar
.add(sbkomplett
,BorderLayout
.CENTER
);
1750 jXStatusBar
.validate();
1751 jXStatusBar
.setVisible(true);
1756 public void progressStarten(boolean starten
){
1757 final boolean xstarten
= starten
;
1758 new SwingWorker
<Void
,Void
>(){
1760 protected Void
doInBackground() throws Exception
{
1763 Rehaprogress
.setIndeterminate(xstarten
);
1771 private JMenuBar
getJJMenuBar() {
1773 if (jJMenuBar
== null) {
1774 jJMenuBar
= new JMenuBar();
1775 jJMenuBar
.setFont(new Font("Dialog", Font
.PLAIN
, 12));
1776 jJMenuBar
.putClientProperty(Options
.HEADER_STYLE_KEY
, HeaderStyle
.BOTH
);
1777 jJMenuBar
.add(getFileMenu());
1778 jJMenuBar
.add(getstammMenu());
1779 jJMenuBar
.add(new TerminMenu().getJMenu());
1780 jJMenuBar
.add(getabrechnungMenu());
1781 jJMenuBar
.add(geturlaubMenu());
1782 jJMenuBar
.add(getverkaufMenu());
1783 jJMenuBar
.add(getstatistikMenu());
1784 jJMenuBar
.add(getbueroMenu());
1785 jJMenuBar
.add(gettoolsMenu());
1786 jJMenuBar
.add(getHelpMenu());
1791 private JMenu
getFileMenu() {
1792 if (fileMenu
== null) {
1793 fileMenu
= new JMenu();
1794 fileMenu
.setFont(new Font("Dialog", Font
.PLAIN
, 12));
1795 fileMenu
.setText("Datei");
1796 fileMenu
.add(getExitMenuItem());
1801 private JMenu
getstammMenu() {
1802 if (stammMenu
== null) {
1803 stammMenu
= new JMenu();
1804 stammMenu
.setFont(new Font("Dialog", Font
.PLAIN
, 12));
1805 stammMenu
.setText("Stammdaten");
1806 JMenuItem men
= new JMenuItem("Patienten Rezepte etc.");
1807 men
.setActionCommand("patient");
1808 men
.setAccelerator(KeyStroke
.getKeyStroke(KeyEvent
.VK_P
, Event
.CTRL_MASK
, false));
1809 men
.setMnemonic(KeyEvent
.VK_P
);
1810 men
.addActionListener(this);
1812 stammMenu
.addSeparator();
1813 men
= new JMenuItem("Krankenkassen");
1814 men
.setActionCommand("kasse");
1815 men
.setAccelerator(KeyStroke
.getKeyStroke(KeyEvent
.VK_K
, Event
.CTRL_MASK
, false));
1816 men
.setMnemonic(KeyEvent
.VK_K
);
1817 men
.addActionListener(this);
1819 stammMenu
.addSeparator();
1820 men
= new JMenuItem("Ärzte");
1821 men
.setActionCommand("arzt");
1822 men
.setAccelerator(KeyStroke
.getKeyStroke(KeyEvent
.VK_A
, Event
.CTRL_MASK
, false));
1823 men
.setMnemonic(KeyEvent
.VK_A
);
1824 men
.addActionListener(this);
1830 private JMenu
getabrechnungMenu() {
1831 if (abrechnungMenu
== null) {
1832 abrechnungMenu
= new JMenu();
1833 abrechnungMenu
.setFont(new Font("Dialog", Font
.PLAIN
, 12));
1834 abrechnungMenu
.setText("Abrechnung");
1835 JMenuItem men
= new JMenuItem("Heilmittel-Abrechnung nach §302 SGB V");
1836 men
.setActionCommand("hmabrechnung");
1837 men
.addActionListener(this);
1838 abrechnungMenu
.add(men
);
1839 abrechnungMenu
.addSeparator();
1840 men
= new JMenuItem("Reha-Abrechnung");
1841 men
.setActionCommand("rehaabrechnung");
1842 men
.addActionListener(this);
1843 abrechnungMenu
.add(men
);
1844 abrechnungMenu
.addSeparator();
1845 men
= new JMenuItem("Barkasse abrechnen");
1846 men
.setActionCommand("barkasse");
1847 men
.addActionListener(this);
1848 abrechnungMenu
.add(men
);
1849 abrechnungMenu
.addSeparator();
1850 men
= new JMenuItem("Anmeldezahlen ermitteln");
1851 men
.setActionCommand("anmeldezahlen");
1852 men
.addActionListener(this);
1853 abrechnungMenu
.add(men
);
1854 men
= new JMenuItem("Tagesumsätze ermitteln");
1855 men
.setActionCommand("tagesumsatz");
1856 men
.addActionListener(this);
1857 abrechnungMenu
.add(men
);
1858 abrechnungMenu
.addSeparator();
1859 men
= new JMenuItem("Offene Posten / Mahnwesen");
1860 men
.setActionCommand("offeneposten");
1861 men
.addActionListener(this);
1862 abrechnungMenu
.add(men
);
1863 abrechnungMenu
.addSeparator();
1864 men
= new JMenuItem("Rezeptgebührrechnung/Ausfallrechnung");
1865 men
.setActionCommand("rgaffaktura");
1866 men
.addActionListener(this);
1867 abrechnungMenu
.add(men
);
1869 return abrechnungMenu
;
1872 private JMenu
getstatistikMenu() {
1873 if (statistikMenu
== null) {
1874 statistikMenu
= new JMenu();
1875 statistikMenu
.setFont(new Font("Dialog", Font
.PLAIN
, 12));
1876 statistikMenu
.setText("Statistiken");
1877 JMenuItem men
= new JMenuItem("LVA/BfA Statistik");
1878 men
.setActionCommand("lvastatistik");
1879 men
.addActionListener(this);
1880 statistikMenu
.add(men
);
1882 return statistikMenu
;
1885 private JMenu
getbueroMenu() {
1886 if (bueroMenu
== null) {
1887 bueroMenu
= new JMenu();
1888 bueroMenu
.setFont(new Font("Dialog", Font
.PLAIN
, 12));
1889 bueroMenu
.setText("Büroprogramme");
1894 private JMenu
gettoolsMenu() {
1895 if (toolsMenu
== null) {
1896 toolsMenu
= new JMenu();
1897 toolsMenu
.setFont(new Font("Dialog", Font
.PLAIN
, 12));
1898 toolsMenu
.setText("Tools");
1899 JMenuItem men
= new JMenuItem("Rezeptnummer suchen");
1900 men
.setActionCommand("rezeptfahnder");
1901 men
.addActionListener(this);
1903 toolsMenu
.addSeparator();
1904 men
= new JMenuItem("Kassenbuch erstellen");
1905 men
.setActionCommand("kassenbuch");
1906 men
.addActionListener(this);
1908 toolsMenu
.addSeparator();
1909 men
= new JMenuItem("Geburtstagsbriefe erstellen");
1910 men
.setActionCommand("geburtstagsbriefe");
1911 men
.addActionListener(this);
1913 toolsMenu
.addSeparator();
1914 men
= new JMenuItem("Sql-Modul");
1915 men
.setActionCommand("sqlmodul");
1916 men
.addActionListener(this);
1919 men = new JMenuItem("INI-Editor");
1920 men.setActionCommand("iniedit");
1921 men.addActionListener(this);
1923 toolsMenu.addSeparator();
1925 men
= new JMenuItem("§301 Reha Fall-Steuerung");
1926 men
.setActionCommand("fallsteuerung");
1927 men
.addActionListener(this);
1929 toolsMenu
.addSeparator();
1930 men
= new JMenuItem("Work-Flow Manager");
1931 men
.setActionCommand("workflow");
1932 men
.addActionListener(this);
1934 toolsMenu
.addSeparator();
1935 men
= new JMenuItem("Heilmittelrichtlinien-Tool");
1936 men
.setActionCommand("hmrsearch");
1937 men
.addActionListener(this);
1939 men
= new JMenuItem("Thera-Pi OCR-Modul");
1940 men
.setActionCommand("ocr");
1941 men
.addActionListener(this);
1948 private JMenu
getverkaufMenu() {
1949 if (verkaufMenu
== null) {
1950 verkaufMenu
= new JMenu();
1951 verkaufMenu
.setFont(new Font("Dialog", Font
.PLAIN
, 12));
1952 verkaufMenu
.setText("Verkauf");
1953 JMenuItem men
= new JMenuItem("Verkaufsmodul starten");
1954 men
.setActionCommand("verkauf");
1955 men
.addActionListener(this);
1956 verkaufMenu
.add(men
);
1961 private JMenu
geturlaubMenu() {
1962 if (urlaubMenu
== null) {
1963 urlaubMenu
= new JMenu();
1964 urlaubMenu
.setFont(new Font("Dialog", Font
.PLAIN
, 12));
1965 urlaubMenu
.setText("Urlaub/Ãœberstunden");
1966 JMenuItem men
= new JMenuItem("Urlaub-/Ãœberstunden verwalten");
1967 men
.setActionCommand("urlaub");
1968 men
.addActionListener(this);
1969 urlaubMenu
.add(men
);
1970 urlaubMenu
.addSeparator();
1971 men
= new JMenuItem("Umsatzbeteiligung ermitteln");
1972 men
.setActionCommand("umsatzbeteiligung");
1973 men
.addActionListener(this);
1974 urlaubMenu
.add(men
);
1979 private JMenu
getHelpMenu() {
1980 if (helpMenu
== null) {
1981 helpMenu
= new JMenu();
1982 helpMenu
.setFont(new Font("Dialog", Font
.PLAIN
, 12));
1983 helpMenu
.setText("Hilfe");
1984 helpMenu
.add(getAboutMenuItem());
1989 private JMenuItem
getExitMenuItem() {
1990 if (exitMenuItem
== null) {
1991 exitMenuItem
= new JMenuItem();
1992 exitMenuItem
.setText("Thera-Pi beenden");
1993 exitMenuItem
.addActionListener(new ActionListener() {
1994 public void actionPerformed(ActionEvent e
) {
1995 Runtime r
= Runtime
.getRuntime();
1997 if(JOptionPane
.showConfirmDialog(null, "thera-\u03C0 wirklich schließen?", "Bitte bestätigen", JOptionPane
.YES_NO_OPTION
)==JOptionPane
.YES_OPTION
) {
1998 if(Reha
.DbOk
&& (Reha
.thisClass
.conn
!= null) ){
1999 Date zeit
= new Date();
2000 String stx
= "Insert into eingeloggt set comp='"+SystemConfig
.dieseMaschine
+"', zeit='"+zeit
.toString()+"', einaus='aus'";
2001 SqlInfo
.sqlAusfuehren(stx
);
2003 if(Reha
.thisClass
.conn
!= null){
2005 Reha
.thisClass
.conn
.close();
2006 System
.out
.println("Datenbankverbindung geschlossen");
2007 } catch (SQLException e1
) {
2008 e1
.printStackTrace();
2011 if(Reha
.barcodeScanner
!= null){
2013 BarCodeScanner
.serialPort
.close();
2014 Reha
.barcodeScanner
= null;
2015 System
.out
.println("Serielle-Schnittstelle geschlossen");
2016 }catch(NullPointerException ex
){
2020 if(Reha
.timerLaeuft
){
2021 Reha
.fangoTimer
.stop();
2022 Reha
.timerLaeuft
= false;
2024 if(Reha
.nachrichtenTimer
!= null){
2025 Reha
.nachrichtenTimer
.cancel();
2026 Reha
.nachrichtenLaeuft
= false;
2027 Reha
.nachrichtenTimer
= null;
2030 if(rehaIOServer
!= null){
2032 rehaIOServer
.serv
.close();
2033 System
.out
.println("RehaIO-SocketServer geschlossen");
2034 } catch (IOException e2
) {
2035 e2
.printStackTrace();
2038 if(rehaCommServer
!= null){
2040 rehaCommServer
.serv
.close();
2041 System
.out
.println("RehaComm-SocketServer geschlossen");
2042 } catch (IOException e3
) {
2043 e3
.printStackTrace();
2047 if(SystemConfig
.sReaderAktiv
.equals("1") && Reha
.thisClass
.ocKVK
!= null){
2049 Reha
.thisClass
.ocKVK
.TerminalDeaktivieren();
2050 System
.out
.println("Card-Terminal deaktiviert");
2051 }catch(NullPointerException ex
){
2056 INIFile inif
= INITool
.openIni(Reha
.proghome
+"ini/"+Reha
.aktIK
+"/", "rehajava.ini");
2057 SystemConfig
.UpdateIni(inif
, "HauptFenster", "Divider1",(Object
)jSplitLR
.getDividerLocation(),null );
2058 SystemConfig
.UpdateIni(inif
, "HauptFenster", "Divider2",(Object
)jSplitRechtsOU
.getDividerLocation(),null );
2059 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP1Offen",(Object
)(LinkeTaskPane
.tp1
.isCollapsed() ?
"1" : "0"),null );
2060 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP2Offen",(Object
)(LinkeTaskPane
.tp4
.isCollapsed() ?
"1" : "0"),null );
2061 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP3Offen",(Object
)(LinkeTaskPane
.tp3
.isCollapsed() ?
"1" : "0"),null );
2062 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP4Offen",(Object
)(LinkeTaskPane
.tp5
.isCollapsed() ?
"1" : "0"),null );
2063 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP5Offen",(Object
)(LinkeTaskPane
.tp2
.isCollapsed() ?
"1" : "0"),null );
2064 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP6Offen",(Object
)(LinkeTaskPane
.tp6
.isCollapsed() ?
"1" : "0"),null );
2065 }catch(NullPointerException ex
){
2066 JOptionPane
.showMessageDialog(null,"Fehler beim Speichern der aktuellen Fensteranordnung!");
2076 return exitMenuItem
;
2079 private JMenuItem
getAboutMenuItem() {
2080 if (aboutMenuItem
== null) {
2081 aboutMenuItem
= new JMenuItem();
2082 aboutMenuItem
.setText("About");
2084 return aboutMenuItem
;
2087 public void setzeUi(String sUI
,JScrollPane panel
){
2089 SystemConfig
.UpdateIni("rehajava.ini","HauptFenster","LookAndFeel",sUI
);
2090 UIManager
.setLookAndFeel((aktLookAndFeel
= sUI
));
2091 SwingUtilities
.updateComponentTreeUI(thisFrame
);
2092 SwingUtilities
.updateComponentTreeUI(this.jxRechtsOben
);
2093 SwingUtilities
.updateComponentTreeUI(this.jxRechtsUnten
);
2094 SwingUtilities
.updateComponentTreeUI(this.jSplitLR
);
2095 SwingUtilities
.updateComponentTreeUI(this.jxLinks
);
2096 SwingUtilities
.updateComponentTreeUI(this.jxRechts
);
2097 LinkeTaskPane
.UpdateUI();
2098 }catch (ClassNotFoundException e1
) {
2099 e1
.printStackTrace();
2100 } catch (InstantiationException e1
) {
2101 e1
.printStackTrace();
2102 } catch (IllegalAccessException e1
) {
2103 e1
.printStackTrace();
2104 } catch (UnsupportedLookAndFeelException e1
) {
2105 e1
.printStackTrace();
2111 public static void starteOfficeApplication(){
2114 officeapplication
= (IOfficeApplication
)new StartOOApplication(SystemConfig
.OpenOfficePfad
,SystemConfig
.OpenOfficeNativePfad
).start(false);
2115 System
.out
.println("OpenOffice ist gestartet und aktiv = "+officeapplication
.isActive());
2116 Reha
.thisClass
.Rehaprogress
.setIndeterminate(false);
2117 }catch (OfficeApplicationException e
) {
2118 e
.printStackTrace();
2119 Reha
.thisClass
.messageLabel
= new JLabel("OO.org nicht verfügbar!!!");
2123 final String OPEN_OFFICE_ORG_PATH = SystemConfig.OpenOfficePfad;
2126 JOptionPane.showMessageDialog(null,"Zur Info die UNO-Runtime wird neu gestartet!");
2128 @SuppressWarnings("unused")
2129 String path = OPEN_OFFICE_ORG_PATH;
2131 ILazyApplicationInfo info = OfficeApplicationRuntime.getApplicationAssistant(SystemConfig.OpenOfficeNativePfad).findLocalApplicationInfo(SystemConfig.OpenOfficePfad);
2132 String[] names = info.getProperties().getPropertyNames();
2133 for(int i = 0; i < names.length;i++){
2134 System.out.println(names[i]+" = "+info.getProperties().getPropertyValue(names[i]));
2135 if(info.getProperties().getPropertyValue(names[i]).contains("LibreOffice")){
2136 Reha.thisClass.isLibreOffice = true;
2139 Map <String, Object>config = new HashMap<String, Object>();
2140 config.put(IOfficeApplication.APPLICATION_HOME_KEY, SystemConfig.OpenOfficePfad);
2141 config.put(IOfficeApplication.APPLICATION_TYPE_KEY, IOfficeApplication.LOCAL_APPLICATION);
2142 if(Reha.thisClass.isLibreOffice){
2143 config.put(IOfficeApplication.APPLICATION_ARGUMENTS_KEY,
2144 new String[] {"--nodefault","--nologo",
2145 "--nofirststartwizard",
2151 config.put(IOfficeApplication.APPLICATION_ARGUMENTS_KEY,
2152 new String[] {"-nodefault","-nologo",
2153 "-nofirststartwizard",
2159 System.setProperty(IOfficeApplication.NOA_NATIVE_LIB_PATH,SystemConfig.OpenOfficeNativePfad);
2161 officeapplication = OfficeApplicationRuntime.getApplication(config);
2162 }catch(NullPointerException ex){
2163 ex.printStackTrace();
2165 officeapplication.activate();
2167 officeapplication.getDesktopService().addTerminateListener(new VetoTerminateListener() {
2168 public void queryTermination(ITerminateEvent terminateEvent) {
2169 super.queryTermination(terminateEvent);
2171 IDocument[] docs = officeapplication.getDocumentService().getCurrentDocuments();
2172 if (docs.length == 1 ) {
2175 }catch (DocumentException e) {
2176 e.printStackTrace();
2177 Reha.thisClass.messageLabel = new JLabel("OO.org nicht Verfügbar!!!");
2178 } catch (OfficeApplicationException e) {
2179 e.printStackTrace();
2180 Reha.thisClass.messageLabel = new JLabel("OO.org nicht Verfügbar!!!");
2184 }catch(NullPointerException ex){
2185 ex.printStackTrace();
2187 Reha.thisClass.Rehaprogress.setIndeterminate(false);
2188 }catch (OfficeApplicationException e) {
2189 Reha.thisClass.messageLabel = new JLabel("OO.org nicht Verfügbar!!!");
2190 e.printStackTrace();
2195 private void setKeyboardActions() {
2196 Toolkit toolkit
= Toolkit
.getDefaultToolkit();
2197 toolkit
.addAWTEventListener(new AWTEventListener() {
2198 public void eventDispatched(AWTEvent event
) {
2199 if(event
instanceof KeyEvent
) {
2200 KeyEvent keyEvent
= (KeyEvent
) event
;
2201 if(progRechte
.equals("")){
2204 if(keyEvent
.isAltDown() &&
2205 keyEvent
.getID() == KeyEvent
.KEY_PRESSED
&& keyEvent
.getKeyCode()==88) { // Ctrl-P
2207 if(keyEvent
.isControlDown() &&
2208 keyEvent
.getID() == KeyEvent
.KEY_PRESSED
&& keyEvent
.getKeyCode()==80) { // Ctrl-P
2209 new SwingWorker
<Void
,Void
>(){
2211 protected Void
doInBackground() throws Exception
{
2212 Reha
.thisFrame
.setCursor(Reha
.thisClass
.wartenCursor
);
2213 Reha
.thisFrame
.setCursor(Reha
.thisClass
.normalCursor
);
2218 if(keyEvent
.isAltDown() && keyEvent
.getID()== KeyEvent
.KEY_PRESSED
2219 && keyEvent
.getKeyCode() == KeyEvent
.VK_R
){
2220 new RezeptFahnder(true);
2224 if(keyEvent
.isAltDown() &&
2225 keyEvent
.getID() == KeyEvent
.KEY_PRESSED
&& keyEvent
.getKeyCode()==88) { // Ctrl-P
2227 SwingUtilities
.invokeLater(new Runnable(){
2229 if(RehaIOServer
.rehaMailIsActive
){
2230 new ReverseSocket().setzeRehaNachricht(RehaIOServer
.rehaMailreversePort
, "Reha#"+RehaIOMessages
.MUST_RESET
);
2234 ProgLoader
.PasswortDialog(0);
2237 if(keyEvent
.isControlDown() &&
2238 keyEvent
.getID() == KeyEvent
.KEY_PRESSED
&& keyEvent
.getKeyCode()==84) { // Ctrl-P
2239 JComponent termin
= AktiveFenster
.getFensterAlle("TerminFenster");
2243 //ProgLoader.ProgTerminFenster(0,0);//
2246 if(keyEvent
.isControlDown() &&
2247 keyEvent
.getID() == KeyEvent
.KEY_PRESSED
&& keyEvent
.getKeyCode()==79) { // Ctrl-P
2250 if(keyEvent
.isControlDown() &&
2251 keyEvent
.getID() == KeyEvent
.KEY_PRESSED
&& keyEvent
.getKeyCode()==75) { // Ctrl-K
2252 //JComponent kasse = AktiveFenster.getFensterAlle("KrankenKasse");
2255 if(keyEvent
.isControlDown() &&
2256 keyEvent
.getID() == KeyEvent
.KEY_PRESSED
&& keyEvent
.getKeyCode()==65) { // Ctrl-K
2257 //JComponent arzt = AktiveFenster.getFensterAlle("ArztVerwaltung");
2259 Reha
.thisFrame
.setCursor(Reha
.thisClass
.wartenCursor
);
2260 Reha
.thisClass
.progLoader
.ArztFenster(0,TestePatStamm
.PatStammArztID());
2261 Reha
.thisFrame
.setCursor(Reha
.thisClass
.normalCursor
);
2264 if(keyEvent
.isControlDown() &&
2265 keyEvent
.getID() == KeyEvent
.KEY_PRESSED
&& keyEvent
.getKeyCode()==37) { // Ctrl-Pfeil nach links
2269 if(keyEvent
.isControlDown() &&
2270 keyEvent
.getID() == KeyEvent
.KEY_PRESSED
&& keyEvent
.getKeyCode()==39) { // Ctrl-Pfeil nach rechts
2274 if(keyEvent
.isControlDown() &&
2275 keyEvent
.getID() == KeyEvent
.KEY_PRESSED
&& keyEvent
.getKeyCode()==38) { // Ctrl-Pfeil nach oben
2279 if(keyEvent
.isControlDown() &&
2280 keyEvent
.getID() == KeyEvent
.KEY_PRESSED
&& keyEvent
.getKeyCode()==40) { // Ctrl-Pfeil nach unten
2286 }, AWTEvent
.KEY_EVENT_MASK
);
2288 toolkit.addAWTEventListener(new AWTEventListener() {
2291 public void eventDispatched(AWTEvent event) {
2292 // TODO Auto-generated method stub
2293 MouseEvent mouseEvent = (MouseEvent) event;
2294 if(event instanceof MouseEvent) {
2295 //System.out.println("MausEvent = "+event);
2299 }, AWTEvent.MOUSE_EVENT_MASK);
2302 public void setVertDivider(final int variante
){
2303 //System.out.println("Variante = "+variante);
2304 //Diese Funktion wäre etwas für Michael Schütt
2306 * Im Grunde würde es genügen wenn Strg+Pfeil-Links/oder Rechts gedrückt wird,
2307 * die Arbeitsflächen entweder hälftig oder voll sichtbar darzustellen
2308 * den Rest müßte man dann einfacht mit der Maus herstellen.
2311 SwingUtilities
.invokeLater(new Runnable(){
2314 //System.out.println("Variante = "+variante);
2315 //System.out.println("Vollsichtbar = "+vollsichtbar);
2319 if(desktops
[0].getWidth() <= 25){
2320 jSplitRechtsOU
.setDividerLocation(0);
2323 }else if(desktops
[0].getWidth() > 25){
2324 jSplitRechtsOU
.setDividerLocation((jSplitRechtsOU
.getDividerLocation()-25));
2330 }else if(variante
==2){
2331 if(desktops
[1].getWidth() <= 25){
2332 jSplitRechtsOU
.setDividerLocation(jSplitRechtsOU
.getWidth()-7);
2336 jSplitRechtsOU
.setDividerLocation((jSplitRechtsOU
.getDividerLocation()+25));
2340 }else if(variante
==5){
2341 jSplitRechtsOU
.setDividerLocation(jSplitRechtsOU
.getWidth()-7);
2342 }else if(variante
==6){
2344 jSplitRechtsOU
.setDividerLocation(0);
2352 public void setDivider(int variante
){
2353 final int xvariante
= variante
;
2354 //System.out.println("Variante = "+variante);
2355 //System.out.println("Vollsichtbar = "+vollsichtbar);
2356 SwingUtilities
.invokeLater(new Runnable(){
2359 if(!SystemConfig
.desktopHorizontal
){
2360 setVertDivider(xvariante
);
2367 if(jSplitLR
.getDividerLocation()>250){
2368 jSplitLR
.setDividerLocation(dividerLocLR
-10);
2370 if(dividerLocLR
-10 < 0){
2371 jSplitLR
.setDividerLocation(0);
2373 jSplitLR
.setDividerLocation(dividerLocLR
-10);
2380 if(jSplitLR
.getDividerLocation()<250){
2381 jSplitLR
.setDividerLocation(dividerLocLR
+10);
2383 if(dividerLocLR
+10 > thisFrame
.getRootPane().getWidth()-7){
2384 jSplitLR
.setDividerLocation(thisFrame
.getRootPane().getWidth()-7);
2386 jSplitLR
.setDividerLocation(dividerLocLR
+10);
2393 if(jSplitRechtsOU
.getDividerLocation() > (thisFrame
.getRootPane().getHeight()/2)-3){
2394 jSplitRechtsOU
.setDividerLocation((jxLinks
.getHeight()/2)-3);
2397 jSplitRechtsOU
.setDividerLocation(0);
2403 if(jSplitRechtsOU
.getDividerLocation() < (jxLinks
.getHeight()/2)-3 ){
2404 jSplitRechtsOU
.setDividerLocation((jxLinks
.getHeight()/2)-3);
2407 jSplitRechtsOU
.setDividerLocation(thisFrame
.getRootPane().getHeight()-7);
2415 jSplitRechtsOU
.setDividerLocation(thisFrame
.getRootPane().getHeight()-7);
2421 jSplitRechtsOU
.setDividerLocation(0);
2426 jSplitRechtsOU
.setDividerLocation(0);
2434 public int getSichtbar(){
2436 System.out.println("\n\nDivider-Location = "+jSplitRechtsOU.getDividerLocation());
2437 System.out.println("Divider-Ok = "+Reha.dividerOk);
2438 System.out.println("Höhe der RootPane = "+thisFrame.getRootPane().getHeight()+"\n");
2439 System.out.println("Höhe von Desktop[0] = "+desktops[0].getHeight());
2440 System.out.println("Höhe von Desktop[1] = "+desktops[1].getHeight());
2441 System.out.println("Breite von Desktop[0] = "+desktops[0].getWidth());
2442 System.out.println("Breite von Desktop[1] = "+desktops[1].getWidth());
2444 if(SystemConfig
.desktopHorizontal
){
2445 if(desktops
[0].getHeight() <= 10){
2447 }else if(desktops
[1].getHeight() <= 10){
2452 if(desktops[0].getWidth() <= 10){
2454 }else if(desktops[1].getWidth() <= 10){
2461 public void setFocusWatcher() {
2462 long mask
= AWTEvent
.FOCUS_EVENT_MASK
;
2464 AWTEvent.ACTION_EVENT_MASK
2465 | AWTEvent.MOUSE_EVENT_MASK
2466 | AWTEvent.FOCUS_EVENT_MASK
2467 | AWTEvent.MOUSE_MOTION_EVENT_MASK
2468 | AWTEvent.MOUSE_WHEEL_EVENT_MASK
2469 | AWTEvent.TEXT_EVENT_MASK
2470 | AWTEvent.WINDOW_EVENT_MASK
2471 | AWTEvent.WINDOW_FOCUS_EVENT_MASK
2472 | AWTEvent.WINDOW_STATE_EVENT_MASK
2473 | AWTEvent.COMPONENT_EVENT_MASK;
2475 Toolkit toolkit
= Toolkit
.getDefaultToolkit();
2476 toolkit
.addAWTEventListener(new AWTEventListener(){
2478 public void eventDispatched(AWTEvent event
) {
2479 if(event
instanceof FocusEvent
) {
2481 FocusEvent focusEvent = (FocusEvent) event;
2482 System.out.println("\n*************************************************");
2483 System.out.println("***Klasse = "+ ((FocusEvent) event).getComponent().getClass().toString());
2484 System.out.println("***Name = "+ ((FocusEvent) event).getComponent().getName());
2485 System.out.println("***hat Focus = " +((FocusEvent) event).getComponent().hasFocus());
2486 System.out.println("***Name des Focused Windows = "+KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow().getName());
2487 System.out.println("*************************************************");
2494 public void componentHidden(ComponentEvent arg0
) {
2498 public void componentMoved(ComponentEvent arg0
) {
2502 public void componentResized(ComponentEvent arg0
) {
2503 //Größe einstellen
2505 if(((JComponent
)arg0
.getSource()).getName() != null){
2506 if( ((String
)((JComponent
)arg0
.getSource()).getName()).equals("PanelOben")){
2507 desktops
[0].setBounds(0,0,Reha
.thisClass
.jpOben
.getWidth(),
2508 Reha
.thisClass
.jpOben
.getHeight());
2510 if( ((String
)((JComponent
)arg0
.getSource()).getName()).equals("PanelUnten")){
2511 desktops
[1].setBounds(0,0,Reha
.thisClass
.jpUnten
.getWidth(),
2512 Reha
.thisClass
.jpUnten
.getHeight() );
2514 JInternalFrame
[] frm
= Reha
.thisClass
.desktops
[0].getAllFrames();
2515 for(int i
= 0;i
< frm
.length
;i
++){
2516 if(((JRehaInternal
)frm
[i
]).getImmerGross()){
2517 frm
[i
].setBounds(2,2,Reha
.thisClass
.jpOben
.getWidth()-2,
2518 Reha
.thisClass
.jpOben
.getHeight()-2);
2520 ((JRehaInternal
)frm
[i
]).setCompOrder(i
);
2521 ((JRehaInternal
)frm
[i
]).setzeIcon();
2523 frm
= Reha
.thisClass
.desktops
[1].getAllFrames();
2524 for(int i
= 0;i
< frm
.length
;i
++){
2525 if(((JRehaInternal
)frm
[i
]).getImmerGross()){
2526 frm
[i
].setBounds(2,2,Reha
.thisClass
.jpUnten
.getWidth()-2,
2527 Reha
.thisClass
.jpUnten
.getHeight()-2);
2529 ((JRehaInternal
)frm
[i
]).setCompOrder(i
);
2530 ((JRehaInternal
)frm
[i
]).setzeIcon();
2534 }catch(java
.lang
.ClassCastException cex
){
2537 jSplitLR
.validate();
2538 desktop
.setBounds(0,0,thisFrame
.getContentPane().getWidth(),thisFrame
.getContentPane().getHeight());
2540 jFrame
.getContentPane().validate();
2545 /************Motion Event******************/
2547 public void mouseClicked(MouseEvent arg0
) {
2549 public void mouseEntered(MouseEvent arg0
) {
2551 public void mouseExited(MouseEvent arg0
) {
2553 public void mousePressed(MouseEvent arg0
) {
2555 public void mouseReleased(MouseEvent arg0
) {
2557 /************Motion für DragEvent******************/
2558 public void mouseDragged(MouseEvent arg0
) {
2560 public void mouseMoved(MouseEvent arg0
) {
2562 /************KeyListener*************************/
2563 public void keyPressed(KeyEvent arg0
) {
2565 public void keyReleased(KeyEvent arg0
) {
2567 public void keyTyped(KeyEvent arg0
) {
2570 public void rehaEventOccurred(RehaEvent evt
) {
2571 //System.out.println("Event angekommen - Event="+evt.getRehaEvent());
2572 if(evt
.getRehaEvent().equals("PatSuchen")){
2574 if(evt
.getRehaEvent().equals(RehaEvent
.ERROR_EVENT
)){
2575 String sclass
= (evt
.getSource()==null ?
"NULL" : evt
.getSource().getClass().toString());
2576 String module
= evt
.getDetails()[0];
2577 String errortext
= evt
.getDetails()[1];
2578 JOptionPane
.showMessageDialog(null,"Es ist ein Fehler aufgetreten!\n\nKlasse="+sclass
+"\n\nModul="+module
+"\n\nFehlertext="+errortext
);
2581 static Component
WerHatFocus(){
2582 final Component focusOwner
= null;
2583 //focusOwner = FocusManager.getCurrentManager.getFocusedWindow();
2586 public void ladenach(){
2587 int nochmals
= JOptionPane
.showConfirmDialog(null,"Die Datenbank konnte nicht gestartet werden, erneuter Versuch?","Wichtige Benuterzinfo",JOptionPane
.YES_NO_OPTION
);
2588 if(nochmals
== JOptionPane
.YES_OPTION
){
2589 new Thread(new DbNachladen()).start();
2592 public void addSbContainer(String simage
,String sname
,JComponent jcomponent
){
2594 public void setzeInitStand(String stand
){
2595 new SocketClient().setzeInitStand(stand
);
2598 public void windowActivated(WindowEvent arg0
) {
2599 desktop
.setBounds(0,0,thisFrame
.getContentPane().getWidth(),thisFrame
.getContentPane().getHeight());
2602 public void windowClosed(WindowEvent arg0
) {
2603 if(Reha
.barcodeScanner
!= null){
2604 BarCodeScanner
.serialPort
.close();
2605 System
.out
.println("Serielle Schnittstelle wurde geschlossen");
2609 public void windowClosing(WindowEvent arg0
) {
2610 if(JOptionPane
.showConfirmDialog(null, "thera-\u03C0 wirklich schließen?", "Bitte bestätigen", JOptionPane
.YES_NO_OPTION
)==JOptionPane
.YES_OPTION
) {
2611 if(Reha
.DbOk
&& (Reha
.thisClass
.conn
!= null) ){
2612 Date zeit
= new Date();
2613 String stx
= "Insert into eingeloggt set comp='"+SystemConfig
.dieseMaschine
+"', zeit='"+zeit
.toString()+"', einaus='aus'";
2614 SqlInfo
.sqlAusfuehren(stx
);
2617 JInternalFrame
[] frame
= desktops
[0].getAllFrames();
2618 for(int i
= 0; i
< frame
.length
;i
++){
2622 frame
= desktops
[1].getAllFrames();
2623 for(int i
= 0; i
< frame
.length
;i
++){
2627 if(Reha
.thisClass
.conn
!= null){
2629 Reha
.thisClass
.conn
.close();
2630 Reha
.thisClass
.conn
= null;
2631 System
.out
.println("Datenbankverbindung wurde geschlossen");
2632 } catch (SQLException e
) {
2633 e
.printStackTrace();
2637 if(Reha
.barcodeScanner
!= null){
2639 BarCodeScanner
.serialPort
.close();
2640 Reha
.barcodeScanner
= null;
2641 System
.out
.println("Serielle Schnittstelle wurde geschlossen");
2642 }catch(NullPointerException ex
){
2646 if(Reha
.officeapplication
!= null){
2648 if(Reha
.timerLaeuft
){
2649 Reha
.fangoTimer
.stop();
2650 Reha
.timerLaeuft
= false;
2652 if(rehaIOServer
!= null){
2654 rehaIOServer
.serv
.close();
2655 System
.out
.println("RehaIO-SocketServer geschlossen");
2656 } catch (IOException e
) {
2657 e
.printStackTrace();
2660 if(rehaCommServer
!= null){
2662 rehaCommServer
.serv
.close();
2663 System
.out
.println("RehaComm-SocketServer geschlossen");
2664 } catch (IOException e
) {
2665 e
.printStackTrace();
2668 if(Reha
.nachrichtenTimer
!= null){
2669 Reha
.nachrichtenTimer
.cancel();
2670 Reha
.nachrichtenLaeuft
= false;
2671 Reha
.nachrichtenTimer
= null;
2673 if(SystemConfig
.sReaderAktiv
.equals("1") && Reha
.thisClass
.ocKVK
!= null){
2675 Reha
.thisClass
.ocKVK
.TerminalDeaktivieren();
2676 System
.out
.println("Card-Terminal deaktiviert");
2677 }catch(NullPointerException ex
){
2683 INIFile inif
= INITool
.openIni(Reha
.proghome
+"ini/"+Reha
.aktIK
+"/", "rehajava.ini");
2684 SystemConfig
.UpdateIni(inif
, "HauptFenster", "Divider1",(Object
)jSplitLR
.getDividerLocation(),null );
2685 SystemConfig
.UpdateIni(inif
, "HauptFenster", "Divider2",(Object
)jSplitRechtsOU
.getDividerLocation(),null );
2686 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP1Offen",(Object
)(LinkeTaskPane
.tp1
.isCollapsed() ?
"1" : "0"),null );
2687 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP2Offen",(Object
)(LinkeTaskPane
.tp4
.isCollapsed() ?
"1" : "0"),null );
2688 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP3Offen",(Object
)(LinkeTaskPane
.tp3
.isCollapsed() ?
"1" : "0"),null );
2689 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP4Offen",(Object
)(LinkeTaskPane
.tp5
.isCollapsed() ?
"1" : "0"),null );
2690 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP5Offen",(Object
)(LinkeTaskPane
.tp2
.isCollapsed() ?
"1" : "0"),null );
2691 SystemConfig
.UpdateIni(inif
, "HauptFenster", "TP6Offen",(Object
)(LinkeTaskPane
.tp6
.isCollapsed() ?
"1" : "0"),null );
2693 }catch(NullPointerException ex
){
2694 JOptionPane
.showMessageDialog(null,"Fehler beim Speichern der aktuellen Fensteranordnung!");
2702 public void windowDeactivated(WindowEvent arg0
) {
2705 public void windowDeiconified(WindowEvent arg0
) {
2708 public void windowIconified(WindowEvent arg0
) {
2711 public void windowOpened(WindowEvent arg0
) {
2714 public void windowStateChanged(WindowEvent arg0
) {
2717 public void focusGained(FocusEvent e
) {
2720 public void focusLost(FocusEvent e
) {
2723 public void componentShown(ComponentEvent arg0
) {
2726 public void componentAdded(ContainerEvent arg0
) {
2729 public void componentRemoved(ContainerEvent arg0
) {
2731 /*******************/
2732 class Hintergrund
extends JDesktopPane
implements ComponentListener
{
2736 private static final long serialVersionUID
= 1L;
2739 AlphaComposite xac1
= null;
2740 AlphaComposite xac2
= null;
2741 public Hintergrund(ImageIcon icon
){
2746 icx
= hgicon
.getIconWidth()/2;
2747 icy
= hgicon
.getIconHeight()/2;
2748 xac1
= AlphaComposite
.getInstance(AlphaComposite
.SRC_OVER
,0.15f
);
2749 xac2
= AlphaComposite
.getInstance(AlphaComposite
.SRC_OVER
,1.0f
);
2753 this.setDoubleBuffered(true);
2757 public void paintComponent( Graphics g
) {
2758 super.paintComponent( g
);
2759 Graphics2D g2d
= (Graphics2D
)g
;
2762 g2d
.setComposite(this.xac1
);
2763 g2d
.drawImage(hgicon
.getImage(), (getWidth()/2)-icx
, (getHeight()/2)-icy
,null);
2764 g2d
.setComposite(this.xac2
);
2768 public void componentHidden(ComponentEvent arg0
) {
2771 public void componentMoved(ComponentEvent arg0
) {
2774 public void componentResized(ComponentEvent arg0
) {
2778 public void componentShown(ComponentEvent arg0
) {
2781 /***************************/
2782 public void starteTimer(){
2783 Reha
.fangoTimer
= new Timer(60000,this);
2784 Reha
.fangoTimer
.setActionCommand("testeFango");
2785 Reha
.fangoTimer
.start();
2786 Reha
.timerLaeuft
= true;
2788 public static void testeStrictMode(){
2790 String cmd
= "show variables like 'sql_mode%'";
2791 Vector
<Vector
<String
>> vecfeld
= SqlInfo
.holeFelder(cmd
);
2792 System
.out
.println("sql_mode="+vecfeld
.get(0).get(1).trim());
2793 if(!vecfeld
.get(0).get(1).trim().equals("")){
2794 String meldung
= "Achtung der MySql-Server wird im Modus: "+vecfeld
.get(0).get(1).trim()+" betrieben!\n"+
2795 "In diesem Modus kann Thera-Pi nicht fehlerfrei betrieben werden.\n\n"+
2796 "Beenden Sie Thera-Pi und stellen Sie in der Datei my.ini (Linux=my.cnf) den Wert sql_mode='' ein\n"+
2797 "Die Datei befindet sich in dem Verzeichnis indem der MySql-Server installiert wurde";;
2798 JOptionPane
.showMessageDialog(null,meldung
);
2800 }catch(NullPointerException ex
){
2801 ex
.printStackTrace();
2804 public static void testeMaxAllowed(){
2806 String cmd
= "show variables like 'max_allowed_packet%'";
2807 Vector
<Vector
<String
>> vecfeld
= SqlInfo
.holeFelder(cmd
);
2809 int dfeld
= (Integer
.valueOf(vecfeld
.get(0).get(1))/1024)/1024;
2810 System
.out
.println("max_allowed_packet="+Integer
.toString(dfeld
)+" MB");
2812 String meldung
= "Achtung die MySql-Server Einstellung 'max_allowed_packet' ist bei Ihnen auf "+Integer
.toString(dfeld
)+" MB eingestellt\n"+
2813 "Dieser Wert ist möglicherweise zu niedrig wenn Sie größere Dokumentationen scannen wollen.\n\n"+
2814 "Wir empfehlen Ihnen einen Wert von >= 32MB.\nEingestellt wird dieser Wert in der Datei my.ini (Linux=my.cnf)\n"+
2815 "Diese Datei befindet sich in dem Verzeichnis indem der MySql-Server installiert wurde\n";
2816 JOptionPane
.showMessageDialog(null,meldung
);
2818 }catch(NullPointerException ex
){
2819 ex
.printStackTrace();
2823 public static void testeNummernKreis(){
2824 String cmd
= "select mandant from nummern LIMIT 1";
2825 Vector
<Vector
<String
>> vecnummern
= SqlInfo
.holeFelder(cmd
);
2826 if(vecnummern
.size() <= 0){
2827 cmd
= "insert into nummern set pat='1',kg='1',ma='1',er='1',"+
2828 "lo='1',rh='1',rnr='1',esol='1',bericht='1',afrnr='1',rgrnr='1',doku='1',"+
2829 "dfue='1',mandant='"+Reha
.aktIK
+"'";
2830 //System.out.println(cmd);
2831 SqlInfo
.sqlAusfuehren(cmd
);
2834 /**********Actions**********/
2836 public void actionPerformed(ActionEvent arg0
) {
2837 String cmd
= arg0
.getActionCommand();
2838 if(cmd
.equals("testeFango")){
2839 new SwingWorker
<Void
,Void
>(){
2841 protected Void
doInBackground() throws java
.lang
.Exception
{
2842 Wecker
.testeWecker();
2847 if(cmd
.equals("patient")){
2848 new SwingWorker
<Void
,Void
>(){
2850 protected Void
doInBackground() throws Exception
{
2851 progLoader
.ProgPatientenVerwaltung(1);
2852 Reha
.thisClass
.progressStarten(false);
2858 if(cmd
.equals("kasse")){
2859 Reha
.thisClass
.progLoader
.KassenFenster(0,TestePatStamm
.PatStammKasseID());
2862 if(cmd
.equals("arzt")){
2863 Reha
.thisClass
.progLoader
.ArztFenster(0,TestePatStamm
.PatStammArztID());
2866 if(cmd
.equals("hmabrechnung")){
2868 if(SystemConfig
.hmEmailExtern
.get("SenderAdresse") == null || SystemConfig
.hmEmailExtern
.get("SenderAdresse").trim().equals("")){
2869 JOptionPane
.showMessageDialog(null,"<html>Bevor zum ersten Mal mit der GKV abgerechnet wird<br><br><b>muß(!) der Emailaccount in der System-Init konfiguriert werden.</b><br><br></html>");
2872 }catch(NullPointerException ex
){
2873 JOptionPane
.showMessageDialog(null,"<html>Bevor zum ersten Mal mit der GKV abgerechnet wird<br><br><b>muß(!) der Emailaccount in der System-Init konfiguriert werden.</b><br><br></html>");
2876 Reha
.thisClass
.progLoader
.AbrechnungFenster(1);
2879 if(cmd
.equals("rehaabrechnung")){
2880 Reha
.thisClass
.progLoader
.RehaabrechnungFenster(1,"");
2883 if(cmd
.equals("barkasse")){
2884 Reha
.thisClass
.progLoader
.BarkassenFenster(1,"");
2887 if(cmd
.equals("anmeldezahlen")){
2888 Reha
.thisClass
.progLoader
.AnmeldungenFenster(1,"");
2891 if(cmd
.equals("tagesumsatz")){
2892 Reha
.thisClass
.progLoader
.UmsatzFenster(1,"");
2895 if(cmd
.equals("verkauf")){
2896 Reha
.thisClass
.progLoader
.VerkaufFenster(1,"");
2899 if(cmd
.equals("urlaub")){
2900 if(! Rechte
.hatRecht(Rechte
.Funktion_urlaubueberstunden
, true)){
2903 new LadeProg(Reha
.proghome
+"RehaUrlaub.jar"+" "+Reha
.proghome
+" "+Reha
.aktIK
);
2906 if(cmd
.equals("umsatzbeteiligung")){
2907 Reha
.thisClass
.progLoader
.BeteiligungFenster(1,"");
2910 if(cmd
.equals("lvastatistik")){
2911 new LadeProg(Reha
.proghome
+"RehaStatistik.jar"+" "+Reha
.proghome
+" "+Reha
.aktIK
);
2914 /*****************************/
2915 if(cmd
.equals("offeneposten")){
2916 if(!Rechte
.hatRecht(Rechte
.Funktion_offeneposten
, true)){
2919 if(! RehaIOServer
.offenePostenIsActive
){
2920 new LadeProg(Reha
.proghome
+"OffenePosten.jar"+" "+Reha
.proghome
+" "+Reha
.aktIK
+" "+Reha
.xport
);
2922 new ReverseSocket().setzeRehaNachricht(RehaIOServer
.offenePostenreversePort
,"Reha#"+RehaIOMessages
.MUST_GOTOFRONT
);
2926 /*****************************/
2927 if(cmd
.equals("rezeptfahnder")){
2928 new RezeptFahnder(true);
2931 /*****************************/
2932 if(cmd
.equals("rgaffaktura")){
2933 if(! Rechte
.hatRecht(Rechte
.Funktion_barkasse
, false)){
2934 JOptionPane
.showMessageDialog(null, "Keine Berechtigung -> Funktion Ausbuchen RGAF-Faktura");
2937 if(! RehaIOServer
.rgAfIsActive
){
2938 new LadeProg(Reha
.proghome
+"OpRgaf.jar"+" "+Reha
.proghome
+" "+Reha
.aktIK
+" "+Reha
.xport
);
2940 new ReverseSocket().setzeRehaNachricht(RehaIOServer
.rgAfreversePort
,"Reha#"+RehaIOMessages
.MUST_GOTOFRONT
);
2944 /*****************************/
2945 if(cmd
.equals("kassenbuch")){
2946 if(!Rechte
.hatRecht(Rechte
.Funktion_kassenbuch
, true)){
2949 new LadeProg(Reha
.proghome
+"RehaKassenbuch.jar"+" "+Reha
.proghome
+" "+Reha
.aktIK
);
2952 if(cmd
.equals("geburtstagsbriefe")){
2953 if(!Rechte
.hatRecht(Rechte
.Sonstiges_geburtstagsbriefe
, true)){
2956 new LadeProg(Reha
.proghome
+"GBriefe.jar"+" "+Reha
.proghome
+" "+Reha
.aktIK
);
2959 /*****************************/
2960 if(cmd
.equals("sqlmodul")){
2961 if(!Rechte
.hatRecht(Rechte
.Sonstiges_sqlmodul
, true)){
2964 if(!RehaIOServer
.rehaSqlIsActive
){
2965 new LadeProg(Reha
.proghome
+"RehaSql.jar"+" "+Reha
.proghome
+" "+Reha
.aktIK
+" "+String
.valueOf(Integer
.toString(Reha
.xport
)));
2967 new ReverseSocket().setzeRehaNachricht(RehaIOServer
.rehaSqlreversePort
,"Reha#"+RehaIOMessages
.MUST_GOTOFRONT
);
2972 /*****************************/
2973 if(cmd
.equals("fallsteuerung")){
2974 if(!Rechte
.hatRecht(Rechte
.Sonstiges_Reha301
, true)){
2977 if(RehaIOServer
.reha301IsActive
){
2978 JOptionPane
.showMessageDialog(null,"Das 301-er Modul läuft bereits");
2979 SwingUtilities
.invokeLater(new Runnable(){
2981 new ReverseSocket().setzeRehaNachricht(RehaIOServer
.reha301reversePort
,"Reha301#"+RehaIOMessages
.MUST_GOTOFRONT
);
2986 new LadeProg(Reha
.proghome
+"Reha301.jar "+
2987 " "+Reha
.proghome
+" "+Reha
.aktIK
+" "+String
.valueOf(Integer
.toString(Reha
.xport
)) );
2988 //Reha.thisFrame.setCursor(Reha.thisClass.wartenCursor);
2991 /*****************************/
2992 if(cmd
.equals("workflow")){
2993 if(!Rechte
.hatRecht(Rechte
.Sonstiges_Reha301
, true)){
2996 if(RehaIOServer
.rehaWorkFlowIsActive
){
2997 SwingUtilities
.invokeLater(new Runnable(){
2999 new ReverseSocket().setzeRehaNachricht(RehaIOServer
.rehaWorkFlowreversePort
,"ZeigeFrame#"+RehaIOMessages
.MUST_GOTOFRONT
);
3004 new LadeProg(Reha
.proghome
+"WorkFlow.jar "+
3005 " "+Reha
.proghome
+" "+Reha
.aktIK
+" "+String
.valueOf(Integer
.toString(Reha
.xport
)) );
3006 //Reha.thisFrame.setCursor(Reha.thisClass.wartenCursor);
3009 if(cmd
.equals("hmrsearch")){
3010 System
.out
.println("isActive = "+RehaIOServer
.rehaHMKIsActive
);
3011 if(RehaIOServer
.rehaHMKIsActive
){
3012 SwingUtilities
.invokeLater(new Runnable(){
3014 new ReverseSocket().setzeRehaNachricht(RehaIOServer
.rehaHMKreversePort
,"Reha#"+RehaIOMessages
.MUST_GOTOFRONT
);
3019 new LadeProg(Reha
.proghome
+"RehaHMK.jar "+
3020 " "+Reha
.proghome
+" "+Reha
.aktIK
+" "+String
.valueOf(Integer
.toString(Reha
.xport
)) );
3021 //Reha.thisFrame.setCursor(Reha.thisClass.wartenCursor);
3024 if(cmd
.equals("iniedit")){
3025 if(!Rechte
.hatRecht(Rechte
.Sonstiges_sqlmodul
, true)){
3028 new LadeProg(Reha
.proghome
+"RehaIniedit.jar "+
3029 " "+Reha
.proghome
+" "+Reha
.aktIK
);
3033 if(cmd
.equals("ocr")){
3034 new LadeProg(Reha
.proghome
+"RehaOCR.jar "+
3035 " "+Reha
.proghome
+" "+Reha
.aktIK
+" "+String
.valueOf(Integer
.toString(Reha
.xport
)) );
3042 public void activateWebCam(){
3044 new SwingWorker
<Void
,Void
>(){
3045 @SuppressWarnings("rawtypes")
3047 protected Void
doInBackground() throws java
.lang
.Exception
{
3051 @SuppressWarnings("unused")
3052 Class c
= Class
.forName("javax.media.Manager");
3053 }catch (ClassNotFoundException e
){
3054 SystemConfig
.sWebCamActive
= "0";
3055 JOptionPane
.showMessageDialog(null, "Java Media Framework (JMF) ist nicht installiert"+
3056 "\nWebCam kann nicht gestartet werden");
3059 @SuppressWarnings("unchecked")
3060 Vector
<CaptureDeviceInfo
> deviceList
= (Vector
<CaptureDeviceInfo
>)javax
.media
.cdm
.CaptureDeviceManager
.getDeviceList(new YUVFormat());
3061 if(deviceList
== null){
3062 JOptionPane
.showMessageDialog(null,"Keine WebCam verfügbar!!");
3063 SystemConfig
.sWebCamActive
= "0";
3066 device
= (CaptureDeviceInfo
) deviceList
.firstElement();
3067 ml
= device
.getLocator();
3068 Manager
.setHint(Manager
.LIGHTWEIGHT_RENDERER
, new Boolean(true));
3069 player
= Manager
.createRealizedPlayer(ml
);
3070 }catch(NullPointerException ex
){
3071 ex
.printStackTrace();
3072 SystemConfig
.sWebCamActive
= "0";
3073 }catch (NoPlayerException e
) {
3074 e
.printStackTrace();
3075 SystemConfig
.sWebCamActive
= "0";
3076 } catch (CannotRealizeException e
) {
3077 e
.printStackTrace();
3078 SystemConfig
.sWebCamActive
= "0";
3079 } catch (IOException e
) {
3080 e
.printStackTrace();
3081 SystemConfig
.sWebCamActive
= "0";
3083 System
.out
.println("Web-Cam erfolgreich gestartet");
3089 public void mustReloadDb(){
3090 Reha
.nachladenDB
= JOptionPane
.showConfirmDialog(Reha
.thisFrame
,"Die Datenbank konnte nicht gestartet werden, erneuter Versuch?","Wichtige Benuterzinfo",JOptionPane
.YES_NO_OPTION
);
3092 new SwingWorker<Void,Void>(){
3095 protected Void doInBackground() throws java.lang.Exception {
3098 }catch(NullPointerException ex){
3099 ex.printStackTrace();
3108 /*********************************************/
3114 * Thread zum Start der Datenbank
3119 final class DatenbankStarten
implements Runnable
{
3121 private void StarteDB(){
3122 final Reha obj
= Reha
.thisClass
;
3124 final String sDB
= "SQL";
3125 if (obj
.conn
!= null){
3128 catch(final SQLException e
){}
3132 new SocketClient().setzeInitStand("Datenbanktreiber installieren");
3133 Class
.forName(SystemConfig
.vDatenBank
.get(0).get(0)).newInstance();
3136 catch (InstantiationException e
) {
3137 e
.printStackTrace();
3138 } catch (IllegalAccessException e
) {
3139 e
.printStackTrace();
3140 } catch (ClassNotFoundException e
) {
3141 e
.printStackTrace();
3146 //obj.conn = (Connection) DriverManager.getConnection("jdbc:mysql://194.168.1.8:3306/dbf","entwickler","entwickler");
3147 new SocketClient().setzeInitStand("Datenbank initialisieren und öffnen");
3148 obj
.conn
= (Connection
) DriverManager
.getConnection(SystemConfig
.vDatenBank
.get(0).get(1)+"?jdbcCompliantTruncation=false&zeroDateTimeBehavior=convertToNull",
3149 SystemConfig
.vDatenBank
.get(0).get(3),SystemConfig
.vDatenBank
.get(0).get(4));
3151 int nurmaschine
= SystemConfig
.dieseMaschine
.toString().lastIndexOf("/");
3152 obj
.sqlInfo
.setConnection(obj
.conn
);
3153 new ExUndHop().setzeStatement("delete from flexlock where maschine like '%"+SystemConfig
.dieseMaschine
.toString().substring(0, nurmaschine
)+"%'");
3154 //geht leider nicht, erfordert root-Rechte
3155 //SqlInfo.sqlAusfuehren("SET GLOBAL sql_mode = ''");
3156 //sql_mode ging zwar mit SET SESSION, aber dann haben wir max_allowed... immer noch nicht gelöst.
3157 //SqlInfo.sqlAusfuehren("SET GLOBAL max_allowed_packet = 32*1024*1024");
3158 String db
= SystemConfig
.vDatenBank
.get(0).get(1).replace("jdbc:mysql://", "");
3159 db
= db
.substring(0,db
.indexOf("/"));
3160 final String xdb
= db
;
3161 new SwingWorker
<Void
,Void
>(){
3163 protected Void
doInBackground()
3164 throws java
.lang
.Exception
{
3166 while(Reha
.thisFrame
== null || Reha
.thisFrame
.getStatusBar()==null || Reha
.thisClass
.dbLabel
== null){
3169 Reha
.thisClass
.dbLabel
.setText(Reha
.aktuelleVersion
+xdb
);
3170 }catch(NullPointerException ex
){
3171 ex
.printStackTrace();
3181 Reha
.testeNummernKreis();
3182 Reha
.testeStrictMode();
3183 Reha
.testeMaxAllowed();
3185 }catch(java
.lang
.ArrayIndexOutOfBoundsException ex
){
3186 ex
.printStackTrace();
3189 }catch (final SQLException ex
) {
3190 System
.out
.println("SQLException: " + ex
.getMessage());
3192 Reha
.nachladenDB
= -1;
3193 System
.out
.println("Fehler bei der Initialisierung der Datenbank");
3194 new FireRehaError(RehaEvent
.ERROR_EVENT
,"Datenbankfehler!", new String
[] {"Datenabankfehler, Fehlertext:",ex
.getMessage()});
3197 } catch (InterruptedException e1
) {
3199 e1
.printStackTrace();
3203 Reha.thisClass.mustReloadDb();
3205 while(Reha.nachladenDB < 0){
3208 } catch (InterruptedException e) {
3209 e.printStackTrace();
3214 if(Reha
.nachladenDB
== JOptionPane
.YES_OPTION
){
3215 new Thread(new DbNachladen()).start();
3217 //new FireRehaError(this,"Datenbankfehler",new String[] {"Fehlertext:","Die Datenbank kann nicht gestartet werden"});
3218 new SocketClient().setzeInitStand("Fehler!!!! Datenbank kann nicht gestartet werden - Thera-Pi wird beendet");
3222 } catch (InterruptedException e
) {
3223 e
.printStackTrace();
3225 new SocketClient().setzeInitStand("INITENDE");
3227 new SwingWorker<Void,Void>(){
3229 protected Void doInBackground() throws java.lang.Exception {
3230 //JOptionPane.showMessageDialog(null,"Die Datenbank ist nicht erreichbar");
3235 while(Reha.dbLoadError == 1){
3238 } catch (InterruptedException e) {
3239 e.printStackTrace();
3252 while (!Reha
.thisClass
.splashok
){
3260 } catch (InterruptedException e
) {
3261 e
.printStackTrace();
3266 Date zeit
= new Date();
3267 String stx
= "Insert into eingeloggt set comp='"+SystemConfig
.dieseMaschine
+"', zeit='"+zeit
.toString()+"', einaus='ein'";
3268 new ExUndHop().setzeStatement(stx
);
3272 new SocketClient().setzeInitStand("Datenbank starten");
3274 new SocketClient().setzeInitStand("Datenbank ok");
3276 ParameterLaden
.Init();
3277 new SocketClient().setzeInitStand("Systemparameter laden");
3280 Reha
.sysConf
.SystemInit(3);
3281 ParameterLaden
.Passwort();
3282 new SocketClient().setzeInitStand("Systemparameter ok");
3286 new SocketClient().setzeInitStand("Native Interface ok");
3288 Reha
.sysConf
.SystemInit(4);
3290 new SocketClient().setzeInitStand("Emailparameter");
3292 Reha
.sysConf
.SystemInit(6);
3294 new SocketClient().setzeInitStand("Roogle-Gruppen ok!");
3296 Reha
.sysConf
.SystemInit(7);
3298 new SocketClient().setzeInitStand("Verzeichnisse");
3300 new SocketClient().setzeInitStand("Mandanten-Daten einlesen");
3302 Reha
.sysConf
.SystemInit(11);
3304 Reha
.sysConf
.SystemInit(9);
3308 new SocketClient().setzeInitStand("HashMaps initialisieren");
3310 SystemConfig
.HashMapsVorbereiten();
3314 new SocketClient().setzeInitStand("Desktop konfigurieren");
3316 SystemConfig
.DesktopLesen();
3320 new SocketClient().setzeInitStand("Patientenstamm init");
3322 SystemConfig
.PatientLesen();
3326 new SocketClient().setzeInitStand("Gerätetreiber initialiseieren");
3328 SystemConfig
.GeraeteInit();
3332 new SocketClient().setzeInitStand("Arztgruppen einlesen");
3334 SystemConfig
.ArztGruppenInit();
3338 new SocketClient().setzeInitStand("Rezeptparameter einlesen");
3340 SystemConfig
.RezeptInit();
3342 new SocketClient().setzeInitStand("Bausteine für Therapie-Berichte laden");
3344 SystemConfig
.TherapBausteinInit();
3346 //SystemConfig.compTest();
3348 new SocketClient().setzeInitStand("Fremdprogramme überprüfen");
3350 SystemConfig
.FremdProgs();
3352 new SocketClient().setzeInitStand("Geräteliste erstellen");
3354 SystemConfig
.GeraeteListe();
3356 SystemConfig
.CompanyInit();
3358 FileTools
.deleteAllFiles(new File(SystemConfig
.hmVerzeichnisse
.get("Temp")));
3359 if(SystemConfig
.sBarcodeAktiv
.equals("1")){
3361 Reha
.barcodeScanner
= new BarCodeScanner(SystemConfig
.sBarcodeCom
);
3362 } catch (Exception e
) {
3363 ////System.out.println("Barcode-Scanner konnte nicht installiert werden");
3364 } catch (java
.lang
.Exception e
) {
3365 e
.printStackTrace();
3368 new SocketClient().setzeInitStand("Firmendaten einlesen");
3370 Vector
<Vector
<String
>> vec
= SqlInfo
.holeFelder("select min(datum),max(datum) from flexkc");
3372 Reha
.kalMin
= DatFunk
.sDatInDeutsch( ((String
)((Vector
<String
>)vec
.get(0)).get(0)) );
3374 Reha
.kalMax
= DatFunk
.sDatInDeutsch( ((String
)((Vector
<String
>)vec
.get(0)).get(1)) );
3376 SystemConfig
.FirmenDaten();
3378 new SocketClient().setzeInitStand("Gutachten Parameter einlesen");
3380 SystemConfig
.GutachtenInit();
3382 SystemConfig
.AbrechnungParameter();
3384 SystemConfig
.BedienungIni_ReadFromIni();
3386 SystemConfig
.OffenePostenIni_ReadFromIni();
3388 SystemConfig
.JahresUmstellung();
3390 SystemConfig
.Feiertage();
3392 //notwendig bis alle Ãœberhangsrezepte der BKK-Gesundheit abgearbeitet sind.
3393 SystemConfig
.ArschGeigenTest();
3395 SystemConfig
.EigeneDokuvorlagenLesen();
3397 SystemConfig
.IcalSettings();
3399 new Thread(new PreisListenLaden()).start();
3401 if(SystemConfig
.sWebCamActive
.equals("1")){
3402 Reha
.thisClass
.activateWebCam();
3406 }catch (InterruptedException e1
) {
3407 e1
.printStackTrace();
3408 }catch (NullPointerException e2
) {
3409 e2
.printStackTrace();
3412 new SwingWorker
<Void
,Void
>(){
3414 protected Void
doInBackground() throws java
.lang
.Exception
{
3415 new SocketClient().setzeInitStand("INITENDE");
3424 final class DbNachladen
implements Runnable
{
3426 final String sDB
= "SQL";
3427 final Reha obj
= Reha
.thisClass
;
3428 if(Reha
.thisClass
.conn
!= null){
3430 Reha
.thisClass
.conn
.close();
3431 } catch (SQLException e
) {
3432 e
.printStackTrace();
3438 new SocketClient().setzeInitStand("Datenbank initialisieren und öffnen");
3439 obj
.conn
= (Connection
) DriverManager
.getConnection(SystemConfig
.vDatenBank
.get(0).get(1)+"?jdbcCompliantTruncation=false",
3440 SystemConfig
.vDatenBank
.get(0).get(3),SystemConfig
.vDatenBank
.get(0).get(4));
3442 int nurmaschine
= SystemConfig
.dieseMaschine
.toString().lastIndexOf("/");
3443 new ExUndHop().setzeStatement("delete from flexlock where maschine like '%"+SystemConfig
.dieseMaschine
.toString().substring(0, nurmaschine
)+"%'");
3444 if(obj
.dbLabel
!= null){
3445 String db
= SystemConfig
.vDatenBank
.get(0).get(1).replace("jdbc:mysql://", "");
3446 db
= db
.substring(0,db
.indexOf("/"));
3447 obj
.dbLabel
.setText(Reha
.aktuelleVersion
+db
);
3449 obj
.sqlInfo
.setConnection(obj
.conn
);
3453 catch (final SQLException ex
) {
3455 Reha
.nachladenDB
= -1;
3456 Reha
.thisClass
.mustReloadDb();
3458 while(Reha
.nachladenDB
< 0){
3461 } catch (InterruptedException e
) {
3462 e
.printStackTrace();
3466 if(Reha
.nachladenDB
== JOptionPane
.YES_OPTION
){
3467 new Thread(new DbNachladen()).start();
3475 final class ErsterLogin
implements Runnable
{
3476 private void Login(){
3479 Reha
.starteOfficeApplication();
3480 OOTools
.ooOrgAnmelden();
3483 ProgLoader
.PasswortDialog(0);
3487 SwingUtilities
.invokeLater(new Runnable(){
3489 Reha
.thisFrame
.setMinimumSize(new Dimension(800,600));
3490 Reha
.thisFrame
.setPreferredSize(new Dimension(800,600));
3491 Reha
.thisFrame
.setExtendedState(JXFrame
.MAXIMIZED_BOTH
);
3492 Reha
.thisFrame
.setVisible(true);
3493 INIFile inif
= INITool
.openIni(Reha
.proghome
+"ini/"+Reha
.aktIK
+"/", "rehajava.ini");
3494 if(inif
.getIntegerProperty("HauptFenster", "Divider1") != null){
3495 Reha
.thisClass
.jSplitLR
.setDividerLocation((Reha
.divider1
=inif
.getIntegerProperty("HauptFenster", "Divider1")));
3496 Reha
.thisClass
.jSplitRechtsOU
.setDividerLocation((Reha
.divider2
=inif
.getIntegerProperty("HauptFenster", "Divider2")));
3497 //System.out.println("Divider gesetzt");
3498 //System.out.println("Divider 1 = "+inif.getIntegerProperty("HauptFenster", "Divider1"));
3499 //System.out.println("Divider 2 = "+inif.getIntegerProperty("HauptFenster", "Divider2")+"\n\n");
3500 Reha
.dividerOk
= true;
3501 //Hier mußt noch eine funktion getSichtbar() entwickelt werden
3502 //diese ersetzt die nächste Zeile
3503 //System.out.println("Sichtbar Variante = "+Reha.thisClass.getSichtbar());
3505 //System.out.println("Divider-Angaben sind noch null");
3506 Reha
.thisClass
.setDivider(5);
3509 Reha
.thisFrame
.getRootPane().validate();
3510 Reha
.isStarted
= true;
3512 Reha
.thisFrame
.setVisible(true);
3516 Reha
.thisClass
.vollsichtbar
= Reha
.thisClass
.getSichtbar();
3517 if(!SystemConfig
.desktopHorizontal
){
3518 Reha
.thisClass
.jSplitRechtsOU
.setDividerLocation((Reha
.divider2
));
3520 //System.out.println("Wert für Vollsichtbar = "+Reha.thisClass.vollsichtbar);
3523 //Reha.thisFrame.pack();
3524 new SwingWorker
<Void
,Void
>(){
3526 protected Void
doInBackground() throws Exception
{
3528 //JOptionPane.showMessageDialog(null,System.getProperty("java.home"));
3529 //JOptionPane.showMessageDialog(null,System.getProperty("java.version"));
3535 if(SystemConfig
.sReaderAktiv
.equals("1")){
3538 System
.out
.println("Aktiviere Reader: "+SystemConfig
.sReaderName
+"\n"+
3539 "CT-API Bibliothek: "+SystemConfig
.sReaderCtApiLib
);
3540 Reha
.thisClass
.ocKVK
= new OcKVK(SystemConfig
.sReaderName
.trim().replace(" ", "_"),
3541 SystemConfig
.sReaderCtApiLib
,SystemConfig
.sReaderDeviceID
,false);
3542 }catch(CardTerminalException ex
){
3543 disableReader("Fehlerstufe rc = -8 = CardTerminal reagiert nicht\n"+ex
.getMessage());
3544 } catch (CardServiceException e
) {
3545 disableReader("Fehlerstufe rc = -2 oder -4 = Karte wird nicht unterstützt\n"+e
.getMessage());
3546 } catch (ClassNotFoundException e
) {
3547 disableReader("Fehlerstufe rc = -1 = CT-API läßt sich nicht initialisieren\n"+e
.getMessage());
3548 } catch (java
.lang
.Exception e
) {
3549 if(e
.getMessage().contains("property file")){
3550 disableReader("Anderweitiger Fehler\n"+"Die Datei opencard.properties befindet sich nicht im Java-Verzeichnis ../lib."+
3551 "Das Kartenlesegerät kann nicht verwendet werden.");
3553 disableReader("Anderweitiger Fehler\n"+e
.getMessage());
3556 if(Reha
.thisClass
.ocKVK
!= null){
3557 Vector
<Vector
<String
>> vec
= Reha
.thisClass
.ocKVK
.getReaderList();
3558 for(int i
= 0; i
< vec
.get(0).size();i
++){
3559 System
.out
.println("*******************");
3560 System
.out
.println(vec
.get(0).get(i
)+" - "+
3561 vec
.get(1).get(i
)+" - "+
3562 vec
.get(2).get(i
)+" - "+
3567 //KVKWrapper kvw = new KVKWrapper(SystemConfig.sReaderName);
3568 //kvw.KVK_Einlesen();
3570 }catch(NullPointerException ex
){
3571 ex
.printStackTrace();
3579 private void disableReader(String error
){
3580 SystemConfig
.sReaderAktiv
= "0";
3581 Reha
.thisClass
.ocKVK
= null;
3582 JOptionPane
.showMessageDialog(null, error
);
3586 final class PreisListenLaden
implements Runnable
{
3587 private void Einlesen(){
3590 ParameterLaden.PreiseEinlesen("KG");
3592 ParameterLaden.PreiseEinlesen("MA");
3594 ParameterLaden.PreiseEinlesen("ER");
3596 ParameterLaden.PreiseEinlesen("LO");
3598 ParameterLaden.PreiseEinlesen("RH");
3600 ParameterLaden.PreiseEinlesen("RS");
3602 ParameterLaden.PreiseEinlesen("FT");
3604 MachePreisListe.preiseFuellenNeu();
3609 while(Reha
.thisClass
== null || Reha
.thisClass
.jxLinks
== null || Reha
.thisClass
.jxRechts
== null){
3610 long zeit
= System
.currentTimeMillis();
3613 if(System
.currentTimeMillis()-zeit
> 20000){
3614 JOptionPane
.showMessageDialog(null,"Fehler beim Starten des Systems ");
3617 } catch (InterruptedException e
) {
3618 e
.printStackTrace();
3621 //Reha.thisClass.jxLinks.setAlpha(1.0f);
3622 //Reha.thisClass.jxRechts.setAlpha(1.0f);
3623 if(isAktiv("Physio")){
3624 new SocketClient().setzeInitStand("Preisliste Physio einlesen");
3625 SystemPreislisten
.ladePreise("Physio");
3627 if(isAktiv("Massage")){
3628 new SocketClient().setzeInitStand("Preisliste Massage einlesen");
3629 SystemPreislisten
.ladePreise("Massage");
3631 if(isAktiv("Ergo")){
3632 new SocketClient().setzeInitStand("Preisliste Ergo einlesen");
3633 SystemPreislisten
.ladePreise("Ergo");
3635 if(isAktiv("Logo")){
3636 new SocketClient().setzeInitStand("Preisliste Logo einlesen");
3637 SystemPreislisten
.ladePreise("Logo");
3639 if(isAktiv("Reha")){
3640 new SocketClient().setzeInitStand("Preisliste Reha einlesen");
3641 SystemPreislisten
.ladePreise("Reha");
3643 if(isAktiv("Podo")){
3644 new SocketClient().setzeInitStand("Preisliste Podologie einlesen");
3645 SystemPreislisten
.ladePreise("Podo");
3647 if(SystemConfig
.mitRs
){
3648 if(isAktiv("Rsport")){
3649 new SocketClient().setzeInitStand("Preisliste Rehasport einlesen");
3650 SystemPreislisten
.ladePreise("Rsport");
3652 if(isAktiv("Ftrain")){
3653 new SocketClient().setzeInitStand("Preisliste Funktionstraining einlesen");
3654 SystemPreislisten
.ladePreise("Ftrain");
3658 SystemPreislisten
.ladePreise("Common");
3660 System
.out
.println("Preislisten einlesen abgeschlossen");
3661 }catch(NullPointerException ex
){
3662 ex
.printStackTrace();
3665 new SocketClient().setzeInitStand("System-Init abgeschlossen!");
3666 Reha
.thisClass
.setzeInitEnde();
3667 Reha
.thisClass
.initok
= true;
3668 }catch(NullPointerException ex
){
3669 ex
.printStackTrace();
3673 public boolean isAktiv(String disziplin
){
3675 for(int i
= 0; i
< SystemConfig
.rezeptKlassenAktiv
.size();i
++){
3676 if(SystemConfig
.rezeptKlassenAktiv
.get(i
).get(0).toLowerCase().startsWith(disziplin
.toLowerCase()) || (disziplin
.equals("Rsport") && SystemConfig
.rezeptKlassenAktiv
.get(i
).get(0).toLowerCase().startsWith("rehasport")) ||
3677 (disziplin
.equals("Ftrain") && SystemConfig
.rezeptKlassenAktiv
.get(i
).get(0).toLowerCase().startsWith("funktionstrai"))){
3686 while (!Reha
.thisClass
.initok
){
3694 } catch (InterruptedException e
) {
3695 e
.printStackTrace();
3698 new Thread(new ErsterLogin()).start();
3702 final class SplashStarten
extends Thread
implements Runnable
{
3703 private void StarteSplash(){
3710 class SocketClient
{
3712 Socket server
= null;
3713 public void setzeInitStand(String stand
){
3720 } catch (IOException e
) {
3723 private void serverStarten() throws IOException
{
3725 this.server
= new Socket("localhost",1234);
3726 OutputStream output
= (OutputStream
) server
.getOutputStream();
3727 InputStream input
= server
.getInputStream();
3729 byte[] bytes
= this.stand
.getBytes();
3731 output
.write(bytes
);
3733 int zahl
= input
.available();
3735 byte[] lesen
= new byte[zahl
];
3742 }catch(NullPointerException ex
){
3743 ex
.printStackTrace();
3744 }catch (IOException e
) {
3745 e
.printStackTrace();
3749 class MyGradPanel
extends JXPanel
{
3753 private static final long serialVersionUID
= 2882847000287058980L;
3755 public void paint(Graphics g
){
3756 Graphics2D g2d
= (Graphics2D
)g
;
3757 Color s1
= Colors
.TaskPaneBlau
.alpha(1.0f
);
3758 Color e
= Color
.WHITE
;
3759 GradientPaint gradient
= new GradientPaint(0,0,s1
,getWidth(),getHeight(),e
);
3762 g2d
.setPaint(gradient
);
3763 g2d
.fillRect(0,0,getWidth(),getHeight());
3764 Image jImage
= Reha
.rehaBackImg
.getImage();
3765 g
.drawImage(jImage
,((getWidth()/2)-(jImage
.getWidth(this)/2)),((getHeight()/2)-(jImage
.getHeight(this)/2)), this);
3768 /**************************/
3769 class RehaSockServer
{
3770 static ServerSocket serv
= null;
3771 RehaSockServer() throws IOException
{
3773 serv
= new ServerSocket(1235);
3774 } catch (IOException e
) {
3775 e
.printStackTrace();
3778 Socket client
= null;
3781 client
= serv
.accept();
3782 } catch (IOException e
) {
3783 e
.printStackTrace();
3786 StringBuffer sb
= new StringBuffer();
3787 InputStream input
= client
.getInputStream();
3788 OutputStream output
= client
.getOutputStream();
3791 while( (byteStream
= input
.read()) > -1){
3792 char b
= (char)byteStream
;
3795 test
= String
.valueOf(sb
);
3796 final String xtest
= test
;
3797 if(xtest
.equals("INITENDE")){
3798 byte[] schreib
= "ok".getBytes();
3799 output
.write(schreib
);
3807 } catch (InterruptedException e
) {
3808 e
.printStackTrace();
3810 Reha
.warten
= false;
3814 byte[] schreib
= "ok".getBytes();
3815 output
.write(schreib
);
3823 ////System.out.println("Socket wurde geschlossen");
3825 ////System.out.println("Socket war bereits geschlossen");
3830 /*******************************************/
3831 final class HilfeDatenbankStarten
implements Runnable
{
3834 final Reha obj
= Reha
.thisClass
;
3836 // final String sDB = "SQL";
3837 if (obj
.hilfeConn
!= null){
3839 obj
.hilfeConn
.close();}
3840 catch(final SQLException e
){}
3843 Class
.forName(SystemConfig
.hmHilfeServer
.get("HilfeDBTreiber")).newInstance();
3844 Reha
.HilfeDbOk
= true;
3845 }catch (InstantiationException e
) {
3846 e
.printStackTrace();
3847 } catch (IllegalAccessException e
) {
3848 e
.printStackTrace();
3849 } catch (ClassNotFoundException e
) {
3850 e
.printStackTrace();
3853 Reha
.thisClass
.hilfeConn
=
3854 (Connection
) DriverManager
.getConnection(SystemConfig
.hmHilfeServer
.get("HilfeDBLogin"),
3855 SystemConfig
.hmHilfeServer
.get("HilfeDBUser"),SystemConfig
.hmHilfeServer
.get("HilfeDBPassword"));
3856 }catch (final SQLException ex
) {
3857 Reha
.HilfeDbOk
= false;