1 package terminKalender
;
4 import hauptFenster
.Reha
;
5 import hauptFenster
.ReverseSocket
;
7 import java
.awt
.BorderLayout
;
9 import java
.awt
.Dimension
;
11 import java
.awt
.event
.ActionEvent
;
12 import java
.awt
.event
.ActionListener
;
13 import java
.awt
.event
.KeyEvent
;
14 import java
.awt
.event
.KeyListener
;
15 import java
.sql
.ResultSet
;
16 import java
.sql
.SQLException
;
17 import java
.sql
.Statement
;
18 import java
.text
.SimpleDateFormat
;
19 import java
.util
.ArrayList
;
20 import java
.util
.Date
;
21 import java
.util
.Vector
;
23 import javax
.swing
.ImageIcon
;
24 import javax
.swing
.JComponent
;
25 import javax
.swing
.JOptionPane
;
26 import javax
.swing
.JScrollPane
;
27 import javax
.swing
.JTextArea
;
28 import javax
.swing
.ListSelectionModel
;
29 import javax
.swing
.SwingUtilities
;
30 import javax
.swing
.event
.ListSelectionEvent
;
31 import javax
.swing
.event
.ListSelectionListener
;
32 import javax
.swing
.table
.AbstractTableModel
;
34 import org
.jdesktop
.swingworker
.SwingWorker
;
35 import org
.jdesktop
.swingx
.JXButton
;
36 import org
.jdesktop
.swingx
.JXDatePicker
;
37 import org
.jdesktop
.swingx
.JXFrame
;
38 import org
.jdesktop
.swingx
.JXHeader
;
39 import org
.jdesktop
.swingx
.JXLabel
;
40 import org
.jdesktop
.swingx
.JXPanel
;
41 import org
.jdesktop
.swingx
.JXTable
;
42 import org
.jdesktop
.swingx
.JXTitledPanel
;
43 //import org.jdesktop.swingx.decorator.SortOrder;
49 import com
.jgoodies
.forms
.layout
.CellConstraints
;
50 import com
.jgoodies
.forms
.layout
.FormLayout
;
52 import rechteTools
.Rechte
;
53 import rehaContainer
.RehaTP
;
54 import CommonTools
.JRtaTextField
;
55 import systemEinstellungen
.SystemConfig
;
56 import systemTools
.RezeptFahnder
;
57 import systemTools
.Verschluesseln
;
58 import dialoge
.PinPanel
;
59 import dialoge
.RehaSmartDialog
;
60 import events
.RehaTPEvent
;
61 import events
.RehaTPEventClass
;
62 import events
.RehaTPEventListener
;
67 public class SchnellSuche
extends RehaSmartDialog
implements ActionListener
, KeyListener
, RehaTPEventListener
{
71 private static final long serialVersionUID
= -3482074172384055074L;
74 private RehaTPEventClass rtp
= null;
75 private JXPanel jp1
= null;
76 private static ArrayList
<String
[]> termine
= new ArrayList
<String
[]>();
77 private static JXPanel jtp
= null;
78 private static String dieserName
= "";
79 private static JXTable pliste
= null;
80 private static JXTitledPanel jp
;
81 private JRtaTextField tfSuche
= null;
82 private JXButton heute
= null;
83 private JXButton heute4
= null;
84 private JTextArea tae
= null;
85 private JXLabel lblsuche
= null;
86 private JXLabel lbldatum
= null;
87 private JXTable ttbl
= null;
88 private String aktDatum
= "";
89 private Vector vTdata
= new Vector();
90 public static SchnellSuche thisClass
= null;
91 public String startdatum
= DatFunk
.sHeute();
92 SimpleDateFormat sdf
= new SimpleDateFormat("dd.MM.yyyy");
95 public JXDatePicker datePicker
= null;
96 SchnellSucheListSelectionHandler ssucheselect
= new SchnellSucheListSelectionHandler();
98 public SchnellSuche(JXFrame owner
,TerminFenster eltern
){
99 //super(frame, titlePanel());
100 super(owner
,"SchnellSuche");
101 dieserName
= "SchnellSuche";
103 getSmartTitledPanel().setName(dieserName
);
105 this.eltern
= eltern
;
108 this.setUndecorated(true);
109 this.setContentPanel(titlePanel() );
110 this.jtp
.setLayout(new BorderLayout());
112 JXPanel jp1
= new JXPanel();
114 jp1
.setBackground(Color
.WHITE
);
115 jp1
.setLayout(new BorderLayout());
116 //jp1.setLayout(new VerticalLayout(1));
117 String ss
= "icons/header-image.png";
118 JXHeader header
= new JXHeader("Mit dieser Schnellsuche....",
119 "....können Sie auf einfache Weise einen Namen oder eine Rezeptnummer suchen ('Roogle' ist zwar besser, aber diese Funktion ist schneller).\n" +
120 "Mit dem Button >>Startdatum<< durchsuchen sie lediglich einen Tag (schneller).\n" +
121 "Mit dem Button >>Startdatum + 4 Tage<< dursuchen Sie den Kalender über einen Zeitraum von insgesamt 5 Tagen\n\n"+
122 "Sie schließen dieses Fenster über den roten Punkt rechts oben, oder mit der Taste >>ESC<<.",
124 jp1
.add(header
,BorderLayout
.NORTH
);
125 jp1
.add(eingabePanel(),BorderLayout
.SOUTH
);
127 this.jtp
.add(jp1
,BorderLayout
.NORTH
);
128 JScrollPane jscr
= new JScrollPane();
130 tae = new JTextArea();
133 tae.setFont(new Font("Courier New",Font.PLAIN,12));
134 tae.addKeyListener(this);
135 jscr.setViewportView(tae);
137 ttbl
= new JXTable();
138 //tae.setFont(new Font("Courier New",Font.PLAIN,12));
139 ttbl
.addKeyListener(this);
140 SchnellSucheTableModel myTable
= new SchnellSucheTableModel();
141 String
[] column
= {"Tag","Datum","Uhrzeit","Name","Rez.Nummer","Therapeut",""};
142 myTable
.columnNames
= column
;
143 myTable
.data
= vTdata
;
144 ttbl
.setModel(myTable
);
145 ttbl
.getColumn(0).setMaxWidth(60);
146 ttbl
.getColumn(1).setMaxWidth(65);
147 ttbl
.getColumn(2).setMaxWidth(60);
148 ttbl
.getColumn(6).setMinWidth(0);
149 ttbl
.getColumn(6).setMaxWidth(0); //Datenvector
150 ttbl
.getSelectionModel().addListSelectionListener(ssucheselect
);
151 jscr
.setViewportView(ttbl
);
154 this.jtp
.add(jscr
,BorderLayout
.CENTER
);
155 JXPanel dummy
= new JXPanel();
156 dummy
.setBorder(null);
157 dummy
.setPreferredSize(new Dimension(0,10));
158 this.jtp
.add(dummy
,BorderLayout
.SOUTH
);
159 getSmartTitledPanel().setTitle("Schnellsuche ab heute + 4 Tage");
160 PinPanel pinPanel
= new PinPanel();
161 pinPanel
.getGruen().setVisible(false);
162 pinPanel
.setName(dieserName
);
163 pinPanel
.setzeName(dieserName
);
164 setPinPanel(pinPanel
);
165 rtp
= new RehaTPEventClass();
166 rtp
.addRehaTPEventListener((RehaTPEventListener
) this);
168 SwingUtilities
.invokeLater(new Runnable(){
175 /*******************************************************/
176 /*********************************************************/
177 class SchnellSucheListSelectionHandler
implements ListSelectionListener
{
179 public void valueChanged(ListSelectionEvent e
) {
180 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
181 boolean isAdjusting
= e
.getValueIsAdjusting();
185 if (lsm
.isSelectionEmpty()) {
188 int minIndex
= lsm
.getMinSelectionIndex();
189 int maxIndex
= lsm
.getMaxSelectionIndex();
190 for (int i
= minIndex
; i
<= maxIndex
; i
++) {
191 if (lsm
.isSelectedIndex(i
)) {
192 int row
= ttbl
.getSelectedRow();
194 final String reznr
= (String
)ttbl
.getValueAt(row
, 4);
195 if(reznr
.trim().length()>=2){
196 if("KGMAERLORHPO".indexOf(reznr
.substring(0,2)) >= 0){
197 new SwingWorker
<Void
,Void
>(){
199 protected Void
doInBackground()
201 //todo = "Farbsignale mit \XY vor der Suche abtrennen
202 int index
= reznr
.indexOf("\\");
204 new RezeptFahnder(false).doFahndung(reznr
.substring(0,index
));
206 new RezeptFahnder(false).doFahndung(reznr
);
208 //in Spalte 1 des TK den Behandler aufrufen
209 //und den markierten Termin auf den angewählten Termin setzen.
216 if(Reha
.thisClass
.terminpanel
!= null){
218 Reha
.thisClass
.terminpanel
.setzeTerminAktuell(ttbl
.getValueAt(ttbl
.getSelectedRow(), 1).toString(),
219 ttbl
.getValueAt(ttbl
.getSelectedRow(), 2).toString(),
220 ttbl
.getValueAt(ttbl
.getSelectedRow(), 5).toString());
222 System.out.println(eltern.getAktiveSpalte(0));
223 System.out.println(eltern.getAktiveSpalte(1));
224 System.out.println(eltern.getAktiveSpalte(2));
226 //eltern.terminBestaetigen(eltern.getAktiveSpalte(2),false);
227 }catch(Exception ex
){
240 public void FensterSchliessen(String welches
){
241 ////System.out.println("Eltern-->"+this.getParent().getParent().getParent().getParent().getParent());
242 //webBrowser.dispose();
246 public JXPanel
eingabePanel(){
247 JXPanel eingabep
= new JXPanel();
248 eingabep
.setBorder(null);
249 eingabep
.setPreferredSize(new Dimension(0,31));
250 // 1 2 3 4 5 6 7 8 9 10 11 12
251 FormLayout flay
= new FormLayout("10dlu,40dlu,4dlu,80dlu,4dlu,80dlu,4dlu,80dlu,15dlu,80dlu,4dlu,40dlu:g",
252 "3dlu,15dlu,80dlu,15dlu,15dlu,15dlu,30dlu,15dlu");
253 eingabep
.setLayout(flay
);
254 CellConstraints cc
= new CellConstraints();
256 lblsuche
= new JXLabel("Suche nach:");
257 eingabep
.add(lblsuche
,cc
.xy(2,2));
259 tfSuche
= new JRtaTextField("GROSS",false);
260 tfSuche
.addKeyListener(this);
261 tfSuche
.setName("SucheFeld");
262 eingabep
.add(tfSuche
,cc
.xy(4,2));
264 heute
= new JXButton(startdatum
);
265 heute
.setActionCommand("start");
266 heute
.addActionListener(this);
267 heute
.addKeyListener(this);
268 eingabep
.add(heute
,cc
.xy(6,2));
270 heute4
= new JXButton(startdatum
+" + 4 Tage");
271 heute4
.setActionCommand("startplusvier");
272 heute4
.addActionListener(this);
273 heute4
.addKeyListener(this);
274 eingabep
.add(heute4
,cc
.xy(8,2));
276 lbldatum
= new JXLabel(" ");
277 eingabep
.add(lbldatum
,cc
.xy(10,2));
281 datePicker
= new JXDatePicker();
282 datePicker
.setDate(new Date());
283 datePicker
.setName("datePicker");
284 //datePicker.addActionListener(this);
286 datePicker
.addActionListener(new ActionListener(){
289 public void actionPerformed(ActionEvent e
) {
290 newStart
= datePicker
.getDate();
291 startdatum
= sdf
.format(newStart
);
292 //System.out.println("Neues Startdatum = "+startdatum);
293 heute
.setText(startdatum
);
294 heute4
.setText(startdatum
+" + 4 Tage");
299 eingabep
.add(datePicker
,cc
.xy(12,2));
302 eingabep
.setVisible(true);
307 public void setLabelDatum(String sdatum
){
308 lbldatum
.setText(sdatum
);
310 public void setTextAreaText(String stext
){
311 String aktText
= tae
.getText();
312 aktText
= aktText
+stext
+"\n";
313 tae
.setText(aktText
);
316 public void setTerminTable(Vector threadVect
){
318 SchnellSucheTableModel myTable
= new SchnellSucheTableModel();
319 String
[] column
= {"Tag","Datum","Uhrzeit","Name","Rez.Nummer","Therapeut",""};
320 myTable
.columnNames
= column
;
321 myTable
.data
= vTdata
;
322 ttbl
.setModel(myTable
);
323 ttbl
.getColumn(0).setMaxWidth(60);
324 ttbl
.getColumn(1).setMaxWidth(65);
325 ttbl
.getColumn(2).setMaxWidth(60);
326 ttbl
.getColumn(6).setMinWidth(0);
327 ttbl
.getColumn(6).setMaxWidth(0); //Datenvector
328 ttbl
.setEditable(false);
329 ttbl
.setSortable(true);
330 //SortOrder setSort = SortOrder.ASCENDING;
331 //ttbl.setSortOrder(6,(SortOrder) setSort);
332 ttbl
.setSelectionMode(0);
336 private static JXPanel
titlePanel(){
338 jp
.setName(dieserName
);
339 jtp
= (JXPanel
) jp
.getContentContainer();
340 jtp
.setSize(new Dimension(200,200));
341 jtp
.setVisible(true);
346 public String
dieserName(){
347 return this.getName();
350 public void rehaTPEventOccurred(RehaTPEvent evt
) {
351 // TODO Auto-generated method stub
352 //System.out.println("****************das darf doch nicht wahr sein in DruckFenster**************");
353 String ss
= this.getName();
354 //System.out.println("SchnellSucheFenster "+this.getName()+" Eltern "+ss);
356 //if (evt.getDetails()[0].equals(ss) && evt.getDetails()[1]=="ROT"){
357 FensterSchliessen(evt
.getDetails()[0]);
358 rtp
.removeRehaTPEventListener((RehaTPEventListener
) this);
360 }catch(NullPointerException ne
){
361 //System.out.println("In DruckFenster" +evt);
367 public void actionPerformed(ActionEvent arg0
) {
368 String cmd
= arg0
.getActionCommand();
369 if(cmd
.equals("start")){
372 tfSuche
.requestFocus();
374 }else if(cmd
.equals("startplusvier")){
377 tfSuche
.requestFocus();
382 private void tageSuchen(int abheute
){
383 String suchkrit
= tfSuche
.getText().trim();
384 if(! suchkrit
.equals("") && abheute
==0){
385 SchnellSucheTableModel myTable
= new SchnellSucheTableModel();
386 String
[] column
= {"Tag","Datum","Uhrzeit","Name","Rez.Nummer","Therapeut",""};
387 myTable
.columnNames
= column
;
388 myTable
.data
= vTdata
;
389 ttbl
.setModel(myTable
);
390 ttbl
.getColumn(0).setMaxWidth(60);
391 ttbl
.getColumn(1).setMaxWidth(65);
392 ttbl
.getColumn(2).setMaxWidth(60);
393 ttbl
.getColumn(6).setMinWidth(0);
394 ttbl
.getColumn(6).setMaxWidth(0); //Datenvector
395 ttbl
.setEditable(false);
396 ttbl
.setSortable(true);
397 //SortOrder setSort = SortOrder.ASCENDING;
398 //ttbl.setSortOrder(6,(SortOrder) setSort);
399 ttbl
.setSelectionMode(0);
401 String
[] stmts
= {null};
403 aktDatum
= DatFunk
.sDatPlusTage(startdatum
, abheute
);
404 sdatum
= DatFunk
.sDatInSQL(aktDatum
);
405 String stmt
= "select * from flexkc where datum = '"+sdatum
+"'";
407 setLabelDatum(aktDatum
);
408 SuchenInTagen sIt
= new SuchenInTagen();
409 sIt
.setzeStatement(stmts
, suchkrit
);
411 if(! suchkrit
.equals("") && abheute
> 0){
412 SchnellSucheTableModel myTable
= new SchnellSucheTableModel();
413 String
[] column
= {"Tag","Datum","Uhrzeit","Name","Rez.Nummer","Therapeut",""};
414 myTable
.columnNames
= column
;
415 myTable
.data
= vTdata
;
416 ttbl
.setModel(myTable
);
417 ttbl
.getColumn(0).setMaxWidth(60);
418 ttbl
.getColumn(1).setMaxWidth(65);
419 ttbl
.getColumn(2).setMaxWidth(60);
420 ttbl
.getColumn(6).setMinWidth(0);
421 ttbl
.getColumn(6).setMaxWidth(0); //Datenvector
422 ttbl
.setEditable(false);
423 ttbl
.setSortable(true);
424 //SortOrder setSort = SortOrder.ASCENDING;
425 //ttbl.setSortOrder(6,(SortOrder) setSort);
426 ttbl
.setSelectionMode(0);
427 String
[] stmts
= {null,null,null,null,null};
429 aktDatum
= startdatum
; //DatFunk.sDatPlusTage(DatFunk.sHeute(), 0);
430 sdatum
= DatFunk
.sDatInSQL(aktDatum
);
431 String stmt
= "select * from flexkc where datum = '"+sdatum
+"'";
432 setLabelDatum(aktDatum
);
434 aktDatum
= DatFunk
.sDatPlusTage(aktDatum
, 1);
435 stmt
= "select * from flexkc where datum = '"+DatFunk
.sDatInSQL(aktDatum
)+"'";
437 aktDatum
= DatFunk
.sDatPlusTage(aktDatum
, 1);
438 stmt
= "select * from flexkc where datum = '"+DatFunk
.sDatInSQL(aktDatum
)+"'";
440 aktDatum
= DatFunk
.sDatPlusTage(aktDatum
, 1);
441 stmt
= "select * from flexkc where datum = '"+DatFunk
.sDatInSQL(aktDatum
)+"'";
443 aktDatum
= DatFunk
.sDatPlusTage(aktDatum
, 1);
444 stmt
= "select * from flexkc where datum = '"+DatFunk
.sDatInSQL(aktDatum
)+"'";
447 for(int i=0;i<5;i++){
448 //System.out.println("Befehl = "+stmts[i]);
451 SuchenInTagen sIt
= new SuchenInTagen();
452 sIt
.setzeStatement(stmts
.clone(), suchkrit
);
457 public static JXTable
getTable(){
460 public static ArrayList
<String
[]> getTermine(){
463 public void suchenFocus(){
464 SwingUtilities
.invokeLater(new Runnable(){
467 tfSuche
.requestFocus();
471 Verschluesseln man = Verschluesseln.getInstance();
472 man.init(Verschluesseln.getPassword().toCharArray(), man.getSalt(), man.getIterations());
473 final String encrypted = man.encrypt("s1b2rta");
474 //System.out.println ("Verschl�sselt :"+encrypted);
475 final String decrypted = man.decrypt (encrypted);
476 //System.out.println("Entschl�sselt :"+decrypted);
480 public void keyPressed(KeyEvent arg0
) {
481 ////System.out.println(arg0.getKeyCode()+" - "+arg0.getSource());
482 if(arg0
.getKeyCode() == 27){
483 rtp
.removeRehaTPEventListener((RehaTPEventListener
) this);
484 FensterSchliessen(null);
486 if(arg0
.getKeyCode() == 10 && (!arg0
.isControlDown())){
487 if(arg0
.getComponent().getName() != null){
488 if(arg0
.getComponent().getName().equals("SucheFeld")){
491 tfSuche
.requestFocus();
497 if(arg0
.getKeyCode() == 10 && (arg0
.isControlDown())){
499 if((selrow
=ttbl
.getSelectedRow()) < 0){
502 if(! Rechte
.hatRecht(Rechte
.Kalender_terminconfirminpast
, true)){
505 int frage
= JOptionPane
.showConfirmDialog(null,"Termin für - "+ttbl
.getValueAt(selrow
, 4).toString()+" - als behandelt bestätigen?","Wichtige Benutzeranfrage",JOptionPane
.YES_NO_OPTION
);
506 if(frage
==JOptionPane
.YES_OPTION
){
507 eltern
.terminBestaetigen(eltern
.getAktiveSpalte(2),false);
508 SwingUtilities
.invokeLater(new Runnable(){
519 public void keyReleased(KeyEvent arg0
) {
520 // TODO Auto-generated method stub
524 public void keyTyped(KeyEvent arg0
) {
525 // TODO Auto-generated method stub
526 if(arg0
.getKeyCode() == 27){
527 rtp
.removeRehaTPEventListener((RehaTPEventListener
) this);
528 FensterSchliessen(null);
534 /*******************************************/
536 /******************************************/
537 final class SuchenInTagen
extends Thread
implements Runnable
{
538 Statement stmt
= null;
540 String sergebnis
= "";
541 boolean gesperrt
= false;
542 String
[] exStatement
= null;
543 String suchkrit
= "";
544 ArrayList
<String
> atermine
= new ArrayList
<String
>();
545 public void setzeStatement(String
[] exStatement
,String suchkrit
){
546 this.exStatement
= exStatement
;
547 this.suchkrit
= suchkrit
;
551 Vector treadVect
= new Vector();
553 stmt
= (Statement
) Reha
.thisClass
.conn
.createStatement(ResultSet
.TYPE_SCROLL_SENSITIVE
,
554 ResultSet
.CONCUR_UPDATABLE
);
555 for(int i
= 0; i
<exStatement
.length
;i
++){
557 rs
= (ResultSet
) stmt
.executeQuery(exStatement
[i
]);
558 ////System.out.println("Nach for..."+exStatement[i]);
559 //SchnellSuche.thisClass.setLabelDatum("nach ExecuteQuery");
561 /*in Spalte 301 steht die Anzahl der belegten Bl�cke*/
562 int belegt
= rs
.getInt(301);
563 SchnellSuche
.thisClass
.setLabelDatum(DatFunk
.sDatInDeutsch(rs
.getString(305)));
568 String sorigdatum
= "";
570 String skollege
= "";
572 for(int ii
= 0;ii
< belegt
;ii
++){
573 name
= rs
.getString("T"+(ii
+1));
574 nummer
= rs
.getString("N"+(ii
+1));
575 skollege
= rs
.getString(303).substring(0,2);
576 if( skollege
.substring(0,1).equals("0") ){
577 ikollege
= Integer
.parseInt(skollege
.substring(1,2));
579 ikollege
= Integer
.parseInt(skollege
);
581 if(name
.contains(suchkrit
) || nummer
.contains(suchkrit
) ){
582 uhrzeit
= rs
.getString("TS"+(ii
+1));
583 sorigdatum
= rs
.getString(305);
584 sdatum
= DatFunk
.sDatInDeutsch(sorigdatum
);
585 skollege
= (String
) ParameterLaden
.getKollegenUeberReihe(ikollege
);
586 //skollege = (String) ParameterLaden.vKollegen.get(ikollege).get(0);
588 termin
= DatFunk
.WochenTag(sdatum
)+" - "+sdatum
+" - "+uhrzeit
+
589 " - "+name
+" - "+nummer
+" - "+skollege
;
590 //SchnellSuche.thisClass.setTextAreaText(termin);
591 atermine
.add(DatFunk
.WochenTag(sdatum
));
592 atermine
.add(sdatum
);
593 atermine
.add(uhrzeit
.substring(0,5));
595 atermine
.add(nummer
);
596 atermine
.add(skollege
);
597 atermine
.add(sorigdatum
+uhrzeit
.substring(0,5));
598 treadVect
.addElement(atermine
.clone());
599 //SchnellSuche.thisClass.setTerminTable((ArrayList) atermine.clone());
601 }else if(suchkrit
.equals("!®") && (!SystemConfig
.isAndi
)){
603 String extraktnummer
= (nummer
.indexOf("\\") >= 0 ? nummer
.substring(0,nummer
.indexOf("\\")) : nummer
);
604 if(extraktnummer
.length() > 2 && (!name
.startsWith("®")) && (!nummer
.equals("@FREI"))){
605 uhrzeit
= rs
.getString("TS"+(ii
+1));
606 sorigdatum
= rs
.getString(305);
607 sdatum
= DatFunk
.sDatInDeutsch(sorigdatum
);
608 skollege
= (String
) ParameterLaden
.getKollegenUeberReihe(ikollege
);
609 //skollege = (String) ParameterLaden.vKollegen.get(ikollege).get(0);
611 termin
= DatFunk
.WochenTag(sdatum
)+" - "+sdatum
+" - "+uhrzeit
+
612 " - "+name
+" - "+nummer
+" - "+skollege
;
613 //SchnellSuche.thisClass.setTextAreaText(termin);
614 atermine
.add(DatFunk
.WochenTag(sdatum
));
615 atermine
.add(sdatum
);
616 atermine
.add(uhrzeit
.substring(0,5));
618 atermine
.add(nummer
);
619 atermine
.add(skollege
);
620 atermine
.add(sorigdatum
+uhrzeit
.substring(0,5));
621 treadVect
.addElement(atermine
.clone());
624 }catch(Exception ex
){
632 }catch(SQLException ev
){
633 //System.out.println("SQLException: " + ev.getMessage());
634 //System.out.println("SQLState: " + ev.getSQLState());
635 //System.out.println("VendorError: " + ev.getErrorCode());
638 SchnellSuche
.thisClass
.setTerminTable((Vector
) treadVect
.clone());
639 }catch(SQLException ex
) {
640 //System.out.println("von stmt -SQLState: " + ex.getSQLState());
647 } catch (SQLException sqlEx
) { // ignore }
653 } catch (SQLException sqlEx
) { // ignore }
665 class SchnellSucheTableModel
extends AbstractTableModel
{
666 private static final boolean DEBUG
= false;
668 //public String[] columnNames = null;
669 //public Object[][] data = null;
671 public String
[] columnNames
= { "", "",};
673 //public Object[][] data = {{"","","","","","",-1,-1}};
674 public Vector
<ArrayList
> data
= null;
676 public int getColumnCount() {
677 return columnNames
.length
;
680 public int getRowCount() {
684 public void deleteRow(int row
){
685 ////System.out.println("Wert = "+getValueAt(row,3));
688 fireTableDataChanged();
690 //fireTableChanged(null);
693 public String
getColumnName(int col
) {
694 return columnNames
[col
];
697 public Object
getValueAt(int row
, int col
) {
698 return ((ArrayList
) ((Vector
) data
).get(row
)).get(col
);
702 * JTable uses this method to determine the default renderer/ editor for
703 * each cell. If we didn't implement this method, then the last column
704 * would contain text ("true"/"false"), rather than a check box.
706 public Class
getColumnClass(int c
) {
708 //return getValueAt(0, c).getClass();
712 * Don't need to implement this method unless your table's editable.
714 public boolean isCellEditable(int row
, int col
) {
715 //Note that the data/cell address is constant,
716 //no matter where the cell appears onscreen.
725 * Don't need to implement this method unless your table's data can
728 public void setValueAt(Object value
, int row
, int col
) {
730 //System.out.println("Setting value at " + row + "," + col
731 // + " to " + value + " (an instance of "
732 // + value.getClass() + ")");
735 //data.set(row)[col] = value;
736 fireTableCellUpdated(row
, col
);
739 //System.out.println("New value of data:");
744 private void printDebugData() {
745 int numRows
= getRowCount();
746 int numCols
= getColumnCount();
748 for (int i
= 0; i
< numRows
; i
++) {
749 //System.out.print(" row " + i + ":");
750 for (int j
= 0; j
< numCols
; j
++) {
751 //System.out.print(" " + ((ArrayList) ((Vector) data).get(i)).get(j) );
753 //System.out.println();
755 //System.out.println("--------------------------");