Class DeliverableView

java.lang.Object
  extended by javax.swing.table.AbstractTableModel
      extended by DeliverableView
All Implemented Interfaces:
java.io.Serializable, javax.swing.table.TableModel

public class DeliverableView
extends javax.swing.table.AbstractTableModel

Luokka toimii JTable-komponentin tieto-oliona, jonka palveluita käyttäen JTable saa tarvitsemansa taulukon piirtämiseen ja sen tietojen muokkaamiseen.

Luokka toteuttaa tähän vaaditun TableModel-rajapinnan perimänsä AbstractTableModel-luokan kautta, joka tarjoaa monia valmiiksi toteutettuja ominaisuuksia jättäen toteutettavaksi vain välttämättömimmän.

DeliverableView-oliota käytetään JTable-komponentin tietosisällön mallina, kun halutaan näyttää ja käsitellä tuotavia tuotteita:

Luokan ilmentymä säilöö ja tarjoaa piirrettäväksi Hallintasovelluksen Tuotteet-välilehden Tuotavat-taulun sisällön.

DeliverableView asetetaan JTable-komponentille esimerkiksi konstruktorissa

  • JTable table = new JTable(new DeliverableView());
  • DeliverableView-olion oma tietosisältö täytyy asettaa ja päivittää setDeliverables-metodilla.

    See Also:
    Serialized Form

    Constructor Summary
    DeliverableView()
              Konstruktori on tyhjä.
     
    Method Summary
     java.lang.Class<?> getColumnClass(int col)
               JTable käyttää metodia selvittääkseen sarakkeen arvojen tyypin.
     int getColumnCount()
               JTable käyttää tätä metodia selvittääkseen sarakkeiden määrän.
     java.lang.String getColumnName(int col)
               JTable käyttää metodia sarakkeiden otsikoiden saamiseksi.
     Deliverable[] getDeliverables()
              Metodi palauttaa listan tämän olion sisältämistä tuotavista.
     int getIntLastEditedRow()
               
     int getRowCount()
               JTable käyttää tätä metodia selvittääkseen rivien määrän.
     java.lang.Object getValueAt(int row, int col)
              JTable käyttää tätä metodia selvittääkseen solun arvon piirtämistä varten.
     boolean isCellEditable(int row, int col)
               JTable määrittää metodin avulla, onko tietyn solu arvo muokattavissa.
     void setDeliverables(Deliverable[] objDbs)
               Metodilla asetetaan taulukon tietosisältö.
     void setIntLastEditedRow(int argIntLastEditedRow)
               
     void setValueAt(java.lang.Object value, int row, int col)
               JTable käyttää metodia, kun käyttäjä muokkaa jonkun solun arvoa.
     
    Methods inherited from class javax.swing.table.AbstractTableModel
    addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners, removeTableModelListener
     
    Methods inherited from class java.lang.Object
    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     

    Constructor Detail

    DeliverableView

    public DeliverableView()
    Konstruktori on tyhjä. Tuotavat tuotteet on asetettava erikseen.

    Method Detail

    getColumnClass

    public java.lang.Class<?> getColumnClass(int col)

    JTable käyttää metodia selvittääkseen sarakkeen arvojen tyypin. Se tarvitsee tietoa määrittäessään editorin ja piirtäjän sarakkeen soluille.

    Jos indeksi on virheellinen, palauttaa metodi Object.class

    Specified by:
    getColumnClass in interface javax.swing.table.TableModel
    Overrides:
    getColumnClass in class javax.swing.table.AbstractTableModel
    Parameters:
    col - sarakkeen indeksi
    Returns:
    sarakkeen arvojen luokka tai Object.class

    getColumnCount

    public int getColumnCount()

    JTable käyttää tätä metodia selvittääkseen sarakkeiden määrän.

    Tuotavien tuotteiden taulukossa on kiinteä sarakemäärä 8.

    Returns:
    8 jos taulukossa on rivejä, muuten 0

    getRowCount

    public int getRowCount()

    JTable käyttää tätä metodia selvittääkseen rivien määrän.

    Tuotavien tuotteiden taulukossa jokainen tuote on omalla rivillään.

    Returns:
    palauttaa taulukossa olevien rivien määrän tai 0, jos taulukkoa ei ole

    getColumnName

    public java.lang.String getColumnName(int col)

    JTable käyttää metodia sarakkeiden otsikoiden saamiseksi.

    Metodi päättelee col-arvon perusteella palautettavan merkkijonon, jonka se hakee Utilities.getString(String) -metodin avulla:

  • (col == 0): nimi suomeksi
  • (col == 1): nimi ruotsiksi
  • (col == 2): nimi englanniksi
  • (col == 3): koko
  • (col == 4): mitä korvaa
  • (col == 5): kuinka paljon
  • (col == 6): onko passiivinen
  • (col == 7): tallennus tietokantaan
  • Specified by:
    getColumnName in interface javax.swing.table.TableModel
    Overrides:
    getColumnName in class javax.swing.table.AbstractTableModel
    Parameters:
    col - sarakkeen indeksi
    Returns:
    annetun sarakkeen otsikko

    isCellEditable

    public boolean isCellEditable(int row,
                                  int col)

    JTable määrittää metodin avulla, onko tietyn solu arvo muokattavissa.

    Kun ollaan muokattavalla rivillä tai mitään riviä ei ole vielä aloitettu muokkaamaan, kaikki arvot ovat muokattavissa, paitsi tallennus -painike silloin, kun riviä ei ole muokattu.

    Kun jotakin riviä on muokattu, muita rivejä ei voi muokata ennen kuin ensimmäinen on talletettu.

    Specified by:
    isCellEditable in interface javax.swing.table.TableModel
    Overrides:
    isCellEditable in class javax.swing.table.AbstractTableModel
    Parameters:
    row - rivi
    col - sarake
    Returns:
    true, ellei haettu tallennus-painiketta ja riviä ei ole muokattu

    getValueAt

    public java.lang.Object getValueAt(int row,
                                       int col)
    JTable käyttää tätä metodia selvittääkseen solun arvon piirtämistä varten.

    Parameters:
    row - rivin indeksi
    col - sarakkeen indeksi
    Returns:
    viite solussa olevaan olioarvoon Object-muodossa tai null, jos tietoja ei ole
    Throws:
    java.lang.NullPointerException - jos rivin indeksissä on null-viite

    setValueAt

    public void setValueAt(java.lang.Object value,
                           int row,
                           int col)

    JTable käyttää metodia, kun käyttäjä muokkaa jonkun solun arvoa.

    Parametrit viittaavat indekseillään tiettyyn taulukon soluun. Value-parametrin arvo tulee joltakin JTable-komponentille rekisteröidyltä editorilta, jolla käyttäjä on muokannut solun arvoa.

    Specified by:
    setValueAt in interface javax.swing.table.TableModel
    Overrides:
    setValueAt in class javax.swing.table.AbstractTableModel
    Parameters:
    value - editorin antama arvo
    row - rivin indeksi
    col - sarakkeen indeksi

    getDeliverables

    public Deliverable[] getDeliverables()
    Metodi palauttaa listan tämän olion sisältämistä tuotavista.

    Returns:
    tuotavat tuotteet

    setDeliverables

    public void setDeliverables(Deliverable[] objDbs)

    Metodilla asetetaan taulukon tietosisältö.

    JTablen tarvitsemat palvelut nojautuvat tällä metodilla asetetun taulukon sisältöön.

    Metodia kutsutaan MainFrame-luokan RefreshTables()-metodista käsin. Metodi asettaa parametrina saamansa Deliverable-taulukon objDeliverables-kentän arvoksi. Tälle metodille voi syöttää suoraan Utilities.getDeliverables()-metodin paluuarvon. Null-arvo aiheuttaa poikkeuksen.

    Parameters:
    objDbs - Utilities.getDeliverables()
    Throws:
    java.lang.IllegalArgumentException - jos parametri on null

    getIntLastEditedRow

    public int getIntLastEditedRow()
    Returns:
    the intLastEditedRow

    setIntLastEditedRow

    public void setIntLastEditedRow(int argIntLastEditedRow)
    Parameters:
    argIntLastEditedRow - the intLastEditedRow to set