/**
* <p>Copyright: Copyright (c) 2012</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.jres.metadata.ui.block;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IActionBars;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.jres.metadata.ui.viewer.DictionaryItemListContentProvider;
import com.hundsun.ares.studio.jres.metadata.ui.viewer.MetadataDictionaryItimOfDictionaryTypeAttributeColumnLabelProvider;
import com.hundsun.ares.studio.jres.model.metadata.DictionaryList;
import com.hundsun.ares.studio.jres.model.metadata.MetadataPackage;
import com.hundsun.ares.studio.ui.editor.blocks.TableViewerBlock;
import com.hundsun.ares.studio.ui.editor.editingsupport.IEditingSupportDecorator;
import com.hundsun.ares.studio.ui.editor.editingsupport.TextEditingSupport;
import com.hundsun.ares.studio.ui.editor.extend.ExtensibleModelUtils;
import com.hundsun.ares.studio.ui.editor.viewers.EObjectColumnLabelProvider;
import com.hundsun.ares.studio.ui.editor.viewers.EObjectColumnViewerProblemView;
import com.hundsun.ares.studio.ui.validate.IProblemPool;
/**
* @author liaogc
*
*/
public class DictionaryItemListBlock extends TableViewerBlock {
/** �ֵ���Ŀ�Ƿ������ֵ���������ֵ���Ŀ */
private boolean detailColumnIsRef = false;
private EditingDomain editingDomain;
private IARESResource resource;
private IProblemPool problemPool;
private DictionaryList dictionaryList;
/**
* @param editingDomain
* @param resource
* @param problemPool
*/
public DictionaryItemListBlock(EditingDomain editingDomain,
IARESResource resource, DictionaryList dictionaryList,IProblemPool problemPool) {
super();
this.editingDomain = editingDomain;
this.resource = resource;
this.problemPool = problemPool;
this.dictionaryList = dictionaryList;
}
/**
* @return the editingDomain
*/
public EditingDomain getEditingDomain() {
return editingDomain;
}
/**
* @return the resource
*/
public IARESResource getARESResource() {
return resource;
}
/**
* @return the problemPool
*/
public IProblemPool getProblemPool() {
return problemPool;
}
/**
* @param detailColumnIsRef
* the detailColumnIsRef to set
*/
public void setDetailColumnIsRef(boolean detailColumnIsRef) {
this.detailColumnIsRef = detailColumnIsRef;
}
/*
* (non-Javadoc)
*
* @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerBlock#getID()
*/
@Override
protected String getID() {
return getClass().getName();
}
/*
* (non-Javadoc)
*
* @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerBlock#
* getColumnViewerContentProvider()
*/
@Override
protected IContentProvider getColumnViewerContentProvider() {
return new DictionaryItemListContentProvider(dictionaryList);
}
/*
* (non-Javadoc)
*
* @see
* com.hundsun.ares.studio.jres.ui.pages.ColumnViewerBlock#createMenus(org
* .eclipse.jface.action.IMenuManager)
*/
@Override
protected void createMenus(IMenuManager menuManager) {
menuManager.removeAll();
}
/*
* (non-Javadoc)
*
* @see
* com.hundsun.ares.studio.jres.ui.pages.ColumnViewerBlock#createColumns
* (org.eclipse.jface.viewers.ColumnViewer)
*/
@Override
protected void createColumns(TableViewer columnViewer) {
final TableViewer treeViewer = (TableViewer) columnViewer;
EObjectColumnViewerProblemView problemView = new EObjectColumnViewerProblemView(treeViewer);
DictionaryItemEditingSupportDecorator decorator = new DictionaryItemEditingSupportDecorator();
/** ID */
/*
* {
*
* TableViewerColumn column = new TableViewerColumn(treeViewer,
* SWT.LEFT); column.getColumn().setText("ID");
* column.getColumn().setWidth(120); EObjectColumnLabelProvider provider
* = new
* EObjectColumnLabelProvider(MetadataPackage.Literals.DICTIONARY_ITEM__NAME
* ){
*
* @Override public Color getBackground(Object element) {
* if(detailColumnIsRef){ return
* Display.getDefault().getSystemColor(SWT.COLOR_GRAY); } return
* super.getBackground(element); } };
* provider.setDiagnosticProvider(problemView);
* column.setLabelProvider(provider); TextEditingSupport tes = new
* TextEditingSupport(treeViewer,
* MetadataPackage.Literals.DICTIONARY_ITEM__NAME);
* tes.setDecorator(decorator); column.setEditingSupport(tes); }
*
*
*/
/** �ֵ���Ŀ */
{
TableViewerColumn column = new TableViewerColumn(treeViewer,
SWT.LEFT);
column.getColumn().setText("�ֵ���Ŀ");
column.getColumn().setWidth(150);
EObjectColumnLabelProvider provider = new MetadataDictionaryItimOfDictionaryTypeAttributeColumnLabelProvider(MetadataPackage.Literals.NAMED_ELEMENT__NAME)
{
@Override
public Color getBackground(Object element) {
if (detailColumnIsRef) {
return Display.getDefault().getSystemColor(
SWT.COLOR_GRAY);
}
return super.getBackground(element);
}
};
provider.setDiagnosticProvider(problemView);
column.setLabelProvider(provider);
column.getColumn().setMoveable(true);
}
/** ��Ŀ���� */
{
TableViewerColumn column = new TableViewerColumn(treeViewer,
SWT.LEFT);
column.getColumn().setText("��Ŀ����");
column.getColumn().setWidth(120);
EObjectColumnLabelProvider provider = new MetadataDictionaryItimOfDictionaryTypeAttributeColumnLabelProvider(MetadataPackage.Literals.NAMED_ELEMENT__CHINESE_NAME)
{
@Override
public Color getBackground(Object element) {
if (detailColumnIsRef) {
return Display.getDefault().getSystemColor(
SWT.COLOR_GRAY);
}
return super.getBackground(element);
}
};
provider.setDiagnosticProvider(problemView);
column.setLabelProvider(provider);
column.getColumn().setMoveable(true);
}
/** �ֵ��� */
{
TableViewerColumn column = new TableViewerColumn(treeViewer,
SWT.LEFT);
column.getColumn().setText("�ֵ�����");
column.getColumn().setWidth(120);
EObjectColumnLabelProvider provider = new EObjectColumnLabelProvider(
MetadataPackage.Literals.DICTIONARY_ITEM__VALUE) {
@Override
public Color getBackground(Object element) {
if (detailColumnIsRef) {
return Display.getDefault().getSystemColor(
SWT.COLOR_GRAY);
}
return super.getBackground(element);
}
};
provider.setDiagnosticProvider(problemView);
column.setLabelProvider(provider);
TextEditingSupport tes = new TextEditingSupport(treeViewer,
MetadataPackage.Literals.DICTIONARY_ITEM__VALUE);
tes.setDecorator(decorator);
column.setEditingSupport(tes);
column.getColumn().setMoveable(true);
}
/** �ֵ���˵�� */
{
TableViewerColumn column = new TableViewerColumn(treeViewer,
SWT.LEFT);
column.getColumn().setText("��������");
column.getColumn().setWidth(200);
EObjectColumnLabelProvider provider = new EObjectColumnLabelProvider(
MetadataPackage.Literals.DICTIONARY_ITEM__CHINESE_NAME) {
@Override
public Color getBackground(Object element) {
if (detailColumnIsRef) {
return Display.getDefault().getSystemColor(
SWT.COLOR_GRAY);
}
return super.getBackground(element);
}
};
provider.setDiagnosticProvider(problemView);
column.setLabelProvider(provider);
column.getColumn().setMoveable(true);
}
/** ����ID */
{
TableViewerColumn column = new TableViewerColumn(treeViewer,
SWT.LEFT);
column.getColumn().setText("�ֵ䳣��");
column.getColumn().setWidth(120);
EObjectColumnLabelProvider provider = new EObjectColumnLabelProvider(
MetadataPackage.Literals.DICTIONARY_ITEM__CONSTANT_NAME) {
@Override
public Color getBackground(Object element) {
if (detailColumnIsRef) {
return Display.getDefault().getSystemColor(
SWT.COLOR_GRAY);
}
return super.getBackground(element);
}
};
provider.setDiagnosticProvider(problemView);
column.setLabelProvider(provider);
column.getColumn().setMoveable(true);
}
/** ��ע */
{
TableViewerColumn column = new TableViewerColumn(treeViewer,
SWT.LEFT);
column.getColumn().setText("˵��");
column.getColumn().setWidth(200);
EObjectColumnLabelProvider provider = new EObjectColumnLabelProvider(
MetadataPackage.Literals.DICTIONARY_ITEM__DESCRIPTION) {
@Override
public Color getBackground(Object element) {
if (detailColumnIsRef) {
return Display.getDefault().getSystemColor(
SWT.COLOR_GRAY);
}
return super.getBackground(element);
}
};
provider.setDiagnosticProvider(problemView);
column.setLabelProvider(provider);
column.getColumn().setMoveable(true);
}
// ������չ��֧��
ExtensibleModelUtils.createExtensibleModelTableViewerColumns(
getColumnViewer(), getARESResource(),
MetadataPackage.Literals.DICTIONARY_ITEM, problemView,false);
// getEditableControl().addEditableUnit(
// new JresDefaultEditableUnit(columnViewer.getControl()));
getProblemPool().addView(problemView);
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerBlock#doShareGlobalActions(org.eclipse.ui.IActionBars)
*/
@Override
protected void doShareGlobalActions(IActionBars actionBars) {
// TODO Auto-generated method stub
//super.doShareGlobalActions(actionBars);
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerBlock#doClearGlobalActions(org.eclipse.ui.IActionBars)
*/
@Override
protected void doClearGlobalActions(IActionBars actionBars) {
// TODO Auto-generated method stub
//super.doClearGlobalActions(actionBars);
}
/*
* (non-Javadoc)
*
* @see
* com.hundsun.ares.studio.jres.ui.pages.ColumnViewerBlock#createButtons
* (com.hundsun.ares.studio.jres.ui.actions.ButtonGroupManager)
*/
@Override
protected void createToolbarItems(ToolBarManager manager) {
}
class DictionaryItemEditingSupportDecorator implements
IEditingSupportDecorator {
/*
* (non-Javadoc)
*
* @see
* com.hundsun.ares.studio.jres.ui.editingsupports.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.jres.ui.editingsupports.IEditingSupportDecorator
* #decorateCanEdit(boolean, java.lang.Object)
*/
@Override
public boolean decorateCanEdit(boolean canEdit, Object element) {
return false;
}
}
}