package net.ms.designer.editors.componentdetail.models;
import java.util.ArrayList;
import java.util.List;
import net.ms.designer.editors.componentdetail.IEditorConstant;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
/**
* @author lili
* @version 1.1.0
* @explain defind the Datefield's properties,it extends CommonField
*/
public class DateField extends CommonField
{
/**
* @explain construt of DateField()
*
*/
public DateField()
{
super();
}
static final long serialVersionUID = 1;
private final String field_Type = "Date";
public static final String FIELD_DATE_FORMAT = "date"; // defind the format of Date
// public static final String DateFormatPattern = "yyyy-MM-dd";
public static String dateFormatPattern = "1";
private int dispFormat = 0; // 0 = Date ; 1 = DateTime
private int resultID = 11; //init the FieldID = 11
private String defaultValue = null;
private static Image LED_ICON = new Image(null, TemplateConstants.class.getResourceAsStream("icons/Date16.gif"));
protected static List newPropList = new ArrayList();
static
{
newPropList.addAll(propDescriptors);
}
/**
* @return Returns the propertyDescriptors.
*/
public IPropertyDescriptor[] getPropertyDescriptors()
{
List propList = new ArrayList();
propList.addAll(getRangePropsList());
propList.addAll(newPropList);
filterPropertyDescriptor(propList);
return (IPropertyDescriptor[]) propList.toArray(new IPropertyDescriptor[propList.size()]);
}
/**
* @return Returns the PropertyValue.
*/
public Object getPropertyValue(Object propName)
{
if (propName.equals(FIELD_DATE_FORMAT))
return new Integer(getDispFormat());
else if (propName.equals(FIELD_DEFVALUE))
{
String defValue = getDefaultValue();
if ("${now}".equalsIgnoreCase(defValue))
return defValue;
else
return getDefaultValue() == null ? "" : getDefaultValue();
} else
return super.getPropertyValue(propName);
}
/*
* ���� Javadoc��
* @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
*/
public void resetPropertyValue(Object id)
{
if (id.equals(FIELD_DATE_FORMAT))
setDispFormat(0);
else if (id.equals(FIELD_DEFVALUE))
setDefaultValue(null);
else
super.resetPropertyValue(id);
}
/*
* ���� Javadoc��
* @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
*/
public void setPropertyValue(Object id, Object value)
{
if (id.equals(FIELD_DATE_FORMAT))
{
// ���ѡ��Date����ֵΪ11������Ϊdatetime����4
if (value.equals(new Integer(1)))
resultID = 4;
else
resultID = 11;
setDispFormat(Integer.parseInt(value.toString()));
} else if (id.equals(FIELD_DEFVALUE))
{
setDefaultValue((String) value);
}
super.setPropertyValue(id, value);
}
/**
* @return LED_ICON of Date
*
*/
public Image getIconImage()
{
return LED_ICON;
}
public String getDateFormatPattern()
{
return dateFormatPattern;
}
public void setDateFormatPattern(String dateFormatPattern)
{
this.dateFormatPattern = dateFormatPattern;
}
/*
* ���� Javadoc��
* @see net.ms.designer.editors.componentdetail.models.Element#getField_Type()
*/
public String getField_Type()
{
return field_Type;
}
/*
* ���� Javadoc��
* @see net.ms.designer.editors.componentdetail.models.Element#getFieldTypeID()
*/
public int getFieldTypeID()
{
return super.getFieldTypeID();
}
public void setFieldTypeID()
{
super.setFieldTypeID(IEditorConstant.DATEFIELD_TYPE);
}
/**
*
* @return dispFormat
*/
public int getDispFormat()
{
return dispFormat;
}
/**
* @param dispFormat
* dispFormat to set
*/
public void setDispFormat(int dispFormat)
{
this.dispFormat = dispFormat;
}
/*
* ���� Javadoc��
* @see net.ms.designer.editors.componentdetail.models.Element#getFieldTypeLength()
*/
public int getFieldTypeLength()
{
return 23;
}
/*
* ���� Javadoc��
* @see net.ms.designer.editors.componentdetail.models.Element#getFieldTypeScale()
*/
public int getFieldTypeScale()
{
return 3;
}
/**
* @return return defaultValue
*/
public String getDefaultValue()
{
return defaultValue;
}
/**
* @param defaultValue
* defaultValue to set
*/
public void setDefaultValue(String defaultValue)
{
this.defaultValue = defaultValue;
this.firePropertyChange(DEFAULT_VALUE,null,defaultValue);
}
}