package org.openswing.swing.customvo.client;
import org.openswing.swing.mdi.client.InternalFrame;
import org.openswing.swing.table.client.GridController;
import javax.swing.*;
import java.awt.*;
import org.openswing.swing.client.*;
import org.openswing.swing.table.columns.client.*;
import org.openswing.swing.table.java.ServerGridDataLocator;
import org.openswing.swing.util.client.ClientSettings;
import java.util.ArrayList;
import org.openswing.swing.customvo.java.CustomFieldVO;
import org.openswing.swing.domains.java.Domain;
import java.math.BigDecimal;
/**
* <p>Title: OpenSwing Framework</p>
* <p>Description: Grid Frame used to list custom grid.</p>
* <p>Copyright: Copyright (C) 2006 Mauro Carniel</p>
*
* <p> This file is part of JAllInOne ERP/CRM application.
* This application is free software; you can redistribute it and/or
* modify it under the terms of the (LGPL) Lesser General Public
* License as published by the Free Software Foundation;
*
* GNU LESSER GENERAL PUBLIC LICENSE
* Version 2.1, February 1999
*
* This application is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* The author may be contacted at:
* maurocarniel@tin.it</p>
*
* @author Mauro Carniel
* @version 1.0
*/
public final class CustomGridControl extends GridControl {
public CustomGridControl(CustomGridControlController controller) {
try {
setController(controller);
setGridDataLocator(controller);
setValueObjectClassName("org.openswing.swing.customvo.java.CustomValueObject");
init(controller.getCustomFields());
}
catch(Exception e) {
e.printStackTrace();
}
}
private void init(ArrayList customFields) throws Exception {
TextColumn colText = null;
DecimalColumn colDec = null;
IntegerColumn colInt = null;
ComboColumn colCombo = null;
Column col = null;
CustomFieldVO vo = null;
for(int i=0;i<customFields.size();i++) {
vo = (CustomFieldVO)customFields.get(i);
if (vo.getAttributeType()==vo.TYPE_DATE) {
col = new DateColumn();
}
if (vo.getAttributeType()==vo.TYPE_DATE_TIME) {
col = new DateTimeColumn();
}
if (vo.getAttributeType()==vo.TYPE_TIME) {
col = new TimeColumn();
}
if (vo.getAttributeType()==vo.TYPE_NUM) {
if (vo.getConstraintValues()!=null && vo.getConstraintValues().length()>0) {
String[] values = vo.getConstraintValues().split(",");
Domain domain = new Domain("DOMAIN_"+vo.getAttributeName());
for(int j=0;j<values.length;j++)
domain.addDomainPair(new BigDecimal(values[j]),values[j]);
colCombo.setDomain(domain);
col = colCombo;
}
else if (vo.getDecimals()==0) {
colInt = new IntegerColumn();
colInt.setMaxValue((int)Math.pow(10,vo.getIntegers()));
col = colInt;
}
else {
colDec = new DecimalColumn();
colDec.setMaxValue((int)Math.pow(10,vo.getIntegers()));
colDec.setDecimals(vo.getDecimals());
col = colDec;
}
}
else if (vo.getAttributeType()==vo.TYPE_TEXT) {
if (vo.getConstraintValues()!=null && vo.getConstraintValues().length()>0) {
String[] values = vo.getConstraintValues().split(",");
Domain domain = new Domain("DOMAIN_"+vo.getAttributeName());
for(int j=0;j<values.length;j++)
domain.addDomainPair(values[j],values[j]);
colCombo.setDomain(domain);
col = colCombo;
}
else {
colText = new TextColumn();
colText.setMaxCharacters(vo.getMaxChars());
col = colText;
}
}
else if (vo.getAttributeType()==vo.TYPE_CHAR) {
if (vo.getConstraintValues()!=null && vo.getConstraintValues().length()>0) {
String[] values = vo.getConstraintValues().split(",");
Domain domain = new Domain("DOMAIN_"+vo.getAttributeName());
for(int j=0;j<values.length;j++)
domain.addDomainPair(values[j],values[j]);
colCombo.setDomain(domain);
col = colCombo;
}
else {
colText = new TextColumn();
colText.setMaxCharacters(vo.getMaxChars());
colText.setRpadding(true);
col = colText;
}
}
col.setColumnName(vo.getAttributeName());
col.setColumnFilterable(vo.isFilterable());
col.setColumnRequired(vo.isRequired());
col.setColumnSelectable(vo.isVisible());
col.setColumnVisible(vo.isVisible());
col.setColumnSortable(vo.isSortable());
col.setEditableOnEdit(vo.isEditableOnEdit());
col.setEditableOnInsert(vo.isEditableOnInsert());
col.setHeaderColumnName(vo.getDescription());
col.setPreferredWidth(vo.getColumnWidth());
col.setSortingOrder(vo.getSortOrder());
col.setSortVersus(vo.getSortVersus());
getColumnContainer().add(col, null);
}
}
}