blob: 77bc09888f23dd7d4ac9b57584617842b5cfd2dd [file] [log] [blame]
<%@ jet package="org.eclipse.emf.codegen.ecore.templates.editor" imports="org.eclipse.stem.model.codegen.* org.eclipse.emf.codegen.ecore.genmodel.*" class="PropertyEditor" version="" %>
<%
/**
* <copyright>
*
* Copyright (c) 2012 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM - Initial API and implementation
*
* </copyright>
*/
%>
<%
STEMGenClass stemGenClass = (STEMGenClass)((Object[])argument)[0];
GenClass genClass = stemGenClass.getGenClass();
GenPackage genPackage = genClass.getGenPackage();
GenModel genModel = genPackage.getGenModel();
String importedModelClassName = genModel.getImportedName(stemGenClass.getModelTypeClassName());
%>
<%@ include file="../Header.javajetinc"%>
package <%=genPackage.getPresentationPackageName()%>;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.core.resources.IProject;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.widgets.Composite;
import java.util.MissingResourceException;
<%genModel.markImportLocation(stringBuffer);%>
/**
* @generated
*/
public class <%=genClass.getName()%>PropertyEditor extends
<%=genModel.getImportedName(stemGenClass.getPropertyEditorSuperClassName())%>
{
/**
* @param parent
* @param style
* @param model
* @param projectValidator
* @generated
*/
public <%=genClass.getName()%>PropertyEditor(Composite parent, int style,
<%=importedModelClassName%> model, ModifyListener projectValidator,
IProject project) {
super(parent, style, model, projectValidator, project);
}
/**
* @generated
*/
@Override
public void populate(<%=importedModelClassName%> object) {
super.populate(object);
<%if (genClass.getImplementedGenFeatures().size() > 0) {
String importedClassName = genModel.getImportedName(genPackage.getInterfacePackageName() + "." + genClass.getName());
%>
<%=importedClassName%> model = (<%=importedClassName%>)object;
<%}else{%>
// Remove Comment If Adding Custom Code
//<%=genClass.getName()%> model = (<%=genClass.getName()%>)object;
<%}%>
<% for (GenFeature genFeature : genClass.getImplementedGenFeatures()) { %>
<%
//STEMGenFeature stemFeature = STEMGenFeature.get(genFeature);
//STEMGenFeature.STEMGenFeatureConstraint constraint = stemFeature.getConstraint();
%>
<% if (genFeature.isChangeable()) { %>
<% String rawType = STEMGenClass.getPrimitiveObjectName(genFeature.getImportedType(genClass)); %>
// Set value for <%=genFeature.getFormattedName()%> (<%=rawType%>)
<% if (rawType.equals("Double") ||
rawType.equals("Float") || rawType.equals("Short") ||
rawType.equals("Long") || rawType.equals("Byte")) { %>
try {
<%=rawType%> <%=genFeature.getName()%>Value = <%=rawType%>.parse<%=rawType%>(
map.get(<%=genFeature.getQualifiedFeatureAccessor()%>).getText());
model.set<%=genFeature.getAccessorName()%>(<%=genFeature.getName()%>Value);
} catch (NumberFormatException nfe) {
// empty
}
<% } else if (rawType.equals("Integer")) { %>
try {
Integer <%=genFeature.getName()%>Value = Integer.parseInt(
map.get(<%=genFeature.getQualifiedFeatureAccessor()%>).getText());
model.set<%=genFeature.getAccessorName()%>(<%=genFeature.getName()%>Value);
} catch (NumberFormatException nfe) {
// empty
}
<% } else if (rawType.equals("Boolean")) { %>
boolean <%=genFeature.getName()%>Value = booleanMap.get(<%=genFeature.getQualifiedFeatureAccessor()%>).getSelection();
model.set<%=genFeature.getAccessorName()%>(<%=genFeature.getName()%>Value);
<% } else if (rawType.equals("String")) { %>
String <%=genFeature.getName()%>Value = map.get(<%=genFeature.getQualifiedFeatureAccessor()%>).getText();
model.set<%=genFeature.getAccessorName()%>(<%=genFeature.getName()%>Value);
<% } else { %>
// TODO Add code to set "<%=genFeature.getFormattedName()%>" value
// <%=genFeature.getImportedType(genClass)%> <%=genFeature.getName()%>Value = ...;
// model.set<%=genFeature.getAccessorName()%>(<%=genFeature.getName()%>Value);
<% } //if type %>
<% } //if changeable %>
<% } //for feature %>
}
/**
* @generated
*/
@Override
public boolean validate() {
boolean valid = super.validate();
<% for (GenFeature genFeature : genClass.getImplementedGenFeatures()) { %>
<% if (genFeature.isChangeable()) { %>
valid = valid && validateFeatureConstraint(<%=genFeature.getQualifiedFeatureAccessor()%>);
<% } //if changeable %>
<% } //for feature %>
return valid;
}
/**
* @generated
*/
public static class <%=genClass.getName()%>PropertyStringProviderAdapter
extends <%=genModel.getImportedName(stemGenClass.getStringProviderSuperClassName())%>
{
/**
* @param descriptor
* @return the NLS'd name of the property to display to the user
* @generated
*/
public String getPropertyName(IItemPropertyDescriptor descriptor) {
try {
return <%=genPackage.getPrefix()%>WizardMessages
.getString(((EStructuralFeature) descriptor
.getFeature(null)).getName(), "<%=genClass.getName()%>");
} catch (MissingResourceException e) {
return super.getPropertyName(descriptor);
}
} // getPropertyName
/**
* @param descriptor
* @return the NLS'd tool tip text that describes the property
* @generated
*/
public String getPropertyToolTip(
IItemPropertyDescriptor descriptor) {
try {
final EStructuralFeature feature = (EStructuralFeature) descriptor
.getFeature(null);
return <%=genPackage.getPrefix()%>WizardMessages.getString(feature
.getName() + TT_SUFFIX, "<%=genClass.getName()%>");
} catch (MissingResourceException e) {
return super.getPropertyToolTip(descriptor);
}
} // getPropertyToolTip
/**
* @param descriptor
* @return the NLS'd text that represents the units of the
* property
* @generated
*/
public String getPropertyUnits(
IItemPropertyDescriptor descriptor) {
try {
final EStructuralFeature feature = (EStructuralFeature) descriptor
.getFeature(null);
return <%=genPackage.getPrefix()%>WizardMessages.getString(feature
.getName() + UNIT_SUFFIX, "<%=genClass.getName()%>");
} catch (MissingResourceException e) {
return super.getPropertyUnits(descriptor);
}
} // getPropertyUnits
/**
* @param descriptor
* @return the NLS'd text for a missing property error message
* @generated
*/
public String getPropertyMissing(
IItemPropertyDescriptor descriptor) {
try {
final EStructuralFeature feature = (EStructuralFeature) descriptor
.getFeature(null);
return <%=genPackage.getPrefix()%>WizardMessages.getString(feature
.getName() + MISSING_SUFFIX, "<%=genClass.getName()%>");
} catch (MissingResourceException e) {
return super.getPropertyMissing(descriptor);
}
} // getPropertyMissing
/**
* @param descriptor
* @return the NLS'd text for a missing property error message
* @generated
*/
public String getPropertyInvalid(
IItemPropertyDescriptor descriptor) {
try {
final EStructuralFeature feature = (EStructuralFeature) descriptor
.getFeature(null);
return <%=genPackage.getPrefix()%>WizardMessages.getString(feature
.getName() + INVALID_SUFFIX, "<%=genClass.getName()%>");
} catch (MissingResourceException e) {
return super.getPropertyInvalid(descriptor);
}
} // getPropertyInvalid
}
}
<%genModel.emitSortedImports();%>