/** * Դ�������ƣ�ServiceInterfacePage.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�ARES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.service.ui * ����˵����$desc * ����ĵ��� * ���ߣ�yanwj06282 */ package com.hundsun.ares.studio.jres.service.ui.page; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.layout.GridLayoutFactory; import org.eclipse.jface.viewers.TreeViewerColumn; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.Section; import com.hundsun.ares.studio.biz.BizPackage; import com.hundsun.ares.studio.biz.ui.block.InputParameterBlock; import com.hundsun.ares.studio.biz.ui.block.OutputParameterBlock; import com.hundsun.ares.studio.biz.ui.block.ParameterDefineEditingSupportDecorator; import com.hundsun.ares.studio.biz.ui.block.ServInterfaceParameterColLabProvider; import com.hundsun.ares.studio.biz.ui.editor.page.InterfacePage; import com.hundsun.ares.studio.jres.metadata.constant.IMetadataRefType; 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.ui.editor.EMFFormEditor; import com.hundsun.ares.studio.ui.editor.blocks.FormWidgetUtils; import com.hundsun.ares.studio.ui.editor.editingsupport.JresTextEditingSupportWithContentAssist; import com.hundsun.ares.studio.ui.editor.viewers.EObjectColumnLabelProvider; /** * @author yanwj06282 * */ public class ServiceInterfacePage extends InterfacePage { /** * @param interfaceFeature * @param editor * @param id * @param title */ public ServiceInterfacePage(EStructuralFeature interfaceFeature, EMFFormEditor editor, String id, String title) { super(interfaceFeature, editor, id, title); } /* (non-Javadoc) * @see com.hundsun.ares.studio.biz.ui.editor.page.InterfacePage#createInputSection(org.eclipse.swt.widgets.Composite, org.eclipse.ui.forms.widgets.FormToolkit) */ @Override protected Section createInputSection(Composite composite, FormToolkit toolkit) { Section section = toolkit.createSection(composite, FormWidgetUtils.getDefaultSectionStyles()); section.setText("�������"); Composite content = toolkit.createComposite(section); GridLayoutFactory.fillDefaults().applyTo(content); Composite block = toolkit.createComposite(content); GridDataFactory.fillDefaults().indent(0, 0).grab(true, true).applyTo(block); block.setLayout(new FillLayout()); // �б� inputParamBlock = new InputParameterBlock(getEditingDomain(), getEditor().getARESResource(), getProblemPool()){ protected void createColumnDefaultValue(com.hundsun.ares.studio.core.IARESProject project, org.eclipse.jface.viewers.TreeViewer viewer, com.hundsun.ares.studio.ui.editor.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 ServInterfaceParameterColLabProvider(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); } }; inputParamBlock.setEditableControl(getEditableControl()); inputParamBlock.setDataType(getDataType()); customizeInputParamBlock(); inputParamBlock.createControl(block, toolkit); getEditor().getActionBarContributor().addGlobalActionHandlerProvider(inputParamBlock); addPropertyListener(inputParamBlock); getEditingDomain().getCommandStack().addCommandStackListener(inputParamBlock); section.setClient(content); return section; } /* (non-Javadoc) * @see com.hundsun.ares.studio.biz.ui.editor.page.InterfacePage#createOuputSection(org.eclipse.swt.widgets.Composite, org.eclipse.ui.forms.widgets.FormToolkit) */ @Override protected Section createOuputSection(Composite composite, FormToolkit toolkit) { Section section = toolkit.createSection(composite, FormWidgetUtils.getDefaultSectionStyles()); section.setText("�������"); Composite client = toolkit.createComposite(section); GridLayoutFactory.fillDefaults().applyTo(client); Composite block = toolkit.createComposite(client); GridDataFactory.fillDefaults().indent(0, 0).grab(true, true).applyTo(block); block.setLayout(new FillLayout()); outputParamBlock = new OutputParameterBlock(getEditingDomain(), getEditor().getARESResource(), getProblemPool()){ protected void createColumnDefaultValue(com.hundsun.ares.studio.core.IARESProject project, org.eclipse.jface.viewers.TreeViewer viewer, com.hundsun.ares.studio.ui.editor.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 ServInterfaceParameterColLabProvider(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); } }; outputParamBlock.setEditableControl(getEditableControl()); outputParamBlock.setDataType(getDataType()); customizeOutputParamBlock(); outputParamBlock.createControl(block, toolkit); getEditor().getActionBarContributor().addGlobalActionHandlerProvider(outputParamBlock); addPropertyListener(outputParamBlock); getEditingDomain().getCommandStack().addCommandStackListener(outputParamBlock); section.setClient(client); return section; } }