package org.eclipse.xtext.example.fowlerdsl.diagram.properties; import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent; import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.xtext.example.fowlerdsl.statemachine.parts.forms.StatePropertiesEditionPartForm; import org.eclipse.xtext.example.fowlerdsl.statemachine.parts.forms.TransitionPropertiesEditionPartForm; import org.eclipse.xtext.example.fowlerdsl.statemachine.providers.StatemachinePropertiesEditionPartProvider; public class CustomStatemachinePropertiesEditionPartProvider extends StatemachinePropertiesEditionPartProvider { @Override public IPropertiesEditionPart getPropertiesEditionPart(Object key, int kind, IPropertiesEditionComponent component) { IPropertiesEditionPart part = super.getPropertiesEditionPart(key, kind, component); final DummyReferencesTableListener dummy = new DummyReferencesTableListener(); if (part instanceof StatePropertiesEditionPartForm) { part = new StatePropertiesEditionPartForm(component) { public void createControls(final FormToolkit widgetFactory, Composite view) { super.createControls(widgetFactory, view); actions.setEnabled(false); actions.addTableReferenceListener(dummy); transitions.setEnabled(false); transitions.addTableReferenceListener(dummy); } }; } else if (part instanceof TransitionPropertiesEditionPartForm) { part = new TransitionPropertiesEditionPartForm(component) { public void createControls(final FormToolkit widgetFactory, Composite view) { super.createControls(widgetFactory, view); state.setEnabled(false); } }; } return part; } }