package de.urszeidler.shr5.runtime.ui.editor.pages; import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; import de.urszeidler.eclipse.shr5.util.AdapterFactoryUtil; import de.urszeidler.emf.commons.ui.util.EmfFormBuilder.ReferenceManager; import de.urszeidler.shr5.ecp.editor.actions.ActionM2TDialog; import de.urszeidler.shr5.ecp.editor.actions.ImportObjectAction; import de.urszeidler.shr5.ecp.editor.pages.AbstractShr5Page; import de.urszeidler.shr5.scripting.ScriptHistory; import de.urszeidler.shr5.scripting.ScriptingPackage; import de.urszeidler.shr5.scripting.Scripts; public class EObjectPage extends AbstractShr5Page<EObject> { private EObject object; private EditingDomain editingDomain; private DataBindingContext m_bindingContext; /** * Create the form page. * * @param id * @param title */ public EObjectPage(String id, String title) { super(id, title); } public EObjectPage(FormEditor editor, String id, String title, EObject object, EditingDomain editingDomain, ReferenceManager manager) { super(editor, id, title, manager); this.object = object; this.editingDomain = editingDomain; } /** * Create contents of the form. * * @param managedForm */ @Override protected void createFormContent(IManagedForm managedForm) { FormToolkit toolkit = managedForm.getToolkit(); ScrolledForm form = managedForm.getForm(); form.setText(AdapterFactoryUtil.getInstance().getLabelProvider().getText(object)); Composite body = form.getBody(); toolkit.decorateFormHeading(form.getForm()); toolkit.paintBordersFor(body); if (object instanceof ScriptHistory) { form.getToolBarManager().add(new ActionM2TDialog(form.getShell(), object)); } else if (object instanceof Scripts) { form.getToolBarManager().add(new ActionM2TDialog(form.getShell(), object)); form.getToolBarManager().add(new ImportObjectAction(form.getShell(),object)); }else{ addFillToolbar(form.getToolBarManager(), object, form.getShell()); } form.getToolBarManager().update(true); managedForm.getForm().getBody().setLayout(new GridLayout(1, false)); Composite composite = new Composite(managedForm.getForm().getBody(), SWT.NONE); composite.setLayout(new GridLayout(3, false)); composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); managedForm.getToolkit().adapt(composite); managedForm.getToolkit().paintBordersFor(composite); m_bindingContext = initDataBindings(); createFormBuilder(managedForm); DateEntryFactory dateEntryFactory = new DateEntryFactory(toolkit); ReadOnlyLinkEntry linkEntryFactory = new ReadOnlyLinkEntry(toolkit); if (object instanceof ScriptHistory) { emfFormBuilder.addTextEntry(ScriptingPackage.Literals.SCRIPT_HISTORY__CURRENT_DATE, composite,dateEntryFactory); emfFormBuilder.addTextEntry(ScriptingPackage.Literals.SCRIPT_HISTORY__CURRENT_PLACEMENT, composite,linkEntryFactory); emfFormBuilder.addTextEntry(ScriptingPackage.Literals.SCRIPT_HISTORY__WRITTEN_PROTOKOL, composite,createControllGridData(200)); }else if (object instanceof Scripts) { emfFormBuilder.addTextEntry(ScriptingPackage.Literals.SCRIPTS__NAME, composite); emfFormBuilder.addTextEntry(ScriptingPackage.Literals.SCRIPTS__STORIES, composite,createControllGridData(250)); } emfFormBuilder.buildinComposite(m_bindingContext, managedForm.getForm().getBody(), object); managedForm.reflow(true); } protected DataBindingContext initDataBindings() { DataBindingContext bindingContext = new DataBindingContext(); // return bindingContext; } @Override protected EditingDomain getEditingDomain() { return editingDomain; } }