/**
* Դ�������ƣ�AddIndexComposite.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.database.ui
* ����˵����$desc
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.jres.clearinghouse.composite;
import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.jres.database.ui.viewer.IndexColumnEditingSupport;
import com.hundsun.ares.studio.jres.database.ui.viewer.IndexColumnLabelProvider;
import com.hundsun.ares.studio.jres.model.chouse.AddIndexModification;
import com.hundsun.ares.studio.jres.model.chouse.ChouseFactory;
import com.hundsun.ares.studio.jres.model.chouse.ChousePackage;
import com.hundsun.ares.studio.jres.model.chouse.Modification;
import com.hundsun.ares.studio.jres.model.database.DatabaseFactory;
import com.hundsun.ares.studio.jres.model.database.DatabasePackage;
import com.hundsun.ares.studio.jres.model.database.TableIndex;
import com.hundsun.ares.studio.jres.model.database.TableResourceData;
import com.hundsun.ares.studio.ui.editor.editingsupport.BooleanEditingSupport;
import com.hundsun.ares.studio.ui.editor.editingsupport.TextEditingSupport;
import com.hundsun.ares.studio.ui.editor.extend.CheckBoxColumnLabelProvider;
import com.hundsun.ares.studio.ui.editor.extend.ExtensibleModelUtils;
import com.hundsun.ares.studio.ui.editor.viewers.EObjectColumnLabelProvider;
/**
* ��������
* @author wangxh
*
*/
public class AddIndexComposite extends ModifyActionColumnComposite<TableIndex>{
/**
* ��������
* @param parent
* @param resource
* @param action
*/
public AddIndexComposite(Composite parent, TableResourceData tableData, IARESResource resource,
Modification action) {
super(parent, tableData, resource, action);
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.ui.editors.history.component.ModifyActionColumnComposite#getEReference()
*/
@Override
protected EReference getEReference() {
return ChousePackage.Literals.ADD_INDEX_MODIFICATION__INDEXS;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.ui.editors.history.component.ModifyActionColumnComposite#creatBlankItem()
*/
@Override
protected TableIndex creatBlankItem() {
return DatabaseFactory.eINSTANCE.createTableIndex();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.ui.editors.history.component.ModifyActionColumnComposite#getActionItems(com.hundsun.ares.studio.jres.model.database.Modification)
*/
@Override
protected EList<TableIndex> getActionItems(Modification modification) {
if(action instanceof AddIndexModification){
return ((AddIndexModification)action).getIndexs();
}
return new BasicEList<TableIndex>();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.ui.editors.history.component.ModifyActionColumnComposite#creatColumnComposite(org.eclipse.jface.viewers.TreeViewer, com.hundsun.ares.studio.core.IARESResource)
*/
@Override
protected void creatColumnComposite(TreeViewer treeViewer,
IARESResource resource) {
// ���
{
EAttribute attribute = DatabasePackage.Literals.TABLE_INDEX__MARK;
TreeViewerColumn tvColumn = new TreeViewerColumn(treeViewer, SWT.LEFT);
tvColumn.getColumn().setWidth(100);
tvColumn.getColumn().setText("���");
EObjectColumnLabelProvider provider = new EObjectColumnLabelProvider(attribute);
tvColumn.setLabelProvider(provider);
tvColumn.setEditingSupport(new TextEditingSupport(treeViewer, attribute));
}
// ������
{
EAttribute attribute = DatabasePackage.Literals.TABLE_INDEX__NAME;
TreeViewerColumn tvColumn = new TreeViewerColumn(treeViewer, SWT.LEFT);
tvColumn.getColumn().setWidth(100);
tvColumn.getColumn().setText("������");
EObjectColumnLabelProvider provider = new EObjectColumnLabelProvider(attribute);
tvColumn.setLabelProvider(provider);
tvColumn.setEditingSupport(new TextEditingSupport(treeViewer, attribute));
}
// // �����ֶ��б�
{
EStructuralFeature feature = DatabasePackage.Literals.TABLE_INDEX__COLUMNS;
TreeViewerColumn tvColumn = new TreeViewerColumn(treeViewer, SWT.LEFT);
tvColumn.getColumn().setWidth(100);
tvColumn.getColumn().setText("�����ֶ��б�");
IndexColumnLabelProvider provider = new IndexColumnLabelProvider(feature);
tvColumn.setLabelProvider(provider);
tvColumn.setEditingSupport(new IndexColumnEditingSupport(treeViewer,feature,resource));
}
// �Ƿ�Ψһ
{
EAttribute attribute = DatabasePackage.Literals.TABLE_INDEX__UNIQUE;
TreeViewerColumn tvColumn = new TreeViewerColumn(treeViewer, SWT.LEFT);
tvColumn.getColumn().setWidth(100);
tvColumn.getColumn().setText("�Ƿ�Ψһ");
CheckBoxColumnLabelProvider provider = new CheckBoxColumnLabelProvider(attribute , resource);
tvColumn.setLabelProvider(provider);
tvColumn.setEditingSupport(new BooleanEditingSupport(treeViewer, attribute));
}
//�۴���
{
EAttribute attribute = DatabasePackage.Literals.TABLE_INDEX__CLUSTER;
final TreeViewerColumn tvColumn = new TreeViewerColumn(treeViewer, SWT.LEFT);
tvColumn.getColumn().setWidth(80);
tvColumn.getColumn().setText("�۴���");
CheckBoxColumnLabelProvider provider = new CheckBoxColumnLabelProvider(attribute , resource);
tvColumn.setLabelProvider(provider);
tvColumn.setEditingSupport(new BooleanEditingSupport(treeViewer, attribute));
tvColumn.getColumn().setMoveable(true);
}
// ��չ��Ϣ
{
ExtensibleModelUtils.createExtensibleModelTreeViewerColumns(
treeViewer, resource, DatabasePackage.Literals.TABLE_INDEX, null);
}
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.ui.editors.history.component.ModifyActionComposite#initAction(com.hundsun.ares.studio.jres.model.database.Modification)
*/
@Override
protected void initAction(Modification modification) {
if(modification != null && modification instanceof AddIndexModification){
action = modification;
}
else{
action = ChouseFactory.eINSTANCE.createAddIndexModification();
}
}
}