package org.eclipselabs.spray.generator.graphiti.templates;
import com.google.inject.Inject;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.xbase.lib.BooleanExtensions;
import org.eclipse.xtext.xbase.lib.ObjectExtensions;
import org.eclipse.xtext.xbase.lib.StringExtensions;
import org.eclipse.xtext.xtend2.lib.StringConcatenation;
import org.eclipselabs.spray.generator.graphiti.templates.FileGenerator;
import org.eclipselabs.spray.generator.graphiti.templates.JavaGenFile;
import org.eclipselabs.spray.generator.graphiti.util.GeneratorUtil;
import org.eclipselabs.spray.generator.graphiti.util.MetaModel;
import org.eclipselabs.spray.generator.graphiti.util.NamingExtensions;
import org.eclipselabs.spray.mm.spray.Diagram;
@SuppressWarnings("all")
public class PropertySection extends FileGenerator {
@Inject
private NamingExtensions naming;
private Diagram diagram;
public Diagram setDiagram(final Diagram d) {
Diagram _diagram = this.diagram = d;
return _diagram;
}
public StringConcatenation generateBaseFile(final EObject modelElement) {
JavaGenFile _javaGenFile = this.getJavaGenFile();
String _baseClassName = _javaGenFile.getBaseClassName();
StringConcatenation _mainFile = this.mainFile(((EAttribute) modelElement), _baseClassName);
return _mainFile;
}
public StringConcatenation generateExtensionFile(final EObject modelElement) {
JavaGenFile _javaGenFile = this.getJavaGenFile();
String _className = _javaGenFile.getClassName();
StringConcatenation _mainExtensionPointFile = this.mainExtensionPointFile(((EAttribute) modelElement), _className);
return _mainExtensionPointFile;
}
public StringConcatenation mainExtensionPointFile(final EAttribute eAttribute, final String className) {
StringConcatenation _builder = new StringConcatenation();
StringConcatenation _extensionHeader = this.extensionHeader(this);
_builder.append(_extensionHeader, "");
_builder.newLineIfNotEmpty();
_builder.append("package ");
String _property_package = GeneratorUtil.property_package();
_builder.append(_property_package, "");
_builder.append(";");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append("import org.eclipse.graphiti.features.IFeatureProvider;");
_builder.newLine();
_builder.newLine();
_builder.append("public class ");
_builder.append(className, "");
_builder.append(" extends ");
_builder.append(className, "");
_builder.append("Base {");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
_builder.append("}");
_builder.newLine();
_builder.newLine();
return _builder;
}
public StringConcatenation mainFile(final EAttribute eAttribute, final String className) {
StringConcatenation _builder = new StringConcatenation();
String _name = this.diagram.getName();
final String diagramName = _name;
_builder.newLineIfNotEmpty();
EClass _eContainingClass = eAttribute.getEContainingClass();
final EClass eClass = _eContainingClass;
_builder.newLineIfNotEmpty();
String _name_1 = eAttribute.getName();
final String propertyName = _name_1;
_builder.append(" ");
_builder.newLineIfNotEmpty();
EDataType _eAttributeType = eAttribute.getEAttributeType();
final boolean isEnum = (_eAttributeType instanceof EEnum);
_builder.newLineIfNotEmpty();
EDataType _eAttributeType_1 = eAttribute.getEAttributeType();
String _name_2 = _eAttributeType_1.getName();
boolean _operator_equals = ObjectExtensions.operator_equals(_name_2, "EBoolean");
final boolean isBoolean = _operator_equals;
_builder.newLineIfNotEmpty();
StringConcatenation _header = this.header(this);
_builder.append(_header, "");
_builder.newLineIfNotEmpty();
_builder.append("package ");
String _property_package = GeneratorUtil.property_package();
_builder.append(_property_package, "");
_builder.append(";");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append("import org.eclipse.emf.transaction.RecordingCommand;");
_builder.newLine();
_builder.append("import org.eclipse.emf.transaction.TransactionalEditingDomain;");
_builder.newLine();
_builder.append("import org.eclipse.graphiti.mm.pictograms.PictogramElement;");
_builder.newLine();
_builder.append("import org.eclipse.graphiti.services.Graphiti;");
_builder.newLine();
_builder.append("import org.eclipse.graphiti.ui.platform.GFPropertySection;");
_builder.newLine();
_builder.append("import org.eclipse.graphiti.ui.internal.services.GraphitiUiInternal;");
_builder.newLine();
_builder.append("import org.eclipse.jface.action.IStatusLineManager;");
_builder.newLine();
_builder.append("import org.eclipse.swt.SWT;");
_builder.newLine();
_builder.append("import org.eclipse.swt.custom.CLabel;");
_builder.newLine();
_builder.append("import org.eclipse.swt.events.FocusEvent;");
_builder.newLine();
_builder.append("import org.eclipse.swt.events.FocusListener;");
_builder.newLine();
_builder.append("import org.eclipse.swt.events.ModifyEvent;");
_builder.newLine();
_builder.append("import org.eclipse.swt.events.ModifyListener;");
_builder.newLine();
_builder.append("import org.eclipse.swt.events.SelectionAdapter;");
_builder.newLine();
_builder.append("import org.eclipse.swt.events.SelectionEvent;");
_builder.newLine();
_builder.append("import org.eclipse.swt.events.SelectionListener;");
_builder.newLine();
_builder.append("import org.eclipse.swt.layout.FormAttachment;");
_builder.newLine();
_builder.append("import org.eclipse.swt.layout.FormData;");
_builder.newLine();
_builder.append("import org.eclipse.swt.widgets.Composite;");
_builder.newLine();
_builder.append("import org.eclipse.swt.widgets.Text;");
_builder.newLine();
_builder.append("import org.eclipse.swt.custom.CCombo;");
_builder.newLine();
_builder.append("import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;");
_builder.newLine();
_builder.append("import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;");
_builder.newLine();
_builder.append("import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;");
_builder.newLine();
_builder.append("import java.util.List;");
_builder.newLine();
_builder.append("import ");
String _javaInterfaceName = this.naming.getJavaInterfaceName(eClass);
_builder.append(_javaInterfaceName, "");
_builder.append(";");
_builder.newLineIfNotEmpty();
{
if (isEnum) {
_builder.append("import ");
EDataType _eAttributeType_2 = eAttribute.getEAttributeType();
String _fullPackageName = MetaModel.fullPackageName(_eAttributeType_2);
_builder.append(_fullPackageName, "");
_builder.append(".");
EDataType _eAttributeType_3 = eAttribute.getEAttributeType();
String _name_3 = _eAttributeType_3.getName();
_builder.append(_name_3, "");
_builder.append(";");
_builder.newLineIfNotEmpty();
}
}
_builder.append("// MARKER_IMPORT");
_builder.newLine();
_builder.newLine();
_builder.append("public class ");
_builder.append(className, "");
_builder.append(" extends GFPropertySection implements ITabbedPropertyConstants {");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("protected ");
String _name_4 = eClass.getName();
_builder.append(_name_4, " ");
_builder.append(" bc = null;");
_builder.newLineIfNotEmpty();
{
boolean _operator_or = false;
if (isEnum) {
_operator_or = true;
} else {
_operator_or = BooleanExtensions.operator_or(isEnum, isBoolean);
}
if (_operator_or) {
_builder.append(" ");
_builder.append("protected CCombo ");
_builder.append(propertyName, " ");
_builder.append("Widget;");
_builder.newLineIfNotEmpty();
} else {
_builder.append(" ");
_builder.append("protected Text ");
_builder.append(propertyName, " ");
_builder.append("Widget;");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("@Override");
_builder.newLine();
_builder.append(" ");
_builder.append("public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {");
_builder.newLine();
_builder.append(" ");
_builder.append("super.createControls(parent, tabbedPropertySheetPage);");
_builder.newLine();
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("TabbedPropertySheetWidgetFactory factory = getWidgetFactory();");
_builder.newLine();
_builder.append(" ");
_builder.append("Composite composite = factory.createFlatFormComposite(parent);");
_builder.newLine();
_builder.append(" ");
_builder.append("FormData data;");
_builder.newLine();
_builder.newLine();
{
boolean _operator_or_1 = false;
if (isEnum) {
_operator_or_1 = true;
} else {
_operator_or_1 = BooleanExtensions.operator_or(isEnum, isBoolean);
}
if (_operator_or_1) {
_builder.append(" ");
_builder.append(propertyName, " ");
_builder.append("Widget = factory.createCCombo(composite);");
_builder.newLineIfNotEmpty();
} else {
_builder.append(" ");
_builder.append(propertyName, " ");
_builder.append("Widget = factory.createText(composite, \"\");");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
_builder.append("data = new FormData();");
_builder.newLine();
_builder.append(" ");
_builder.append("data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);");
_builder.newLine();
_builder.append(" ");
_builder.append("data.right = new FormAttachment(100, 0);");
_builder.newLine();
_builder.append(" ");
_builder.append("data.top = new FormAttachment(0, VSPACE);");
_builder.newLine();
_builder.append(" ");
_builder.append(propertyName, " ");
_builder.append("Widget.setLayoutData(data);");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("CLabel valueLabel = factory.createCLabel(composite, \"");
String _firstUpper = StringExtensions.toFirstUpper(propertyName);
_builder.append(_firstUpper, " ");
_builder.append("\");");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("data = new FormData();");
_builder.newLine();
_builder.append(" ");
_builder.append("data.left = new FormAttachment(0, 0);");
_builder.newLine();
_builder.append(" ");
_builder.append("data.right = new FormAttachment(");
_builder.append(propertyName, " ");
_builder.append("Widget, -HSPACE);");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("data.top = new FormAttachment(");
_builder.append(propertyName, " ");
_builder.append("Widget, 0, SWT.CENTER);");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("valueLabel.setLayoutData(data);");
_builder.newLine();
_builder.append("}");
_builder.newLine();
_builder.append(" ");
_builder.newLine();
{
boolean _operator_or_2 = false;
if (isEnum) {
_operator_or_2 = true;
} else {
_operator_or_2 = BooleanExtensions.operator_or(isEnum, isBoolean);
}
boolean _operator_not = BooleanExtensions.operator_not(_operator_or_2);
if (_operator_not) {
_builder.append("@Override");
_builder.newLine();
_builder.append("public void refresh() {");
_builder.newLine();
_builder.append(" ");
_builder.append(propertyName, " ");
_builder.append("Widget.removeModifyListener(nameListener);");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append(" ");
_builder.append("PictogramElement pe = getSelectedPictogramElement();");
_builder.newLine();
_builder.append(" ");
_builder.append("if (pe != null) {");
_builder.newLine();
_builder.append(" ");
_builder.append("Object bo = Graphiti.getLinkService().getBusinessObjectForLinkedPictogramElement(pe);");
_builder.newLine();
_builder.append(" ");
_builder.append("// the filter assured, that it is a ");
String _name_5 = eClass.getName();
_builder.append(_name_5, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("if (bo == null)");
_builder.newLine();
_builder.append(" ");
_builder.append("return;");
_builder.newLine();
_builder.append(" ");
_builder.append("bc = (");
String _name_6 = eClass.getName();
_builder.append(_name_6, " ");
_builder.append(")bo;");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("String value = \"\";");
_builder.newLine();
{
EDataType _eAttributeType_4 = eAttribute.getEAttributeType();
String _name_7 = _eAttributeType_4.getName();
boolean _operator_equals_1 = ObjectExtensions.operator_equals(_name_7, "EString");
if (_operator_equals_1) {
_builder.append("value = bc.get");
String _firstUpper_1 = StringExtensions.toFirstUpper(propertyName);
_builder.append(_firstUpper_1, "");
_builder.append("();");
_builder.newLineIfNotEmpty();
} else {
EDataType _eAttributeType_5 = eAttribute.getEAttributeType();
String _name_8 = _eAttributeType_5.getName();
boolean _operator_equals_2 = ObjectExtensions.operator_equals(_name_8, "EInt");
if (_operator_equals_2) {
_builder.append("value = Integer.toString( bc.get");
String _firstUpper_2 = StringExtensions.toFirstUpper(propertyName);
_builder.append(_firstUpper_2, "");
_builder.append("() );");
_builder.newLineIfNotEmpty();
} else {
_builder.append("value = \"unknown\";");
_builder.newLine();
}
}
}
_builder.append(" ");
_builder.append(propertyName, " ");
_builder.append("Widget.setText(value == null ? \"\" : value);");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(propertyName, " ");
_builder.append("Widget.addModifyListener(nameListener);");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
_builder.newLine();
_builder.append("private ModifyListener nameListener = new ModifyListener() {");
_builder.newLine();
_builder.append(" ");
_builder.append("public void modifyText(ModifyEvent arg0) {");
_builder.newLine();
_builder.append(" ");
_builder.append("TransactionalEditingDomain editingDomain = getDiagramEditor().getEditingDomain();");
_builder.newLine();
_builder.append(" ");
_builder.append("editingDomain.getCommandStack().execute(new RecordingCommand(editingDomain) {");
_builder.newLine();
_builder.append(" ");
_builder.append("@Override");
_builder.newLine();
_builder.append(" ");
_builder.append("protected void doExecute() {");
_builder.newLine();
_builder.append(" ");
_builder.append("changePropertyValue();");
_builder.newLine();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.append(" ");
_builder.append("});");
_builder.newLine();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.append("};");
_builder.newLine();
}
}
_builder.newLine();
{
boolean _operator_or_3 = false;
if (isEnum) {
_operator_or_3 = true;
} else {
_operator_or_3 = BooleanExtensions.operator_or(isEnum, isBoolean);
}
boolean _operator_not_1 = BooleanExtensions.operator_not(_operator_or_3);
if (_operator_not_1) {
_builder.append("protected void changePropertyValue(){");
_builder.newLine();
_builder.append(" ");
_builder.append("String newValue = ");
_builder.append(propertyName, " ");
_builder.append("Widget.getText();");
_builder.newLineIfNotEmpty();
{
boolean _operator_and = false;
boolean _isDerived = eAttribute.isDerived();
boolean _operator_not_2 = BooleanExtensions.operator_not(_isDerived);
if (!_operator_not_2) {
_operator_and = false;
} else {
boolean _isChangeable = eAttribute.isChangeable();
_operator_and = BooleanExtensions.operator_and(_operator_not_2, _isChangeable);
}
if (_operator_and) {
{
EDataType _eAttributeType_6 = eAttribute.getEAttributeType();
String _name_9 = _eAttributeType_6.getName();
boolean _operator_equals_3 = ObjectExtensions.operator_equals(_name_9, "EBoolean");
if (_operator_equals_3) {
_builder.append("String oldValue = ( bc.is");
String _firstUpper_3 = StringExtensions.toFirstUpper(propertyName);
_builder.append(_firstUpper_3, "");
_builder.append("() ? \"true\" : \"false\" );");
_builder.newLineIfNotEmpty();
_builder.append("if( ! newValue.equals(oldValue) ) { ");
_builder.newLine();
_builder.append(" ");
_builder.append("bc.set");
String _firstUpper_4 = StringExtensions.toFirstUpper(propertyName);
_builder.append(_firstUpper_4, " ");
_builder.append("(! bc.is");
String _firstUpper_5 = StringExtensions.toFirstUpper(propertyName);
_builder.append(_firstUpper_5, " ");
_builder.append("() );");
_builder.newLineIfNotEmpty();
_builder.append("}");
_builder.newLine();
} else {
EDataType _eAttributeType_7 = eAttribute.getEAttributeType();
String _name_10 = _eAttributeType_7.getName();
boolean _operator_equals_4 = ObjectExtensions.operator_equals(_name_10, "EString");
if (_operator_equals_4) {
_builder.append("if( ! newValue.equals(bc.get");
String _firstUpper_6 = StringExtensions.toFirstUpper(propertyName);
_builder.append(_firstUpper_6, "");
_builder.append("() ) ) { ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("bc.set");
String _firstUpper_7 = StringExtensions.toFirstUpper(propertyName);
_builder.append(_firstUpper_7, " ");
_builder.append("(newValue);");
_builder.newLineIfNotEmpty();
_builder.append("}");
_builder.newLine();
} else {
EDataType _eAttributeType_8 = eAttribute.getEAttributeType();
String _name_11 = _eAttributeType_8.getName();
boolean _operator_equals_5 = ObjectExtensions.operator_equals(_name_11, "EInt");
if (_operator_equals_5) {
_builder.append("try {");
_builder.newLine();
_builder.append(" ");
_builder.append("int newIntValue = Integer.parseInt(newValue);");
_builder.newLine();
_builder.append(" ");
_builder.append("bc.set");
String _firstUpper_8 = StringExtensions.toFirstUpper(propertyName);
_builder.append(_firstUpper_8, " ");
_builder.append("( newIntValue );");
_builder.newLineIfNotEmpty();
_builder.append("} catch(Exception e) {");
_builder.newLine();
_builder.append(" ");
_builder.append("IStatusLineManager mgr = GraphitiUiInternal.getWorkbenchService().getActiveStatusLineManager();");
_builder.newLine();
_builder.append(" ");
_builder.append("mgr.setErrorMessage(e.getMessage() + \" should be a number\");");
_builder.newLine();
_builder.append("}");
_builder.newLine();
}
}
}
}
}
}
_builder.append("}");
_builder.newLine();
}
}
_builder.newLine();
{
boolean _operator_or_4 = false;
if (isEnum) {
_operator_or_4 = true;
} else {
_operator_or_4 = BooleanExtensions.operator_or(isEnum, isBoolean);
}
if (_operator_or_4) {
_builder.append(" ");
_builder.append("@Override");
_builder.newLine();
_builder.append(" ");
_builder.append("public void refresh() {");
_builder.newLine();
_builder.append(" ");
_builder.append(propertyName, " ");
_builder.append("Widget.removeSelectionListener(nameListener);");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(propertyName, " ");
_builder.append("Widget.setItems(getEnumerationFeatureValues());");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(propertyName, " ");
_builder.append("Widget.setText(getFeatureAsText());");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(propertyName, " ");
_builder.append("Widget.addSelectionListener(nameListener);");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("/**");
_builder.newLine();
_builder.append(" ");
_builder.append("* ");
_builder.newLine();
_builder.append(" ");
_builder.append("* @return An Array of all the String representations of Multiplicity enumeration values");
_builder.newLine();
_builder.append(" ");
_builder.append("*/");
_builder.newLine();
_builder.append(" ");
_builder.append("protected String[] getEnumerationFeatureValues() {");
_builder.newLine();
{
if (isEnum) {
_builder.append(" ");
_builder.append("List<");
EDataType _eAttributeType_9 = eAttribute.getEAttributeType();
String _name_12 = _eAttributeType_9.getName();
_builder.append(_name_12, " ");
_builder.append("> values = ");
EDataType _eAttributeType_10 = eAttribute.getEAttributeType();
String _name_13 = _eAttributeType_10.getName();
_builder.append(_name_13, " ");
_builder.append(".VALUES;");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("String[] ret = new String[values.size()];");
_builder.newLine();
_builder.append(" ");
_builder.append("for (int i = 0; i < values.size(); i++) {");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append("ret[i] = ((");
EDataType _eAttributeType_11 = eAttribute.getEAttributeType();
String _name_14 = _eAttributeType_11.getName();
_builder.append(_name_14, " ");
_builder.append(") values.get(i)).getName();");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
} else {
EDataType _eAttributeType_12 = eAttribute.getEAttributeType();
String _name_15 = _eAttributeType_12.getName();
boolean _operator_equals_6 = ObjectExtensions.operator_equals(_name_15, "EBoolean");
if (_operator_equals_6) {
_builder.append(" ");
_builder.append("String[] ret = new String[] {\"false\", \"true\"};");
_builder.newLine();
}
}
}
_builder.append(" ");
_builder.append("return ret;");
_builder.newLine();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.append("// value = ( bc.is");
String _firstUpper_9 = StringExtensions.toFirstUpper(propertyName);
_builder.append(_firstUpper_9, "");
_builder.append("() ? \"true\" : \"false\" );");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append(" ");
_builder.append("/**");
_builder.newLine();
_builder.append(" ");
_builder.append("* ");
_builder.newLine();
_builder.append(" ");
_builder.append("* @return The string representation of the current value of \'sourceMultiplicity\' of the selected Association");
_builder.newLine();
_builder.append(" ");
_builder.append("*/");
_builder.newLine();
_builder.append(" ");
_builder.append("protected String getFeatureAsText() {");
_builder.newLine();
_builder.append(" ");
_builder.append("PictogramElement pe = getSelectedPictogramElement();");
_builder.newLine();
_builder.append(" ");
_builder.append("if (pe != null) {");
_builder.newLine();
_builder.append(" ");
_builder.append("Object bo = Graphiti.getLinkService().getBusinessObjectForLinkedPictogramElement(pe);");
_builder.newLine();
_builder.append(" ");
_builder.append("// the filter assured, that it is a ");
String _name_16 = eClass.getName();
_builder.append(_name_16, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("if (bo == null) {");
_builder.newLine();
_builder.append(" ");
_builder.append("return \"unknown \";");
_builder.newLine();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.append(" ");
_builder.append("bc = (");
String _name_17 = eClass.getName();
_builder.append(_name_17, " ");
_builder.append(") bo;");
_builder.newLineIfNotEmpty();
{
if (isEnum) {
_builder.append(" ");
_builder.append("if( bc.get");
String _name_18 = eAttribute.getName();
String _firstUpper_10 = StringExtensions.toFirstUpper(_name_18);
_builder.append(_firstUpper_10, " ");
_builder.append("() == null ){");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.append("return \"Null value for ");
String _name_19 = eAttribute.getName();
_builder.append(_name_19, " ");
_builder.append("\";");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.append(" ");
_builder.append("return bc.get");
String _name_20 = eAttribute.getName();
String _firstUpper_11 = StringExtensions.toFirstUpper(_name_20);
_builder.append(_firstUpper_11, " ");
_builder.append("().getName();");
_builder.newLineIfNotEmpty();
} else {
if (isBoolean) {
_builder.append(" ");
_builder.append(" ");
String _xifexpression = null;
String _name_21 = eAttribute.getName();
boolean _startsWith = _name_21.startsWith("is");
if (_startsWith) {
String _name_22 = eAttribute.getName();
_xifexpression = _name_22;
} else {
String _name_23 = eAttribute.getName();
String _firstUpper_12 = StringExtensions.toFirstUpper(_name_23);
String _operator_plus = StringExtensions.operator_plus("is", _firstUpper_12);
_xifexpression = _operator_plus;
}
final String name = _xifexpression;
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("return ( bc.");
_builder.append(name, " ");
_builder.append("() ? \"true\" : \"false\" );");
_builder.newLineIfNotEmpty();
}
}
}
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.append(" ");
_builder.append("return \"unknown \";");
_builder.newLine();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.newLine();
_builder.newLine();
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("private SelectionListener nameListener = new SelectionAdapter() {");
_builder.newLine();
_builder.append(" ");
_builder.append("public void widgetSelected(SelectionEvent event) {");
_builder.newLine();
_builder.append(" ");
_builder.append("TransactionalEditingDomain editingDomain = getDiagramEditor().getEditingDomain();");
_builder.newLine();
_builder.append(" ");
_builder.append("editingDomain.getCommandStack().execute(new RecordingCommand(editingDomain) {");
_builder.newLine();
_builder.append(" ");
_builder.append("@Override");
_builder.newLine();
_builder.append(" ");
_builder.append("protected void doExecute() {");
_builder.newLine();
_builder.append(" ");
_builder.append("changePropertyValue();");
_builder.newLine();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.append(" ");
_builder.append("});");
_builder.newLine();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.append(" ");
_builder.append("};");
_builder.newLine();
_builder.newLine();
_builder.append(" ");
_builder.append("protected void changePropertyValue(){");
_builder.newLine();
_builder.append(" ");
_builder.append("int index = ");
_builder.append(propertyName, " ");
_builder.append("Widget.getSelectionIndex();");
_builder.newLineIfNotEmpty();
{
boolean _operator_and_1 = false;
boolean _isDerived_1 = eAttribute.isDerived();
boolean _operator_not_3 = BooleanExtensions.operator_not(_isDerived_1);
if (!_operator_not_3) {
_operator_and_1 = false;
} else {
boolean _isChangeable_1 = eAttribute.isChangeable();
_operator_and_1 = BooleanExtensions.operator_and(_operator_not_3, _isChangeable_1);
}
if (_operator_and_1) {
{
if (isEnum) {
_builder.append(" ");
EDataType _eAttributeType_13 = eAttribute.getEAttributeType();
String _name_24 = _eAttributeType_13.getName();
_builder.append(_name_24, " ");
_builder.append(" value = ");
EDataType _eAttributeType_14 = eAttribute.getEAttributeType();
String _name_25 = _eAttributeType_14.getName();
_builder.append(_name_25, " ");
_builder.append(".VALUES.get(index);");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("bc.set");
String _name_26 = eAttribute.getName();
String _firstUpper_13 = StringExtensions.toFirstUpper(_name_26);
_builder.append(_firstUpper_13, " ");
_builder.append("(value);");
_builder.newLineIfNotEmpty();
} else {
if (isBoolean) {
_builder.append(" ");
_builder.append(" ");
_builder.append("boolean newValue = (index == 0 ? false : true);");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
String _xifexpression_1 = null;
String _name_27 = eAttribute.getName();
boolean _startsWith_1 = _name_27.startsWith("is");
if (_startsWith_1) {
String _name_28 = eAttribute.getName();
_xifexpression_1 = _name_28;
} else {
String _name_29 = eAttribute.getName();
String _firstUpper_14 = StringExtensions.toFirstUpper(_name_29);
String _operator_plus_1 = StringExtensions.operator_plus("is", _firstUpper_14);
_xifexpression_1 = _operator_plus_1;
}
final String name_1 = _xifexpression_1;
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("if( newValue != bc.");
_builder.append(name_1, " ");
_builder.append("() ) { ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.append("bc.set");
String _name_30 = eAttribute.getName();
String _firstUpper_15 = StringExtensions.toFirstUpper(_name_30);
_builder.append(_firstUpper_15, " ");
_builder.append("(newValue );");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
}
}
}
}
}
_builder.append(" ");
_builder.append("}");
_builder.newLine();
}
}
_builder.append("} ");
return _builder;
}
}