package de.urszeidler.shr5.runtime.ui.editor.pages; import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.core.databinding.observable.value.IObservableValue; import org.eclipse.emf.databinding.EMFUpdateValueStrategy; import org.eclipse.emf.databinding.edit.EMFEditObservables; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.jface.databinding.swt.WidgetProperties; import org.eclipse.nebula.jface.cdatetime.CDateTimeObservableValue; import org.eclipse.nebula.widgets.cdatetime.CDT; import org.eclipse.nebula.widgets.cdatetime.CDateTime; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; 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 org.eclipse.ui.forms.widgets.Section; import org.eclipse.ui.forms.widgets.TableWrapData; import org.eclipse.ui.forms.widgets.TableWrapLayout; import de.urszeidler.eclipse.shr5.util.AdapterFactoryUtil; import de.urszeidler.emf.commons.ui.util.EmfFormBuilder.ReferenceManager; import de.urszeidler.shr5.ecp.editor.actions.DuplicateObjectAction; import de.urszeidler.shr5.ecp.editor.pages.AbstractShr5Page; import de.urszeidler.shr5.ecp.editor.widgets.BeschreibbarWidget; import de.urszeidler.shr5.scripting.Placement; import de.urszeidler.shr5.scripting.ScriptingFactory; import de.urszeidler.shr5.scripting.ScriptingPackage; import de.urszeidler.shr5.scripting.ScriptingPackage.Literals; public class PlacementPage extends AbstractShr5Page<Placement> { private Placement object; private EditingDomain editingDomain; private DataBindingContext m_bindingContext; private StyledText styledText_1; private StyledText styledText_2; private StyledText txtNewText; private CDateTime dateTime_1; private CDateTime dateTime; /** * Create the form page. * * @param id * @param title */ public PlacementPage(String id, String title) { super(id, title); } /** * Create the form page. * * @param editor * @param id * @param title * @wbp.parser.constructor * @wbp.eval.method.parameter id "Some id" * @wbp.eval.method.parameter title "Some title" */ public PlacementPage(FormEditor editor, String id, String title) { super(editor, id, title); this.object = ScriptingFactory.eINSTANCE.createPlacement(); } public PlacementPage(FormEditor editor, String id, String title, Placement object) { super(editor, id, title); this.object = object; } public PlacementPage(FormEditor editor, String id, String title, Placement 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 formToolkit = managedForm.getToolkit(); FormToolkit toolkit = formToolkit; ScrolledForm form = managedForm.getForm(); form.setText(AdapterFactoryUtil.getInstance().getLabelProvider().getText(object)); Composite body = form.getBody(); toolkit.decorateFormHeading(form.getForm()); toolkit.paintBordersFor(body); form.getToolBarManager().add(new DuplicateObjectAction(object)); form.getToolBarManager().update(true); managedForm.getForm().getBody().setLayout(new GridLayout(1, false)); BeschreibbarWidget beschreibbarWidget = new BeschreibbarWidget(managedForm.getForm().getBody(), SWT.NONE, object, toolkit, editingDomain); beschreibbarWidget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1)); formToolkit.adapt(beschreibbarWidget); formToolkit.paintBordersFor(beschreibbarWidget); Composite composite = managedForm.getToolkit().createComposite(managedForm.getForm().getBody(), SWT.NONE); composite.setLayout(new FillLayout(SWT.HORIZONTAL)); composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); managedForm.getToolkit().paintBordersFor(composite); Section sctnData = managedForm.getToolkit().createSection(composite, Section.TWISTIE | Section.TITLE_BAR); managedForm.getToolkit().paintBordersFor(sctnData); sctnData.setText("Data"); sctnData.setExpanded(true); Composite composite_1 = managedForm.getToolkit().createComposite(sctnData, SWT.NONE); managedForm.getToolkit().paintBordersFor(composite_1); sctnData.setClient(composite_1); { TableWrapLayout twl_composite_1 = new TableWrapLayout(); twl_composite_1.numColumns = 3; composite_1.setLayout(twl_composite_1); } managedForm.getToolkit().createLabel(composite_1, "start Date", SWT.NONE); dateTime = new CDateTime(composite_1, CDT.CLOCK_24_HOUR | CDT.DROP_DOWN | CDT.DATE_SHORT | CDT.TIME_SHORT); managedForm.getToolkit().adapt(dateTime); managedForm.getToolkit().paintBordersFor(dateTime); Composite composite_5 = managedForm.getToolkit().createComposite(composite_1, SWT.NONE); composite_5.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.FILL, 4, 1)); composite_5.setBounds(0, 0, 64, 64); managedForm.getToolkit().paintBordersFor(composite_5); composite_5.setLayout(new GridLayout(1, false)); managedForm.getToolkit().createLabel(composite_1, "end Date", SWT.NONE); dateTime_1 = new CDateTime(composite_1, CDT.CLOCK_24_HOUR | CDT.DROP_DOWN | CDT.DATE_SHORT | CDT.TIME_SHORT); managedForm.getToolkit().adapt(dateTime_1); managedForm.getToolkit().paintBordersFor(dateTime_1); Composite composite_7 = new Composite(composite_1, SWT.NONE); composite_7.setLayout(new GridLayout(3, false)); composite_7.setLayoutData(new TableWrapData(TableWrapData.LEFT, TableWrapData.TOP, 1, 2)); managedForm.getToolkit().adapt(composite_7); managedForm.getToolkit().paintBordersFor(composite_7); new Label(composite_1, SWT.NONE); new Label(composite_1, SWT.NONE); Composite composite_6 = managedForm.getToolkit().createComposite(composite_1, SWT.NONE); composite_6.setLayout(new GridLayout(1, false)); composite_6.setLayoutData(new TableWrapData(TableWrapData.FILL, TableWrapData.TOP, 1, 3)); managedForm.getToolkit().paintBordersFor(composite_6); Composite composite_9 = formToolkit.createComposite(managedForm.getForm().getBody(), SWT.NONE); { TableWrapLayout twl_composite_9 = new TableWrapLayout(); twl_composite_9.topMargin = 0; twl_composite_9.makeColumnsEqualWidth = true; twl_composite_9.numColumns = 1; composite_9.setLayout(twl_composite_9); } GridData gd_composite_9 = new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1); gd_composite_9.widthHint = 223; composite_9.setLayoutData(gd_composite_9); formToolkit.paintBordersFor(composite_9); Section sctnBackground = formToolkit.createSection(composite_9, Section.TWISTIE | Section.TITLE_BAR); sctnBackground.setLayoutData(new TableWrapData(TableWrapData.FILL, TableWrapData.MIDDLE, 1, 1)); sctnBackground.setSize(1183, 116); formToolkit.paintBordersFor(sctnBackground); sctnBackground.setText("Background"); sctnBackground.setExpanded(true); Composite composite_2 = formToolkit.createComposite(sctnBackground, SWT.NONE); formToolkit.paintBordersFor(composite_2); sctnBackground.setClient(composite_2); composite_2.setLayout(new GridLayout(1, false)); txtNewText = new StyledText(composite_2, SWT.WRAP); GridData gd_styledText_ = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); gd_styledText_.minimumHeight = 80; gd_styledText_.widthHint = 120; txtNewText.setLayoutData(gd_styledText_); txtNewText.setEditable(true); txtNewText.setAlwaysShowScrollBars(false); formToolkit.adapt(txtNewText); formToolkit.paintBordersFor(txtNewText); // Button btnNewButton = formToolkit.createButton(composite_6, "New Button", SWT.NONE); Section sctnInTheirFace = formToolkit.createSection(composite_9, Section.TWISTIE | Section.TITLE_BAR); sctnInTheirFace.setLayoutData(new TableWrapData(TableWrapData.FILL, TableWrapData.TOP, 1, 1)); formToolkit.paintBordersFor(sctnInTheirFace); sctnInTheirFace.setText("In their face"); sctnInTheirFace.setExpanded(true); Composite composite_3 = formToolkit.createComposite(sctnInTheirFace, SWT.NONE); formToolkit.paintBordersFor(composite_3); sctnInTheirFace.setClient(composite_3); composite_3.setLayout(new GridLayout(1, false)); styledText_1 = new StyledText(composite_3, SWT.WRAP); GridData gd_styledText_1 = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); gd_styledText_1.minimumHeight = 80; gd_styledText_1.widthHint = 120; styledText_1.setLayoutData(gd_styledText_1); styledText_1.setEditable(true); styledText_1.setAlwaysShowScrollBars(false); formToolkit.adapt(styledText_1); formToolkit.paintBordersFor(styledText_1); Section sctnDebugging = formToolkit.createSection(composite_9, Section.TWISTIE | Section.TITLE_BAR); sctnDebugging.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1)); sctnInTheirFace.setLayoutData(new TableWrapData(TableWrapData.FILL, TableWrapData.TOP, 1, 1)); formToolkit.paintBordersFor(sctnInTheirFace); sctnDebugging.setText("Debugging"); sctnDebugging.setExpanded(true); Composite composite_4 = formToolkit.createComposite(sctnDebugging, SWT.NONE); formToolkit.paintBordersFor(composite_4); sctnDebugging.setClient(composite_4); composite_4.setLayout(new GridLayout(1, false)); styledText_2 = new StyledText(composite_4, SWT.WRAP); GridData gd_styledText_2 = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); gd_styledText_2.minimumHeight = 80; gd_styledText_2.widthHint = 120; styledText_2.setLayoutData(gd_styledText_2); styledText_2.setEditable(true); styledText_2.setAlwaysShowScrollBars(false); formToolkit.adapt(styledText_2); formToolkit.paintBordersFor(styledText_2); m_bindingContext = initDataBindings(); createFormBuilder(managedForm); GridData controlGridData = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 3); controlGridData.heightHint = 120; emfFormBuilder.addTextEntry(ScriptingPackage.Literals.PLACEMENT__OPTIONS, composite_7,controlGridData); emfFormBuilder.addTextEntry(ScriptingPackage.Literals.PLACEMENT__SECTIONS, composite_7); emfFormBuilder.addTextEntry(ScriptingPackage.Literals.PLACEMENT__NEXT_PLACEMENTS, composite_5); emfFormBuilder.addTextEntry(ScriptingPackage.Literals.PLACEMENT__TEAMS, composite_5); emfFormBuilder.addTextEntry(ScriptingPackage.Literals.PLACEMENT__HANDOUTS, composite_5); emfFormBuilder.buildinComposite(m_bindingContext, managedForm.getForm().getBody(), object); managedForm.reflow(true); } @Override protected EditingDomain getEditingDomain() { return editingDomain; } protected DataBindingContext initDataBindings() { DataBindingContext bindingContext = new DataBindingContext(); // IObservableValue observeLocationDatewidgetObserveWidget = new CDateTimeObservableValue(dateTime); IObservableValue currentChangeDateObserveValue = EMFEditObservables.observeValue(editingDomain,object, ScriptingPackage.Literals.TIME_FRAME__START_DATE); bindingContext.bindValue(observeLocationDatewidgetObserveWidget, currentChangeDateObserveValue, null, null); // IObservableValue observeLocationDatewidgetObserveWidget1 = new CDateTimeObservableValue(dateTime_1); IObservableValue currentChangeDateObserveValue1 = EMFEditObservables.observeValue(editingDomain,object, ScriptingPackage.Literals.TIME_FRAME__END_DATE); bindingContext.bindValue(observeLocationDatewidgetObserveWidget1, currentChangeDateObserveValue1, null, null); // IObservableValue observeTextStyledText_1ObserveWidget = WidgetProperties.text(SWT.Modify).observeDelayed(200, styledText_1); IObservableValue objectInTheirFaceObserveValue = EMFEditObservables.observeValue(editingDomain, object, Literals.PLACEMENT__IN_THEIR_FACE); bindingContext.bindValue(observeTextStyledText_1ObserveWidget, objectInTheirFaceObserveValue, new EMFUpdateValueStrategy(), new EMFUpdateValueStrategy()); // IObservableValue observeTextStyledText_2ObserveWidget = WidgetProperties.text(SWT.Modify).observeDelayed(200, styledText_2); IObservableValue objectDebuggingObserveValue = EMFEditObservables.observeValue(editingDomain, object, Literals.PLACEMENT__DEBUGGING); bindingContext.bindValue(observeTextStyledText_2ObserveWidget, objectDebuggingObserveValue, new EMFUpdateValueStrategy(), new EMFUpdateValueStrategy()); // IObservableValue observeTextTxtNewTextObserveWidget = WidgetProperties.text(SWT.Modify).observeDelayed(200, txtNewText); IObservableValue objectBackgroundObserveValue = EMFEditObservables.observeValue(editingDomain, object, Literals.PLACEMENT__BACKGROUND); bindingContext.bindValue(observeTextTxtNewTextObserveWidget, objectBackgroundObserveValue, new EMFUpdateValueStrategy(), new EMFUpdateValueStrategy()); // return bindingContext; } }