/**
* Դ�������ƣ�TableColumnEditingSupportDecorator.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.database.ui
* ����˵����$desc
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.jres.database.ui.editors.blocks;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.jface.viewers.CellEditor;
import com.hundsun.ares.studio.core.IARESProject;
import com.hundsun.ares.studio.jres.model.database.ColumnType;
import com.hundsun.ares.studio.jres.model.database.DatabasePackage;
import com.hundsun.ares.studio.jres.model.database.TableColumn;
import com.hundsun.ares.studio.ui.editor.editingsupport.IEditingSupportDecorator;
/**
* @author sundl
*
*/
public class TableColumnEditingSupportDecorator implements IEditingSupportDecorator{
private IARESProject project;
private EAttribute attribute;
/**
* @param project
* @param attribute
*/
public TableColumnEditingSupportDecorator(IARESProject project, EAttribute attribute) {
super();
this.project = project;
this.attribute = attribute;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.ui.editor.editingsupport.IEditingSupportDecorator#decorateGetCellEditor(org.eclipse.jface.viewers.CellEditor, java.lang.Object)
*/
@Override
public CellEditor decorateGetCellEditor(CellEditor cellEditor, Object element) {
return cellEditor;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.ui.editor.editingsupport.IEditingSupportDecorator#decorateCanEdit(boolean, java.lang.Object)
*/
@Override
public boolean decorateCanEdit(boolean canEdit, Object element) {
if (element instanceof TableColumn) {
TableColumn c = (TableColumn) element;
// �DZ��ֶ��������Զ����Ա༭
if (c.getColumnType() == ColumnType.NON_STD_FIELD) {
return true;
} else if (c.getColumnType() == ColumnType.STD_FIELD) {
// ���ֶ�
if (attribute.equals(DatabasePackage.Literals.TABLE_COLUMN__CHINESE_NAME)
|| attribute.equals(DatabasePackage.Literals.TABLE_COLUMN__DATA_TYPE)
|| attribute.equals(DatabasePackage.Literals.TABLE_COLUMN__DESCRIPTION)) {
return false;
} else {
return true;
}
}
}
return false;
}
}