package com.hundsun.ares.studio.biz.ui.block; import org.apache.commons.lang.StringUtils; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.action.ToolBarManager; import org.eclipse.jface.viewers.IContentProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.TreeViewerColumn; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.widgets.FormToolkit; import com.hundsun.ares.studio.biz.BizPackage; import com.hundsun.ares.studio.biz.ParamType; import com.hundsun.ares.studio.biz.core.BizUtil; import com.hundsun.ares.studio.biz.provider.ParameterColumnLabelProvider; import com.hundsun.ares.studio.biz.ui.BizUIConstants; import com.hundsun.ares.studio.biz.ui.StdObjContentPorposalHelper; import com.hundsun.ares.studio.biz.ui.action.AddParameterAction; import com.hundsun.ares.studio.biz.ui.action.AddParmaActionGroup; import com.hundsun.ares.studio.biz.ui.action.AddToStdFieldAction; import com.hundsun.ares.studio.biz.ui.action.IBizActionIDConstants; import com.hundsun.ares.studio.biz.ui.action.ParamLinkOpenObjectAction; import com.hundsun.ares.studio.biz.ui.action.ParameterPasteAction; import com.hundsun.ares.studio.core.ARESModelException; import com.hundsun.ares.studio.core.IARESProject; import com.hundsun.ares.studio.core.IARESProjectProperty; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.jres.metadata.constant.IMetadataRefType; import com.hundsun.ares.studio.jres.metadata.ui.Language; import com.hundsun.ares.studio.jres.metadata.ui.LanguageRegister; import com.hundsun.ares.studio.jres.metadata.ui.editors.editingsupport.MetadataContentProposalHelperWipeOffRepeatStd; import com.hundsun.ares.studio.jres.metadata.ui.editors.editingsupport.MetadataContentProposalProvider; import com.hundsun.ares.studio.jres.model.metadata.provider.LongTextEditingSupport; import com.hundsun.ares.studio.jres.model.metadata.util.MetadataServiceProvider; import com.hundsun.ares.studio.ui.assist.CompositeProposalHelper; import com.hundsun.ares.studio.ui.editor.IDiagnosticProvider; import com.hundsun.ares.studio.ui.editor.actions.ColumnViewerCopyAction; import com.hundsun.ares.studio.ui.editor.actions.ColumnViewerDeleteAction; import com.hundsun.ares.studio.ui.editor.actions.ColumnViewerInsertAction; import com.hundsun.ares.studio.ui.editor.actions.ColumnViewerMoveBottomAction; import com.hundsun.ares.studio.ui.editor.actions.ColumnViewerMoveDownAction; import com.hundsun.ares.studio.ui.editor.actions.ColumnViewerMoveTopAction; import com.hundsun.ares.studio.ui.editor.actions.ColumnViewerMoveUpAction; import com.hundsun.ares.studio.ui.editor.actions.ColumnViewerPasteAction; import com.hundsun.ares.studio.ui.editor.actions.CopyCellAction; import com.hundsun.ares.studio.ui.editor.actions.CopyColumnAction; import com.hundsun.ares.studio.ui.editor.actions.IActionIDConstant; import com.hundsun.ares.studio.ui.editor.blocks.TreeViewerBlock; import com.hundsun.ares.studio.ui.editor.editable.ActionEditableUnit; import com.hundsun.ares.studio.ui.editor.editingsupport.EnumEditingSupport; import com.hundsun.ares.studio.ui.editor.editingsupport.JresTextEditingSupportWithContentAssist; import com.hundsun.ares.studio.ui.editor.editingsupport.TextEditingSupport; import com.hundsun.ares.studio.ui.editor.extend.ExtensibleModelColumnViewerProblemView; 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.util.ARESUIUtil; import com.hundsun.ares.studio.ui.validate.IProblemPool; /** * ���������Block * @author sundl * */ public abstract class ParameterViewerBlock extends TreeViewerBlock{ /** Ĭ����������Action��ID�б�������ӱ�׼�ֶβ�������ӷDZ�׼�ֶβ�������Ӷ��������... * Ĭ��ȫ������ */ public static final String[] DEFAULT_ADD_ACTION_IDS = new String[] {IBizActionIDConstants.CV_ADD, IBizActionIDConstants.ADD_NON_STD_FIELD_PARME, IBizActionIDConstants.ADD_OBJECT_PARAM, IBizActionIDConstants.ADD_PARAM_GROUP }; // ��־λ���壬����ȷ���Ƿ�Ҫ������Ӧ���� /** ���á���־λ���� */ public static final int COLUMN_FLAG = 1 << 1; /** ���� */ public static final int COLUMN_ID = 1 << 2; /** ������ */ public static final int COLUMN_CHINESE_NAME = 1 << 3; /** ҵ���������� */ public static final int COLUMN_BIZ_TYPE = 1 << 4; /** ��ʵ�������� */ public static final int COLUMN_REAL_TYPE = 1 << 5; /** ���� */ public static final int COLUMN_MULTIPLICITY = 1 << 6; /** Ĭ��ֵ */ public static final int COLUMN_DEFAULT_VALUE = 1 << 7; /** ˵�� */ public static final int COLUMN_DESCRIPTION = 1 << 8; /** ��ע */ public static final int COLUMN_COMMENTS = 1 << 9; /** Ĭ����ȫ���ж����� */ public static final int DEFAULT_COLUMNS_STYLE = COLUMN_FLAG | COLUMN_ID | COLUMN_CHINESE_NAME | COLUMN_BIZ_TYPE | COLUMN_REAL_TYPE | COLUMN_MULTIPLICITY | COLUMN_DEFAULT_VALUE | COLUMN_DESCRIPTION | COLUMN_COMMENTS; // �༭��Parameter��Ӧ������ĸ����ԣ� // ���������������������Ӧ��������������Reference������Ƕ������ԣ����Ƕ����������Reference. protected EReference reference; protected AddParameterAction addAction; protected AddParameterAction addObjParamAction; protected AddParameterAction addNonStdFieldParamAction; protected AddParameterAction addParameterGroupAction; protected String[] addActionIds = DEFAULT_ADD_ACTION_IDS; protected ColumnViewerInsertAction insertAction; protected ColumnViewerMoveUpAction moveUpAction; protected ColumnViewerMoveDownAction moveDownAction; protected ColumnViewerMoveTopAction moveTopAction; protected ColumnViewerMoveBottomAction moveBottomAction; protected ColumnViewerPasteAction pasteAction; private String dataType = MetadataServiceProvider.C_TYPE; private int columnsStyle = DEFAULT_COLUMNS_STYLE; /** * ����һ���༭Parameter�б��Block * @param reference �༭��Parameter�б��Ӧ���ĸ�EMF���Ե�ERefence����; * @param editingDomain EditingDomain * @param resource AresResource * @param problemPool */ public ParameterViewerBlock(EReference reference, EditingDomain editingDomain, IARESResource resource, IProblemPool problemPool) { super(); this.reference = reference; this.editingDomain = editingDomain; this.resource = resource; this.problemPool = problemPool; } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerBlock#getID() */ @Override protected String getID() { return getClass().getName(); } @Override protected Point getViewerPreferredSize() { return new Point(100, 200); } /** * @return the dataType */ public String getDataType() { // ���ȼ����Ŀ�����е����ã����û�����þͲ���Ĭ��ֵ IARESProjectProperty projectPro; try { projectPro = resource.getARESProject().getProjectProperty(); if (projectPro != null) { String langname = projectPro.getString(BizUIConstants.REAL_TYPE_TO_DISPLAY); Language lang = LanguageRegister.getInstance().getLanguageByName(langname); if (lang != null) return lang.getId(); } } catch (ARESModelException e) { e.printStackTrace(); } return dataType; } /** * @param dataType the dataType to set */ public void setDataType(String dataType) { this.dataType = dataType; } /** * ����������Щ�еı�־λ���������Ŀǰֻ���ڴ�������֮ǰ���á� * @param style */ public void setColumnsStyle(int style) { this.columnsStyle = style; } /** * @param problemPool the problemPool to set */ public void setProblemPool(IProblemPool problemPool) { this.problemPool = problemPool; } /** * @return the reference */ public EReference getReference() { return reference; } /** * @param reference the reference to set */ public void setReference(EReference reference) { this.reference = reference; } /** * ͨ������������ƿ��������Щ���͵IJ��� * @param ids */ public void setAddActionIds(String[] ids) { this.addActionIds = ids; } @Override protected TreeViewer doCreateColumnViewer(Composite parent, FormToolkit toolkit) { final TreeViewer viewer = super.doCreateColumnViewer(parent, toolkit); if (resource != null) { ParamLinkOpenObjectAction action = new ParamLinkOpenObjectAction(resource.getARESProject()); ARESUIUtil.addLinkSupport(viewer.getTree(), action); } return viewer; } @Override protected IContentProvider getColumnViewerContentProvider() { return new ParameterConentProvider(this.reference, this.resource.getARESProject()); } @Override protected EStructuralFeature getHeadColumnFeature() { return BizPackage.Literals.PARAMETER__ID; } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerBlock#createColumns(org.eclipse.jface.viewers.ColumnViewer) */ @Override protected void createColumns(TreeViewer viewer) { IARESProject project = resource.getARESProject(); EObjectColumnViewerProblemView problemView = new EObjectColumnViewerProblemView(viewer); // ������չ�� EObjectColumnViewerProblemView exProblemView = new ExtensibleModelColumnViewerProblemView(viewer); // ��־λ, "������", "������", "����", "java����", "��׼�ֶ�", "ֵ", "����" // 80, 100, 100, 100, 100, 100, 100, 120 if ((columnsStyle & COLUMN_FLAG) != 0) { createFlagsColumn(viewer, project, problemView); } // ID ���� if ((columnsStyle & COLUMN_ID) != 0) { createParamNameColumn(viewer, project, problemView); } // ������ if ((columnsStyle & COLUMN_CHINESE_NAME) != 0) { createChineseNameColumn(viewer, project, problemView); } // ���� if ((columnsStyle & COLUMN_BIZ_TYPE) != 0) { createBizTypeColumn(viewer, project, problemView); } // "��ʵ����" if ((columnsStyle & COLUMN_REAL_TYPE) != 0) { createRealTypeColumn(viewer, project, problemView); } // ���� if ((columnsStyle & COLUMN_MULTIPLICITY) != 0) { createMultiplicityColumn(project, viewer, problemView); } // "Ĭ��ֵ" if ((columnsStyle & COLUMN_DEFAULT_VALUE) != 0) { createColumnDefaultValue(project, viewer, exProblemView); } // "˵��" if ((columnsStyle & COLUMN_DESCRIPTION) != 0) { createDescriptionColumn(viewer, project, problemView); } // "��ע" if ((columnsStyle & COLUMN_COMMENTS) != 0) { createCommentColumn(viewer, project); } // ��չ��Ϣ ExtensibleModelUtils.createExtensibleModelTreeViewerColumns( viewer, resource, BizPackage.Literals.PARAMETER, exProblemView); if (this.problemPool != null) { this.problemPool.addView(problemView); this.problemPool.addView(exProblemView); } } /** * ��������ע���еķ��� * @param viewer * @param project */ protected void createCommentColumn(TreeViewer viewer, IARESProject project) { // ���������� EAttribute attribute = BizPackage.Literals.PARAMETER__COMMENTS; // ��������� TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT); column.getColumn().setText("��ע"); column.getColumn().setWidth(120); column.getColumn().setMoveable(true); // ���ñ�ǩ�ṩ�� EObjectColumnLabelProvider provider = new ParameterColumnLabelProvider(resource,attribute){ @Override public String getToolTipText(Object element) { String text = super.getToolTipText(element); if(StringUtils.isBlank(text)){ return getText(element); } return text; } }; column.setLabelProvider(provider); // ���ñ༭֧�� TextEditingSupport es = new LongTextEditingSupport(viewer, attribute); es.setDecorator(new ParameterDefineEditingSupportDecorator(project, attribute)); column.setEditingSupport(es); } /** * �������������еķ��� * @param viewer * @param project * @param problemView */ protected void createDescriptionColumn(TreeViewer viewer, IARESProject project, EObjectColumnViewerProblemView problemView) { // ���������� EAttribute attribute = BizPackage.Literals.PARAMETER__DESCRIPTION; // ��������� TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT); column.getColumn().setText("����"); column.getColumn().setWidth(120); column.getColumn().setMoveable(true); // ���ñ�ǩ�ṩ�� EObjectColumnLabelProvider provider = new ParameterColumnLabelProvider(resource,attribute){ @Override public String getToolTipText(Object element) { String text = super.getToolTipText(element); if(StringUtils.isBlank(text)){ return getText(element); } return text; } }; provider.setDiagnosticProvider(problemView); column.setLabelProvider(provider); // ���ñ༭֧�� TextEditingSupport es = new TextEditingSupport(viewer, attribute); es.setDecorator(new ParameterDefineEditingSupportDecorator(project, attribute)); column.setEditingSupport(es); } /** * �������������͡�������ʵ������ * @param viewer * @param project * @param problemView */ protected void createRealTypeColumn(TreeViewer viewer, IARESProject project, EObjectColumnViewerProblemView problemView) { // ���������� EAttribute attribute = BizPackage.Literals.PARAMETER__REAL_TYPE; // ��������� TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT); column.getColumn().setText("��������"); column.getColumn().setWidth(100); column.getColumn().setMoveable(true); // ���ñ�ǩ�ṩ�� ParameterColumnLabelProvider provider = new ParameterColumnLabelProvider(resource,attribute); provider.setDataType(getDataType()); provider.setDiagnosticProvider(problemView); column.setLabelProvider(provider); // ���ñ༭֧�� TextEditingSupport es = new TextEditingSupport(viewer, attribute); es.setDecorator(new ParameterDefineEditingSupportDecorator(project, attribute)); column.setEditingSupport(es); } /** * ����ҵ�������� * @param viewer * @param project * @param problemView */ protected void createBizTypeColumn(TreeViewer viewer, IARESProject project, EObjectColumnViewerProblemView problemView) { // ���������� EAttribute attribute = BizPackage.Literals.PARAMETER__TYPE; // ��������� TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT); column.getColumn().setText("ҵ������"); column.getColumn().setWidth(100); column.getColumn().setMoveable(true); // ���ñ�ǩ�ṩ�� EObjectColumnLabelProvider provider = new ParameterColumnLabelProvider(resource,attribute); provider.setDiagnosticProvider(problemView); column.setLabelProvider(provider); ParameDataTypeContentProposalProvider proposalProvider = new ParameDataTypeContentProposalProvider(resource.getARESProject()); JresTextEditingSupportWithContentAssist es = new JresTextEditingSupportWithContentAssist( viewer, attribute, proposalProvider); es.setDecorator(new ParameterDefineEditingSupportDecorator(project, attribute)); column.setEditingSupport(es); } /** * ���������������� * @param viewer * @param project * @param problemView */ protected void createChineseNameColumn(TreeViewer viewer, IARESProject project, EObjectColumnViewerProblemView problemView) { // ���������� EAttribute attribute = BizPackage.Literals.PARAMETER__NAME; // ��������� TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT); column.getColumn().setText("������"); column.getColumn().setWidth(100); column.getColumn().setMoveable(true); // ���ñ�ǩ�ṩ�� EObjectColumnLabelProvider provider = new ParameterColumnLabelProvider(resource,attribute){ @Override public String getText(Object element) { return super.getText(element); } }; provider.setDiagnosticProvider(problemView); column.setLabelProvider(provider); // ���ñ༭֧�� TextEditingSupport es = new TextEditingSupport(viewer, attribute); es.setDecorator(new ParameterDefineEditingSupportDecorator(project, attribute)); column.setEditingSupport(es); } /** * @param viewer * @param project * @param problemView */ protected void createParamNameColumn(TreeViewer viewer, IARESProject project, EObjectColumnViewerProblemView problemView) { // ���������� EAttribute attribute = BizPackage.Literals.PARAMETER__ID; // ��������� TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT); column.getColumn().setText("������"); column.getColumn().setWidth(100); column.getColumn().setMoveable(true); // ���ñ�ǩ�ṩ�� EObjectColumnLabelProvider provider = new ParameterColumnLabelProvider(resource,attribute); provider.setDiagnosticProvider(problemView); column.setLabelProvider(provider); // ���ñ༭2֧�� MetadataContentProposalHelperWipeOffRepeatStd helper1 = new MetadataContentProposalHelperWipeOffRepeatStd(resource.getARESProject()); StdObjContentPorposalHelper heler2 = new StdObjContentPorposalHelper(); CompositeProposalHelper helper = new CompositeProposalHelper(heler2, helper1); ParamIdContentProposalProvider proposalProvider = new ParamIdContentProposalProvider(helper, resource.getARESProject()); // 3. ����EditingSupport, JresTextEditingSupportWithContentAssist es = new JresTextEditingSupportWithContentAssist(viewer, attribute,proposalProvider); es.setDecorator(new ParameterDefineEditingSupportDecorator(project, attribute)); column.setEditingSupport(es); } /** * @param viewer * @param project * @param problemView */ protected void createFlagsColumn(TreeViewer viewer, IARESProject project, EObjectColumnViewerProblemView problemView) { // ���������� EAttribute attribute = BizPackage.Literals.PARAMETER__FLAGS; // ��������� TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT); column.getColumn().setText("��־λ"); column.getColumn().setWidth(70); column.getColumn().setMoveable(true); // ���ñ�ǩ�ṩ�� EObjectColumnLabelProvider provider = new ParameterColumnLabelProvider(resource,attribute); provider.setDiagnosticProvider(problemView); column.setLabelProvider(provider); // 3. ����EditingSupport, // ���ñ༭֧�� TextEditingSupport es = new TextEditingSupport(viewer, attribute); es.setDecorator(new ParameterDefineEditingSupportDecorator(project, attribute)); column.setEditingSupport(es); } /** * ������������ϵ���� */ protected void createMultiplicityColumn(IARESProject project, TreeViewer viewer, IDiagnosticProvider problemView) { // CRES ����ʾ���� if (!BizUtil.hasCRESNature(project.getProject())) { EAttribute attribute = BizPackage.Literals.PARAMETER__MULTIPLICITY; // ��������� TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT); column.getColumn().setText("����"); column.getColumn().setWidth(50); column.getColumn().setMoveable(true); // ���ñ�ǩ�ṩ�� EObjectColumnLabelProvider provider = new ParameterColumnLabelProvider(resource,attribute); provider.setDiagnosticProvider(problemView); column.setLabelProvider(provider); // ���ñ༭֧�� EnumEditingSupport es = new EnumEditingSupport(viewer, attribute); es.setDecorator(new ParameterDefineEditingSupportDecorator(project, attribute)); column.setEditingSupport(es); } } /** * ������Ĭ��ֵ���� */ protected void createColumnDefaultValue(IARESProject project, TreeViewer viewer, IDiagnosticProvider problemView) { // ���������� EAttribute attribute = BizPackage.Literals.PARAMETER__DEFAULT_VALUE; // ��������� TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT); column.getColumn().setText("Ĭ��ֵ"); column.getColumn().setWidth(100); column.getColumn().setMoveable(true); // ���ñ�ǩ�ṩ�� EObjectColumnLabelProvider provider = new ParameterColumnLabelProvider(resource,attribute); provider.setDiagnosticProvider(problemView); column.setLabelProvider(provider); // ���ñ༭֧�� MetadataContentProposalHelperWipeOffRepeatStd helper = new MetadataContentProposalHelperWipeOffRepeatStd(resource.getARESProject()); MetadataContentProposalProvider proposalProvider = new MetadataContentProposalProvider(helper, IMetadataRefType.DefValue, resource.getARESProject()); JresTextEditingSupportWithContentAssist es = new JresTextEditingSupportWithContentAssist( viewer, attribute, proposalProvider); es.setDecorator(new ParameterDefineEditingSupportDecorator(project, attribute)); column.setEditingSupport(es); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerBlock#createActions() */ @Override protected void createActions() { AddToStdFieldAction addStdFieldAction = new AddToStdFieldAction(this.resource.getARESProject(), getColumnViewer(), editingDomain); getActionRegistry().registerAction(addStdFieldAction); getSelectionActions().add(addStdFieldAction.getId()); addAction = new AddParameterAction( getColumnViewer(), editingDomain, IActionIDConstant.CV_ADD, "���ӱ�׼�ֶβ���", null, this.reference, getParameterEClass(),//BizPackage.Literals.PARAMETER, ParamType.STD_FIELD ); getActionRegistry().registerAction(addAction); getSelectionActions().add(addAction.getId()); addObjParamAction = new AddParameterAction( getColumnViewer(), this.editingDomain, IBizActionIDConstants.ADD_OBJECT_PARAM, "���Ӷ������Ͳ���", null, this.reference, getParameterEClass(),//BizPackage.Literals.PARAMETER, ParamType.OBJECT ); getActionRegistry().registerAction(addObjParamAction); getSelectionActions().add(addObjParamAction.getId()); addParameterGroupAction = new AddParameterAction( getColumnViewer(), this.editingDomain, IBizActionIDConstants.ADD_PARAM_GROUP, "���Ӳ�����", null, this.reference, getParameterEClass(),//BizPackage.Literals.PARAMETER, ParamType.PARAM_GROUP ); getActionRegistry().registerAction(addParameterGroupAction); getSelectionActions().add(addParameterGroupAction.getId()); addNonStdFieldParamAction = new AddParameterAction( getColumnViewer(), this.editingDomain, IBizActionIDConstants.ADD_NON_STD_FIELD_PARME, "���ӷDZ�׼�ֶβ���", null, this.reference, getParameterEClass(),//BizPackage.Literals.PARAMETER, ParamType.NON_STD_FIELD ); getActionRegistry().registerAction(addNonStdFieldParamAction); getSelectionActions().add(addNonStdFieldParamAction.getId()); IAction delAction = new ColumnViewerDeleteAction(getColumnViewer(), this.editingDomain); getActionRegistry().registerAction(delAction); getSelectionActions().add(delAction.getId()); moveUpAction = new ColumnViewerMoveUpAction(getColumnViewer(), this.editingDomain, null, this.reference); getActionRegistry().registerAction(moveUpAction); getSelectionActions().add(moveUpAction.getId()); getStackActions().add(moveUpAction.getId()); moveTopAction = new ColumnViewerMoveTopAction(getColumnViewer(), this.editingDomain, null, this.reference); getActionRegistry().registerAction(moveTopAction); getSelectionActions().add(moveTopAction.getId()); getStackActions().add(moveTopAction.getId()); moveDownAction = new ColumnViewerMoveDownAction(getColumnViewer(), this.editingDomain, null, this.reference); getActionRegistry().registerAction(moveDownAction); getSelectionActions().add(moveDownAction.getId()); getStackActions().add(moveDownAction.getId()); insertAction = new ColumnViewerInsertAction( getColumnViewer(), this.editingDomain, this.getReference(), getParameterEClass()); getActionRegistry().registerAction(insertAction); getSelectionActions().add(insertAction.getId()); moveBottomAction = new ColumnViewerMoveBottomAction(getColumnViewer(), this.editingDomain, null, this.reference); getActionRegistry().registerAction(moveBottomAction); getSelectionActions().add(moveBottomAction.getId()); getStackActions().add(moveBottomAction.getId()); IAction copyAction = new ColumnViewerCopyAction(getColumnViewer()); getActionRegistry().registerAction(copyAction); getSelectionActions().add(copyAction.getId()); IAction copyCellAction = new CopyCellAction(getColumnViewer()); getActionRegistry().registerAction(copyCellAction); IAction copyColumnAction = new CopyColumnAction(getColumnViewer()); getActionRegistry().registerAction(copyColumnAction); pasteAction = createPasteAction(); getActionRegistry().registerAction(pasteAction); getClipboardActions().add(pasteAction.getId()); //ֻ������ getEditableControl().addEditableUnit(new ActionEditableUnit(addAction)); getEditableControl().addEditableUnit(new ActionEditableUnit(addNonStdFieldParamAction)); getEditableControl().addEditableUnit(new ActionEditableUnit(addObjParamAction)); getEditableControl().addEditableUnit(new ActionEditableUnit(addParameterGroupAction)); getEditableControl().addEditableUnit(new ActionEditableUnit(delAction)); getEditableControl().addEditableUnit(new ActionEditableUnit(moveTopAction)); getEditableControl().addEditableUnit(new ActionEditableUnit(moveUpAction)); getEditableControl().addEditableUnit(new ActionEditableUnit(moveDownAction)); getEditableControl().addEditableUnit(new ActionEditableUnit(insertAction)); getEditableControl().addEditableUnit(new ActionEditableUnit(moveBottomAction)); getEditableControl().addEditableUnit(new ActionEditableUnit(pasteAction)); } protected ColumnViewerPasteAction createPasteAction() { return new ParameterPasteAction(getColumnViewer(), this.editingDomain, null, this.reference); } protected EClass getParameterEClass(){ return BizPackage.Literals.PARAMETER; } @Override protected void createMenus(IMenuManager menuManager) { if (this.addActionIds != null) { for (String id : addActionIds) { IAction action = getActionRegistry().getAction(id); menuManager.add(action); } } IAction action = getActionRegistry().getAction(IActionIDConstant.CV_DELETE); menuManager.add(action); menuManager.add(new Separator()); action = getActionRegistry().getAction(IActionIDConstant.CV_COPY); menuManager.add(action); action = getActionRegistry().getAction(CopyCellAction.ID); menuManager.add(action); action = getActionRegistry().getAction(CopyColumnAction.ID); menuManager.add(action); action = getActionRegistry().getAction(IActionIDConstant.CV_PASTE); menuManager.add(action); menuManager.add(new Separator()); action = getActionRegistry().getAction(IActionIDConstant.CV_MOVE_TOP); menuManager.add(action); action = getActionRegistry().getAction(IActionIDConstant.CV_MOVE_UP); menuManager.add(action); action = getActionRegistry().getAction(IActionIDConstant.CV_MOVE_DOWN); menuManager.add(action); action = getActionRegistry().getAction(IActionIDConstant.CV_MOVE_BOTTOM); menuManager.add(action); action = getActionRegistry().getAction(IActionIDConstant.CV_INSERT); menuManager.add(action); menuManager.add(new Separator()); // FIXME ��ӵ���׼�ֶι�����ֲ��ʱδ��� //IAction addStdFieldAction = getActionRegistry().getAction(IBizActionIDConstants.ADD_TO_STD_FIELD); //menuManager.add(addStdFieldAction); } @Override protected void createToolbarItems(ToolBarManager buttonManager) { AddParmaActionGroup addParamActionGroup = new AddParmaActionGroup(getActionRegistry(), this.addActionIds); buttonManager.add(addParamActionGroup); // ������ť�б� IAction action = getActionRegistry().getAction(IActionIDConstant.CV_INSERT); buttonManager.add(action); action = getActionRegistry().getAction(IActionIDConstant.CV_DELETE); buttonManager.add(action); action = getActionRegistry().getAction(IActionIDConstant.CV_MOVE_TOP); buttonManager.add(action); action = getActionRegistry().getAction(IActionIDConstant.CV_MOVE_UP); buttonManager.add(action); action = getActionRegistry().getAction(IActionIDConstant.CV_MOVE_DOWN); buttonManager.add(action); action = getActionRegistry().getAction(IActionIDConstant.CV_MOVE_BOTTOM); buttonManager.add(action); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerBlock#setInput(java.lang.Object) */ @Override public void setInput(Object input) { addAction.setDefaultOwner((EObject) input); addObjParamAction.setDefaultOwner((EObject) input); addParameterGroupAction.setDefaultOwner((EObject) input); addNonStdFieldParamAction.setDefaultOwner((EObject) input); insertAction.setOwner((EObject) input); moveDownAction.setOwner((EObject) input); moveUpAction.setOwner((EObject) input); moveBottomAction.setOwner((EObject) input); moveTopAction.setOwner((EObject) input); pasteAction.setOwner((EObject) input); super.setInput(input); } }