com.izforge.izpack.panels
Class PacksModel

java.lang.Object
  extended by javax.swing.table.AbstractTableModel
      extended by com.izforge.izpack.panels.PacksModel
All Implemented Interfaces:
java.io.Serializable, javax.swing.table.TableModel

 class PacksModel
extends javax.swing.table.AbstractTableModel

User: Gaganis Giorgos Date: Sep 17, 2004 Time: 8:33:21 AM


Field Summary
private  int[] checkValues
           
private  LocaleDatabase langpack
           
(package private)  java.util.Map namesObj
           
(package private)  java.util.Map namesPos
           
private  java.util.List packs
           
private  java.util.List packsToInstall
           
private  PacksPanelInterface panel
           
private static long serialVersionUID
           
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
PacksModel(java.util.List packs, java.util.List packsToInstall, PacksPanelInterface panel)
           
 
Method Summary
private  int dfs(int[] status)
          We use a modified dfs graph search algorithm as described in: Thomas H.
private  int dfsVisit(Pack u, int[] status, boolean wipe)
           
 java.lang.Class getColumnClass(int columnIndex)
           
 int getColumnCount()
           
private  int getPos(java.lang.String name)
          Given a map of names and Integer for position and a name it return the position of this name as an int
 int getRowCount()
           
 java.lang.Object getValueAt(int rowIndex, int columnIndex)
           
private  void initvalues()
           
 boolean isCellEditable(int rowIndex, int columnIndex)
           
private  void propRequirement(java.lang.String name)
           
private  void refreshPacksToInstall()
           
private  void reverseDeps()
          Creates the reverse dependency graph
 void setValueAt(java.lang.Object aValue, int rowIndex, int columnIndex)
           
private  void updateDeps()
          This function updates the checkboxes after a change by disabling packs that cannot be installed anymore and enabling those that can after the change.
 
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnName, getListeners, getTableModelListeners, removeTableModelListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

packs

private java.util.List packs

packsToInstall

private java.util.List packsToInstall

panel

private PacksPanelInterface panel

langpack

private LocaleDatabase langpack

checkValues

private int[] checkValues

namesObj

java.util.Map namesObj

namesPos

java.util.Map namesPos
Constructor Detail

PacksModel

public PacksModel(java.util.List packs,
                  java.util.List packsToInstall,
                  PacksPanelInterface panel)
Method Detail

reverseDeps

private void reverseDeps()
Creates the reverse dependency graph


initvalues

private void initvalues()

propRequirement

private void propRequirement(java.lang.String name)

getPos

private int getPos(java.lang.String name)
Given a map of names and Integer for position and a name it return the position of this name as an int

Returns:
position of the name

getRowCount

public int getRowCount()

getColumnCount

public int getColumnCount()

getColumnClass

public java.lang.Class getColumnClass(int columnIndex)
Specified by:
getColumnClass in interface javax.swing.table.TableModel
Overrides:
getColumnClass in class javax.swing.table.AbstractTableModel

isCellEditable

public boolean isCellEditable(int rowIndex,
                              int columnIndex)
Specified by:
isCellEditable in interface javax.swing.table.TableModel
Overrides:
isCellEditable in class javax.swing.table.AbstractTableModel

getValueAt

public java.lang.Object getValueAt(int rowIndex,
                                   int columnIndex)

setValueAt

public void setValueAt(java.lang.Object aValue,
                       int rowIndex,
                       int columnIndex)
Specified by:
setValueAt in interface javax.swing.table.TableModel
Overrides:
setValueAt in class javax.swing.table.AbstractTableModel

refreshPacksToInstall

private void refreshPacksToInstall()

updateDeps

private void updateDeps()
This function updates the checkboxes after a change by disabling packs that cannot be installed anymore and enabling those that can after the change. This is accomplished by running a search that pinpoints the packs that must be disabled by a non-fullfiled dependency.


dfs

private int dfs(int[] status)
We use a modified dfs graph search algorithm as described in: Thomas H. Cormen, Charles Leiserson, Ronald Rivest and Clifford Stein. Introduction to algorithms 2nd Edition 540-549,MIT Press, 2001


dfsVisit

private int dfsVisit(Pack u,
                     int[] status,
                     boolean wipe)