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.web.vo.AccountVO;
8   
9   /**
10   * B32.03 - eDossier-Interceptions - Diplomarbeit an der Software-Schule Schweiz<br>
11   * Datenhaltung der Account-Tabelle
12   * <p>
13   * Copyright (c) 2004, Eidgenössisches Institut für Geistiges Eigentum
14   * @author    Anita Rueegsegger, Marc Bouquet
15   * @version   $Id: DtmAccount.java,v 1.6 2004/11/01 13:52:31 ruegsegger Exp $
16   */
17  public class DtmAccount extends DefaultTableModel
18  {
19  
20    public DtmAccount()
21    {
22      initHeader();
23    }
24  
25    /**
26     * Spaltenbeschriftung setzen
27     */
28    private void initHeader()
29    {
30      columnIdentifiers.addElement( "Account" );
31      columnIdentifiers.addElement( "Name" );
32      columnIdentifiers.addElement( "Email" );
33      columnIdentifiers.addElement( "Pwd" );
34      columnIdentifiers.addElement( "Tel" );
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      return false;
47    }
48  
49    /**
50     * Werte der angegebenen Spalte werden mit den standardmässigen
51     * Darstellungsobjekten ausgestattet
52     * muss implementiert werden, damit Sortierung korrekt funktioniert
53     *
54     * @param column Spalte
55     * @return gibt die Klasse der Column zurück
56     */
57    public Class getColumnClass( int column )
58    {
59      return getValueAt( 0, column ).getClass();
60    }
61  
62    /**
63     * Tabellendaten werden gesetzt.<br>
64     * Daten werden in Form eines ValueObjects übergeben.
65     * Daten des VOs werden aufgesplittet und in den Datenhaltungsvector(dataVector)
66     * des Tabellenmodels geschrieben.
67     * Felder die null sein können müssen mit "" gefüllt werden,
68     * ansonsten nullpointerexception bei funktionsaufruf getColumnClass
69     *
70     * @param data Liste von AccountVOs beinhaltet alle Accounts der DB
71     */
72    public void setData( List data )
73    {
74      dataVector.clear();
75  
76      if( data != null )
77      {
78        for( int i = 0; i < data.size(); i++ )
79        {
80          Vector row = new Vector();
81          AccountVO accountVO = ( AccountVO )data.get( i );
82  
83          row.add( new Integer( accountVO.getAccountId() ) );
84          row.add( accountVO.getName() == null ? "" : accountVO.getName() );
85          row.add( accountVO.getEmail() == null ? "" : accountVO.getEmail() );
86          row.add( accountVO.getPwd() == null ? "" : accountVO.getPwd() );
87          row.add( accountVO.getTelNr() == null ? "" : accountVO.getTelNr() );
88  
89          dataVector.add( row );
90        }
91      }
92      fireTableDataChanged();
93    }
94  
95    /**
96     * Daten der Tabelle löschen
97     */
98    public void clear()
99    {
100     dataVector.clear();
101     fireTableDataChanged();
102   }
103 }
104