Package realcix20.guis.models

Source Code of realcix20.guis.models.ItemTableModel

/*
* ItemTableModel.java
*
* Created on 2006��11��10��, ����10:00
*
* RealCix2.0
*/

package realcix20.guis.models;

import java.util.Iterator;
import java.util.Vector;

import javax.swing.table.DefaultTableModel;

import realcix20.classes.basic.BaseClass;
import realcix20.classes.basic.Cell;
import realcix20.classes.basic.Column;
import realcix20.classes.basic.Row;
import realcix20.classes.plugins.CurrencyPlugin;
import realcix20.guis.utils.I18NManager;
import realcix20.utils.GlobalValueManager;
import realcix20.utils.ObjectUtil;

public class ItemTableModel extends DefaultTableModel {
     
    private BaseClass object;
   
    private Vector names;
    private Vector dataValues;
   
    public ItemTableModel(BaseClass object, Row mainRow) {
     
            this.object = object;                   
           
            names = new Vector();
            dataValues = new Vector();
           
            Iterator columnIter = object.getColumns().iterator();
            while (columnIter.hasNext()) {
                Column column = (Column)columnIter.next();
                if (column.isItemField())
                    names.add(column);
            }
            names.add("row");
           
            Iterator rowIter = mainRow.getRowSet().getRows().iterator();
            int size = mainRow.getRowSet().getRows().size();

            while (rowIter.hasNext()) {
                Row row = (Row)rowIter.next();
                if ( (isItemRow(row)) && (!row.isDelete()) ) {
                
                    Vector rowDatas = new Vector();
                    columnIter = object.getColumns().iterator();
                    while (columnIter.hasNext()) {
                        Column column = (Column)columnIter.next();
                        if (column.isItemField()) {
                            Cell newCell = ObjectUtil.findNewCell(row, column.getTableName(), column.getColumnName());
                            if (column.isI18N()) {
                                String i18nString = null;
                                if (newCell.getColumnValue() != null)
                                    i18nString = I18NManager.getI18NString(column.getI18nPrefix(), newCell.getColumnValue());
                                if (i18nString != null) {
                                    if (GlobalValueManager.getValue("APPLICATION.ZIC").equals("1")) {
                                        rowDatas.add(i18nString);
                                    } else if (GlobalValueManager.getValue("APPLICATION.ZIC").equals("2")) {
                                        rowDatas.add(newCell.getColumnValue());
                                    } else if (GlobalValueManager.getValue("APPLICATION.ZIC").equals("3")) {
                                       rowDatas.add(newCell.getColumnValue() + " - " + i18nString);
                                    }
                                }                                   
                                else {
                                    if (newCell.getColumnValue() instanceof Double) {
                                        rowDatas.add(CurrencyPlugin.getFormatedDouble((Double)newCell.getColumnValue()));
                                    } else
                                    rowDatas.add(newCell.getColumnValue());
                                }
                            } else {
                                if (newCell.getColumnValue() instanceof Double) {
                                    rowDatas.add(CurrencyPlugin.getFormatedDouble((Double)newCell.getColumnValue()));
                                } else
                                    rowDatas.add(newCell.getColumnValue());
                            }                       
                        }
                    }                                   
                    rowDatas.add(row);                   
                    dataValues.add(rowDatas);     
                   
                }                         
            }
           
            setDataVector(dataValues, names);
       
    }
   
    //help methods
    public void addRow(Row row) {
       
            Vector rowDatas = new Vector();
       
            Iterator cellIter = row.getNewCells().iterator();
            while (cellIter.hasNext()) {
               
                Cell cell = (Cell)cellIter.next();
                rowDatas.add(cell.getColumnValue());
               
            }
           
            addRow(rowDatas);
       
    }
   
    private boolean isItemRow(Row row) {
       
            boolean flag = true;                   
           
            Iterator cellIter = row.getNewCells().iterator();
            while (cellIter.hasNext()) {
                Cell cell = (Cell)cellIter.next();
                Column column = findColumn(object, cell.getTableName(), cell.getColumnName());
                if (column != null) {
                    if ( (column.isPrimaryKey()) && (column.isItemField()) ) {
                        if ( (cell.getColumnValue() == null) ) {
                            flag = false;
                            break;
                        }
                    }
                }

            }
           
            return flag;
    }
   
    private Column findColumn(BaseClass object, String tableName, String columnName) {
       
            Column rColumn = null;
       
            Iterator columnIter = object.getColumns().iterator();
            while (columnIter.hasNext()) {
                Column column = (Column)columnIter.next();
                if ( (column.getTableName().equals(tableName)) && (column.getColumnName().equals(columnName)) ) {
                    rColumn = column;
                    break;
                }
            }
           
            return rColumn;
       
    }
   
}
TOP

Related Classes of realcix20.guis.models.ItemTableModel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.