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 static java.lang.String INITAL_PACKSELECTION
           
private  java.util.Map installedpacks
           
private  LocaleDatabase langpack
           
private  boolean modifyinstallation
           
(package private)  java.util.Map<java.lang.String,Pack> namesObj
           
(package private)  java.util.Map<java.lang.String,java.lang.Integer> namesPos
           
private  java.util.List packs
           
private  java.util.List packsToInstall
           
private  PacksPanelInterface panel
           
private  RulesEngine rules
           
private static long serialVersionUID
           
private  java.util.Properties variables
           
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
PacksModel(PacksPanelInterface panel, InstallData idata, RulesEngine rules)
           
 
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()
           
 java.util.Map getInstalledpacks()
           
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)
           
 boolean isModifyinstallation()
           
private  void propRequirement(java.lang.String name)
           
private  void refreshPacksToInstall()
           
private  void removeAlreadyInstalledPacks(java.util.List selectedpacks)
           
private  void reverseDeps()
          Creates the reverse dependency graph
 void setValueAt(java.lang.Object aValue, int rowIndex, int columnIndex)
           
private  void updateBytes()
           
 void updateConditions()
           
private  void updateConditions(boolean initial)
           
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.
private  void updateExcludes(int rowindex)
           
 
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

INITAL_PACKSELECTION

private static final java.lang.String INITAL_PACKSELECTION
See Also:
Constant Field Values

packs

private java.util.List packs

packsToInstall

private java.util.List packsToInstall

installedpacks

private java.util.Map installedpacks

modifyinstallation

private boolean modifyinstallation

panel

private PacksPanelInterface panel

langpack

private LocaleDatabase langpack

checkValues

private int[] checkValues

namesObj

java.util.Map<java.lang.String,Pack> namesObj

namesPos

java.util.Map<java.lang.String,java.lang.Integer> namesPos

rules

private RulesEngine rules

variables

private java.util.Properties variables
Constructor Detail

PacksModel

public PacksModel(PacksPanelInterface panel,
                  InstallData idata,
                  RulesEngine rules)
Method Detail

removeAlreadyInstalledPacks

private void removeAlreadyInstalledPacks(java.util.List selectedpacks)

updateConditions

public void updateConditions()

updateConditions

private void updateConditions(boolean initial)

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.


updateExcludes

private void updateExcludes(int rowindex)

updateBytes

private void updateBytes()

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)

getInstalledpacks

public java.util.Map getInstalledpacks()
Returns:
the installedpacks

isModifyinstallation

public boolean isModifyinstallation()
Returns:
the modifyinstallation