| DtmInterception.java |
1 package ch.ige.edossier.transfer.client;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Vector;
6 import javax.swing.table.DefaultTableModel;
7 import ch.ige.edossier.transfer.vo.EreignisVO;
8
9 /**
10 * B32.03 - eDossier-Interceptions - Diplomarbeit an der Software-Schule Schweiz<br>
11 * Datenhaltung Interceptions
12 * <p>
13 * Copyright (c) 2004, Eidgenössisches Institut für Geistiges Eigentum
14 * @author Anita Rueegsegger, Marc Bouquet
15 * @version $Id: DtmInterception.java,v 1.6 2004/11/01 13:52:31 ruegsegger Exp $
16 */
17 public class DtmInterception extends DefaultTableModel
18 {
19
20 public DtmInterception()
21 {
22 initHeader();
23 }
24
25 /**
26 * Spaltenbeschriftung setzen
27 */
28 private void initHeader()
29 {
30 columnIdentifiers.addElement( " " ); // Checkbox
31 columnIdentifiers.addElement( "Schutit-Key" );
32 columnIdentifiers.addElement( "GesuchNr" );
33 columnIdentifiers.addElement( "Account" ); // Combobox
34 columnIdentifiers.addElement( "vo" ); // EreignisVO beinhaltet alle Daten
35 }
36
37 /**
38 * Editierbarkeit der Daten verhindern,
39 *
40 * @param row selektierte Zeile
41 * @param col selektierte Spalte
42 * @return true falls Zellen editierbar sind
43 */
44 public boolean isCellEditable( int row, int col )
45 {
46 switch( col )
47 {
48 case 0:
49 return true; // Checkbox muss editierbar sein
50 case 3:
51 return true; // Combobox muss editierbar sein
52 default:
53 return false;
54 }
55 }
56
57 /**
58 * Werte der angegebenen Spalte werden mit den standardmässigen
59 * Darstellungsobjekten ausgestattet
60 * muss implementiert werden, damit Sortierung korrekt funktioniert
61 *
62 * @param column Spalte
63 * @return gibt die Klasse der Column zurück
64 */
65 public Class getColumnClass( int column )
66 {
67 return getValueAt( 0, column ).getClass();
68 }
69
70 /**
71 * Tabellendaten werden gesetzt.<br>
72 * Daten werden in Form eines ValueObjects übergeben.
73 * Daten des VOs werden aufgesplittet und in den Datenhaltungsvector(dataVector)
74 * des Tabellenmodels geschrieben.
75 * Felder die null sein können müssen mit "" gefüllt werden,
76 * ansonsten nullpointerexception bei funktionsaufruf getColumnClass
77 *
78 * @param data ArrayList von EreignisVO beinhaltet alle Bagis-Daten der Beanstandungen
79 */
80 public void setData( List data )
81 {
82 dataVector.clear();
83
84 if( data != null )
85 {
86 for( int i = 0; i < data.size(); i++ )
87 {
88 Vector row = new Vector();
89 EreignisVO vo = ( EreignisVO )data.get( i );
90
91 row.add( new Boolean( false ) ); //Checkbox
92 row.add( new Integer( vo.schutitKey ) );
93 row.add( new String( vo.schutitVO.gesuchNr == null ? "" :
94 vo.schutitVO.gesuchNr ) );
95 row.add( new ComboBoxObject( "", "" ) );
96 row.add( vo );
97
98 dataVector.add( row );
99 }
100 }
101 fireTableDataChanged();
102 }
103
104 /**
105 * Gibt die selektierten (Checkbox) Tabellendaten in Form einer ArrayList von EreignisVOs zurück
106 * @return Tabellendaten gekapselt in ArrayList von EreignisVOs
107 */
108 public List getMarkedData()
109 {
110 List list = new ArrayList();
111 EreignisVO vo = null;
112 int size = dataVector.size();
113
114 if( size > 0 )
115 {
116 for( int i = 0; i < size; i++ )
117 {
118 Vector vec = ( Vector )dataVector.get( i );
119
120 if( ( ( Boolean )vec.get( 0 ) ).booleanValue() )
121 {
122 vo = new EreignisVO();
123 vo = ( EreignisVO )vec.get( 4 );
124 ComboBoxObject cbx = ( ComboBoxObject )vec.get( 3 );
125 vo.accountId = new Integer( cbx.key ).intValue();
126 list.add( vo );
127 }
128 }
129 }
130 return list;
131 }
132
133 /**
134 * Daten der Tabelle löschen
135 */
136 public void clear()
137 {
138 dataVector.clear();
139 fireTableDataChanged();
140 }
141 }
142 | DtmInterception.java |