package de.urszeidler.shr5.runtime.ui.widgets;
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
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.ui.forms.widgets.FormToolkit;
import de.urszeidler.eclipse.shr5.Commlink;
import de.urszeidler.eclipse.shr5.Shr5Factory;
import de.urszeidler.eclipse.shr5.Shr5Package;
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 CommlinkWidget extends Composite {
private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
private DataBindingContext m_bindingContext;
// private Commlink object;
private Label lblZugriffbasis;
// private Scale scale;
// private Label label;
// private EditingDomain editingDomain;
// private StateMonitorWidget stateMonitorWidget;
private EmfFormBuilder emfFormBuilder;
private EmfFormBuilder emfFormBuilder1;
/**
* Create the composite.
* @param parent
* @param style
* @param editingDomain
*/
public CommlinkWidget(Composite parent, int style,Commlink object, EditingDomain editingDomain) {
super(parent, style);
// this.object = object;
// this.editingDomain = editingDomain;
addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
toolkit.dispose();
emfFormBuilder.dispose();
emfFormBuilder1.dispose();
}
});
toolkit.adapt(this);
toolkit.paintBordersFor(this);
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.setBorderStyle(SWT.NONE);
if(object.getPan()==null)
object.setPan(Shr5Factory.eINSTANCE.createPersonalAreaNetwork());
EntryFactory labelFactory = WidgetTools.createLabelExtreyFactory(editingDomain);
setLayout(new GridLayout(3, false));
m_bindingContext = initDataBindings();
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);
emfFormBuilder1.addTextEntry(Shr5Package.Literals.PERSONAL_AREA_NETWORK__SLAVES, this);
emfFormBuilder1.addTextEntry(Shr5Package.Literals.PERSONAL_AREA_NETWORK__SLAVE_MAX, this,labelFactory);
emfFormBuilder.buildinComposite(m_bindingContext, this, object);
emfFormBuilder1.buildinComposite(m_bindingContext, this,object.getPan());
lblZugriffbasis = new Label(this, SWT.NONE);
toolkit.adapt(lblZugriffbasis, true, true);
lblZugriffbasis.setText("Matrix Zustand");
new StateMonitorWidget(this, SWT.NONE, object.getMatrixZustandMax(), false);
}
protected DataBindingContext initDataBindings() {
DataBindingContext bindingContext = new DataBindingContext();
return bindingContext;
}
}