package de.urszeidler.shr5.runtime.ui.widgets; import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.core.databinding.UpdateValueStrategy; import org.eclipse.core.databinding.observable.value.IObservableValue; import org.eclipse.emf.databinding.EMFObservables; import org.eclipse.emf.databinding.EMFUpdateValueStrategy; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.jface.databinding.swt.WidgetProperties; import org.eclipse.swt.SWT; import org.eclipse.swt.events.DisposeEvent; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Scale; import org.eclipse.ui.forms.widgets.FormToolkit; import de.urszeidler.eclipse.shr5.RiggerCommandConsole; import de.urszeidler.eclipse.shr5.Shr5Factory; import de.urszeidler.eclipse.shr5.Shr5Package; import de.urszeidler.eclipse.shr5.Shr5Package.Literals; import de.urszeidler.eclipse.shr5.util.AdapterFactoryUtil; import de.urszeidler.emf.commons.ui.util.EmfFormBuilder; import de.urszeidler.emf.commons.ui.util.FormbuilderEntry.EntryFactory; import de.urszeidler.shr5.ecp.editor.widgets.WidgetTools; public class RiggerCommandConsoleWidget extends Composite { private final FormToolkit toolkit = new FormToolkit(Display.getCurrent()); private DataBindingContext m_bindingContext; private RiggerCommandConsole object; private Label lblZugriffbasis; private Scale scale; private Label lblZugriffbasis1; private EmfFormBuilder emfFormBuilder; private EmfFormBuilder emfFormBuilder1; /** * Create the composite. * @param parent * @param style * @param editingDomain */ public RiggerCommandConsoleWidget(Composite parent, int style,RiggerCommandConsole object, EditingDomain editingDomain) { super(parent, style); this.object = object; addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { toolkit.dispose(); emfFormBuilder.dispose(); emfFormBuilder1.dispose(); } }); toolkit.adapt(this); toolkit.paintBordersFor(this); EntryFactory labelFactory = WidgetTools.createLabelExtreyFactory(editingDomain); emfFormBuilder = new EmfFormBuilder(toolkit, AdapterFactoryUtil.getInstance().getItemDelegator(), AdapterFactoryUtil .getInstance().getLabelProvider(), editingDomain); emfFormBuilder.setBorderStyle(SWT.NONE); emfFormBuilder1 = new EmfFormBuilder(toolkit, AdapterFactoryUtil.getInstance().getItemDelegator(), AdapterFactoryUtil .getInstance().getLabelProvider(), editingDomain); // emfFormBuilder1.setManager(mananger); emfFormBuilder1.setBorderStyle(SWT.NONE); if(object.getPan()==null) object.setPan(Shr5Factory.eINSTANCE.createPersonalAreaNetwork()); // composite_runtime.layout(true,true); setLayout(new GridLayout(3, false)); lblZugriffbasis = new Label(this, SWT.NONE); toolkit.adapt(lblZugriffbasis, true, true); lblZugriffbasis.setText("ZugriffBasis"); scale = new Scale(this, SWT.NONE); GridData gd_scale = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_scale.widthHint = 103; scale.setLayoutData(gd_scale); toolkit.adapt(scale, true, true); toolkit.createLabel(this, " ", SWT.NONE); m_bindingContext = initDataBindings(); emfFormBuilder.addTextEntry(Shr5Package.Literals.RIGGER_COMMAND_CONSOLE__ZUGRIFF,this,labelFactory); emfFormBuilder.addTextEntry(Shr5Package.Literals.RIGGER_COMMAND_CONSOLE__RAUSCHUNTERDRUECKUNG,this,labelFactory); emfFormBuilder.addTextEntry(Shr5Package.Literals.MATRIX_ATTRIBUTES__DATENVERARBEITUNG,this,labelFactory); emfFormBuilder.addTextEntry(Shr5Package.Literals.MATRIX_ATTRIBUTES__FIREWALL,this,labelFactory); emfFormBuilder.addTextEntry(Shr5Package.Literals.MATRIX_ATTRIBUTES__CURRENT_MODUS,this); emfFormBuilder.addTextEntry(Shr5Package.Literals.RIGGER_COMMAND_CONSOLE__RUNNING_PROGRAMS, this, WidgetTools.createControllGridData(80)); emfFormBuilder1.addTextEntry(Shr5Package.Literals.PERSONAL_AREA_NETWORK__SLAVES, this, WidgetTools.createControllGridData(80)); emfFormBuilder1.addTextEntry(Shr5Package.Literals.PERSONAL_AREA_NETWORK__SLAVE_MAX, this,labelFactory); emfFormBuilder.buildinComposite(m_bindingContext, this, object); emfFormBuilder1.buildinComposite(m_bindingContext, this,object.getPan()); lblZugriffbasis1 = new Label(this, SWT.NONE); toolkit.adapt(lblZugriffbasis1, true, true); lblZugriffbasis1.setText("Matrix Zustand"); new StateMonitorWidget(this, SWT.NONE, object.getMatrixZustandMax(), false); } protected DataBindingContext initDataBindings() { DataBindingContext bindingContext = new DataBindingContext(); // IObservableValue observeSelectionScaleObserveWidget = WidgetProperties.selection().observe(scale); IObservableValue objectZugriffBasisObserveValue = EMFObservables.observeValue(object, Literals.RIGGER_COMMAND_CONSOLE__ZUGRIFF_BASIS); bindingContext.bindValue(observeSelectionScaleObserveWidget, objectZugriffBasisObserveValue, new EMFUpdateValueStrategy(), new EMFUpdateValueStrategy()); // IObservableValue observeMaxScaleObserveWidget = WidgetProperties.maximum().observe(scale); IObservableValue objectDeviceRatingObserveValue = EMFObservables.observeValue(object, Literals.ABSTRACT_MATRIX_DEVICE__DEVICE_RATING); bindingContext.bindValue(observeMaxScaleObserveWidget, objectDeviceRatingObserveValue, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new EMFUpdateValueStrategy()); // return bindingContext; } }