/** * <p>Copyright: Copyright (c) 2013</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.procedure.ui.editor.page; import org.eclipse.emf.ecore.EReference; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.layout.GridLayoutFactory; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.Section; import org.eclipse.ui.forms.widgets.TableWrapData; import com.hundsun.ares.studio.biz.ui.block.InputParameterBlock; import com.hundsun.ares.studio.procdure.ProcdurePackage; import com.hundsun.ares.studio.procedure.ui.editor.page.block.RelatedInfoBlock; import com.hundsun.ares.studio.ui.editor.EMFFormEditor; import com.hundsun.ares.studio.ui.editor.blocks.DataBindingFormPage; import com.hundsun.ares.studio.ui.editor.blocks.FormWidgetUtils; import com.hundsun.ares.studio.ui.util.FormLayoutFactory; /** * @author qinyuan * */ public class ProcedureRelatedInfoPage extends DataBindingFormPage{ private RelatedInfoBlock relatedTableInfoBlock; private RelatedInfoBlock relatedBasicDataInfoBlock; /** * @param editor * @param id * @param title */ public ProcedureRelatedInfoPage(EMFFormEditor editor, String id, String title) { super(editor, id, title); } /* (non-Javadoc) * @see com.hundsun.ares.studio.ui.editor.blocks.DataBindingFormPage#doDataBingingOnControls() */ @Override protected void doDataBingingOnControls() { } /* (non-Javadoc) * @see com.hundsun.ares.studio.ui.editor.EMFFormPage#doCreateFormContent(org.eclipse.ui.forms.IManagedForm) */ @Override protected void doCreateFormContent(IManagedForm managedForm) { Composite composite = managedForm.getForm().getBody(); FormToolkit toolkit = managedForm.getToolkit(); managedForm.getForm().setText(getTitle()); toolkit.decorateFormHeading(managedForm.getForm().getForm()); final SashForm sf = new SashForm(composite, SWT.VERTICAL); TableWrapData twd = new TableWrapData(TableWrapData.FILL_GRAB); twd.heightHint = 650; sf.setLayoutData(twd); sf.setLayout(FormLayoutFactory.createClearTableWrapLayout(false, 1)); final Section input = createRelatedTableInfoSection(sf, toolkit); final Section output = createRelatedBasicDataInfoSection(sf, toolkit); composite.setLayout(FormLayoutFactory.createClearTableWrapLayout(false, 1)); composite.getParent().layout(); } protected Section createRelatedTableInfoSection(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()); // �б� relatedTableInfoBlock = new RelatedInfoBlock(ProcdurePackage.Literals.PROCEDURE__RELATED_TABLE_INFO, getEditingDomain(), getEditor().getARESResource(), getProblemPool()); relatedTableInfoBlock.setEditableControl(getEditableControl()); relatedTableInfoBlock.createControl(block, toolkit); getEditor().getActionBarContributor().addGlobalActionHandlerProvider(relatedTableInfoBlock); addPropertyListener(relatedTableInfoBlock); getEditingDomain().getCommandStack().addCommandStackListener(relatedTableInfoBlock); section.setClient(content); return section; } protected Section createRelatedBasicDataInfoSection(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()); // �б� relatedBasicDataInfoBlock = new RelatedInfoBlock(ProcdurePackage.Literals.PROCEDURE__RELATED_BASIC_DATA_INFO, getEditingDomain(), getEditor().getARESResource(), getProblemPool()); relatedBasicDataInfoBlock.setEditableControl(getEditableControl()); relatedBasicDataInfoBlock.createControl(block, toolkit); getEditor().getActionBarContributor().addGlobalActionHandlerProvider(relatedBasicDataInfoBlock); addPropertyListener(relatedBasicDataInfoBlock); getEditingDomain().getCommandStack().addCommandStackListener(relatedBasicDataInfoBlock); section.setClient(content); return section; } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.pages.DataBindingFormPage#infoChange() */ @Override public void infoChange() { if ( relatedTableInfoBlock != null ) { relatedTableInfoBlock.setInput(getInfo()); } if ( relatedBasicDataInfoBlock != null ) { relatedBasicDataInfoBlock.setInput(getInfo()); } super.infoChange(); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.pages.DataBindingFormPage#dispose() */ @Override public void dispose() { removePropertyListener(relatedTableInfoBlock); getEditingDomain().getCommandStack().removeCommandStackListener(relatedTableInfoBlock); removePropertyListener(relatedBasicDataInfoBlock); getEditingDomain().getCommandStack().removeCommandStackListener(relatedBasicDataInfoBlock); super.dispose(); } }