package org.hpccsystems.recordlayout;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.swt.widgets.TableItem;
public class ColumnCellModifiers implements ICellModifier{
private CreateTable createTableObject;
public ColumnCellModifiers(CreateTable createTableObject) {
super();
this.createTableObject = createTableObject;
}
@Override
public boolean canModify(Object arg0, String arg1) {
// TODO Auto-generated method stub
return true;
}
public Object getValue(Object element, String property) {
// Find the index of the column
int columnIndex = createTableObject.getColumnNames().indexOf(property);
Object result = null;
RecordBO record = (RecordBO) element;
System.out.println("getValue - " + property);
if(property.equalsIgnoreCase(CreateTable.NAME_COLUMN)){
result = record.getColumnName();
}else
if(property.equalsIgnoreCase(CreateTable.DEFAULT_VALUE)){
result = record.getDefaultValue();
}else
if(property.equalsIgnoreCase(CreateTable.TYPE_COLUMN)){
String stringValue = record.getColumnType();
String[] choices = createTableObject.getChoices(property);
int i = choices.length - 1;
while (!stringValue.equals(choices[i]) && i > 0)
--i;
result = new Integer(i);
}else
if(property.equalsIgnoreCase(CreateTable.WIDTH_COLUMN)){
result = record.getColumnWidth();
}else
if(property.equalsIgnoreCase(CreateTable.SORT_ORDER)){
System.out.println("getValue of SORT_ORDER - " + property);
String stringValue = record.getSortOrder();
String[] choices = createTableObject.getChoices(property);
int i = choices.length - 1;
while (!stringValue.equals(choices[i]) && i > 0)
--i;
result = new Integer(i);
}
/*
switch (columnIndex) {
case 0 : // COLUMN_NAME
result = record.getColumnName();
break;
case 1 : // DEFAULT_VALUE
result = record.getDefaultValue();
break;
case 2 : // COLUMN_TYPE
String stringValue = record.getColumnType();
String[] choices = createTableObject.getChoices(property);
int i = choices.length - 1;
while (!stringValue.equals(choices[i]) && i > 0)
--i;
result = new Integer(i);
break;
case 3 : // COLUMN_WIDTH
result = record.getColumnWidth();
break;
default :
result = "";
}*/
System.out.println("getValue2");
return result;
}
/**
* @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
*/
public void modify(Object element, String property, Object value) {
// Find the index of the column
int columnIndex = createTableObject.getColumnNames().indexOf(property);
TableItem item = (TableItem) element;
RecordBO record = (RecordBO) item.getData();
String valueString;
if(property.equalsIgnoreCase(CreateTable.NAME_COLUMN)){
valueString = ((String) value).trim();
record.setColumnName(valueString);
}else
if(property.equalsIgnoreCase(CreateTable.DEFAULT_VALUE)){
valueString = ((String) value).trim();
record.setDefaultValue(valueString);
}else
if(property.equalsIgnoreCase(CreateTable.TYPE_COLUMN)){
valueString = createTableObject.getChoices(property)[((Integer) value).intValue()].trim();
if (!record.getColumnType().equals(valueString)) {
record.setColumnType(valueString);
}
}else
if(property.equalsIgnoreCase(CreateTable.WIDTH_COLUMN)){
valueString = ((String) value).trim();
record.setColumnWidth(valueString);
}else
if(property.equalsIgnoreCase(CreateTable.SORT_ORDER)){
//result = 1;
valueString = createTableObject.getChoices(property)[((Integer) value).intValue()].trim();
System.out.println("----" + valueString);
if (!record.getColumnType().equals(valueString)) {
record.setSortOrder(valueString);
}
}
/*switch (columnIndex) {
case 0 : // COLUMN_NAME
valueString = ((String) value).trim();
record.setColumnName(valueString);
break;
case 1 : // DEFAULT_VALUE
valueString = ((String) value).trim();
record.setDefaultValue(valueString);
break;
case 2 : // COLUMN_TYPE
valueString = createTableObject.getChoices(property)[((Integer) value).intValue()].trim();
if (!record.getColumnType().equals(valueString)) {
record.setColumnType(valueString);
}
break;
case 3 : // COLUMN_WIDTH
valueString = ((String) value).trim();
record.setColumnWidth(valueString);
break;
default :
}*/
createTableObject.getRecordList().modifyRecord(record);
}
}