Skip to content

Commit

Permalink
Fix #398 Cardinialities issue on Property and Port
Browse files Browse the repository at this point in the history
  • Loading branch information
mbats committed Apr 16, 2014
1 parent 355a2f5 commit b0d7078
Show file tree
Hide file tree
Showing 5 changed files with 129 additions and 54 deletions.
18 changes: 9 additions & 9 deletions plugins/org.obeonetwork.dsl.uml2.properties/model/all.components
Original file line number Diff line number Diff line change
Expand Up @@ -213,11 +213,11 @@
<properties xsi:type="eef-components:PropertiesEditionElement" xmi:id="_nh7BYFv_EeKZBNASYbV97A" name="aggregation" views="_Afmm8FwAEeKZBNASYbV97A">
<model xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property/aggregation"/>
</properties>
<properties xsi:type="eef-components:PropertiesEditionElement" xmi:id="_rw3HAFv_EeKZBNASYbV97A" name="upperValue" views="_DxkG8FwAEeKZBNASYbV97A">
<model xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//MultiplicityElement/upperValue"/>
</properties>
<properties xsi:type="eef-components:PropertiesEditionElement" xmi:id="_uCzUcFv_EeKZBNASYbV97A" name="lowerValue" views="_FkJe4FwAEeKZBNASYbV97A">
<model xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//MultiplicityElement/lowerValue"/>
<model xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//MultiplicityElement/lower"/>
</properties>
<properties xsi:type="eef-components:PropertiesEditionElement" xmi:id="_rw3HAFv_EeKZBNASYbV97A" name="upperValue" views="_DxkG8FwAEeKZBNASYbV97A">
<model xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//MultiplicityElement/upper"/>
</properties>
<properties xsi:type="eef-components:PropertiesEditionElement" xmi:id="_wZBk8Fv_EeKZBNASYbV97A" name="defaultValue" views="_GfgT4FwAEeKZBNASYbV97A">
<model xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property/default"/>
Expand Down Expand Up @@ -381,14 +381,14 @@
<properties xsi:type="eef-components:PropertiesEditionElement" xmi:id="_ts0ZOlwGEeKZBNASYbV97A" name="type" views="_tYLxgFv8EeKZBNASYbV97A">
<model xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//TypedElement/type"/>
</properties>
<properties xsi:type="eef-components:PropertiesEditionElement" xmi:id="_ts0ZO1wGEeKZBNASYbV97A" name="upperValue" views="_DxkG8FwAEeKZBNASYbV97A">
<model xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//MultiplicityElement/upperValue"/>
</properties>
<properties xsi:type="eef-components:PropertiesEditionElement" xmi:id="_ts0ZPFwGEeKZBNASYbV97A" name="lowerValue" views="_FkJe4FwAEeKZBNASYbV97A">
<model xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//MultiplicityElement/lowerValue"/>
<model xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//MultiplicityElement/lower"/>
</properties>
<properties xsi:type="eef-components:PropertiesEditionElement" xmi:id="_ts0ZO1wGEeKZBNASYbV97A" name="upperValue" views="_DxkG8FwAEeKZBNASYbV97A">
<model xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//MultiplicityElement/upper"/>
</properties>
<properties xsi:type="eef-components:PropertiesEditionElement" xmi:id="_ts0ZPVwGEeKZBNASYbV97A" name="defaultValue" views="_GfgT4FwAEeKZBNASYbV97A">
<model xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property/defaultValue"/>
<model xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property/default"/>
</properties>
<properties xsi:type="eef-components:PropertiesEditionElement" xmi:id="_JZ0EsFwHEeKZBNASYbV97A" name="behavior" views="_PvtPwFwHEeKZBNASYbV97A">
<model xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port/isBehavior"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@
*******************************************************************************/
package org.obeonetwork.dsl.uml2.properties.uml.components;

import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.VisibilityKind;

import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.BasicDiagnostic;
import org.eclipse.emf.common.util.Diagnostic;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,17 @@ public void initPart(Object key, int kind, EObject elt, ResourceSet allResource)
// set the button mode
generalPart.setTypeButtonMode(ButtonsModeEnum.BROWSE);
}
// FIXME NO VALID CASE INTO template public updater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) in widgetControl.mtl module, with the values : upperValue, General, Port.
// FIXME NO VALID CASE INTO template public updater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) in widgetControl.mtl module, with the values : lowerValue, General, Port.
// FIXME NO VALID CASE INTO template public updater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) in widgetControl.mtl module, with the values : defaultValue, General, Port.
if (isAccessible(UmlViewsRepository.General.lowerValue)) {
generalPart.setLowerValue(EEFConverterUtil.convertToString(TypesPackage.Literals.INTEGER, port.getLower()));
}

if (isAccessible(UmlViewsRepository.General.upperValue)) {
generalPart.setUpperValue(EEFConverterUtil.convertToString(TypesPackage.Literals.UNLIMITED_NATURAL, port.getUpper()));
}

if (isAccessible(UmlViewsRepository.General.defaultValue))
generalPart.setDefaultValue(EEFConverterUtil.convertToString(TypesPackage.Literals.STRING, port.getDefault()));

generalPart.setBehavior(port.isBehavior());

generalPart.setService(port.isService());
Expand All @@ -159,9 +167,9 @@ public void initPart(Object key, int kind, EObject elt, ResourceSet allResource)



// FIXME NO VALID CASE INTO template public filterUpdater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) in widgetControl.mtl module, with the values : upperValue, General, Port.
// FIXME NO VALID CASE INTO template public filterUpdater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) in widgetControl.mtl module, with the values : lowerValue, General, Port.
// FIXME NO VALID CASE INTO template public filterUpdater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) in widgetControl.mtl module, with the values : defaultValue, General, Port.





// init values for referenced views
Expand Down Expand Up @@ -228,14 +236,14 @@ public EStructuralFeature associatedFeature(Object editorKey) {
if (editorKey == UmlViewsRepository.General.type) {
return UMLPackage.eINSTANCE.getTypedElement_Type();
}
if (editorKey == UmlViewsRepository.General.upperValue) {
return UMLPackage.eINSTANCE.getMultiplicityElement_UpperValue();
}
if (editorKey == UmlViewsRepository.General.lowerValue) {
return UMLPackage.eINSTANCE.getMultiplicityElement_LowerValue();
return UMLPackage.eINSTANCE.getMultiplicityElement_Lower();
}
if (editorKey == UmlViewsRepository.General.upperValue) {
return UMLPackage.eINSTANCE.getMultiplicityElement_Upper();
}
if (editorKey == UmlViewsRepository.General.defaultValue) {
return UMLPackage.eINSTANCE.getProperty_DefaultValue();
return UMLPackage.eINSTANCE.getProperty_Default();
}
if (editorKey == UmlViewsRepository.General.Qualifiers.behavior) {
return UMLPackage.eINSTANCE.getPort_IsBehavior();
Expand Down Expand Up @@ -291,14 +299,14 @@ public void updateSemanticModel(final IPropertiesEditionEvent event) {
}
}
}
if (UmlViewsRepository.General.upperValue == event.getAffectedEditor()) {
// FIXME INVALID CASE you must override the template 'declareEObjectUpdater' for the case : upperValue, General, Port.
}
if (UmlViewsRepository.General.lowerValue == event.getAffectedEditor()) {
// FIXME INVALID CASE you must override the template 'declareEObjectUpdater' for the case : lowerValue, General, Port.
port.setLower((EEFConverterUtil.createIntFromString(TypesPackage.Literals.INTEGER, (String)event.getNewValue())));
}
if (UmlViewsRepository.General.upperValue == event.getAffectedEditor()) {
port.setUpper((EEFConverterUtil.createIntFromString(TypesPackage.Literals.UNLIMITED_NATURAL, (String)event.getNewValue())));
}
if (UmlViewsRepository.General.defaultValue == event.getAffectedEditor()) {
// FIXME INVALID CASE you must override the template 'declareEObjectUpdater' for the case : defaultValue, General, Port.
port.setDefault((java.lang.String)EEFConverterUtil.createFromString(TypesPackage.Literals.STRING, (String)event.getNewValue()));
}
if (UmlViewsRepository.General.Qualifiers.behavior == event.getAffectedEditor()) {
port.setIsBehavior((Boolean)event.getNewValue());
Expand Down Expand Up @@ -352,9 +360,27 @@ public void updatePart(Notification msg) {

if (UMLPackage.eINSTANCE.getTypedElement_Type().equals(msg.getFeature()) && generalPart != null && isAccessible(UmlViewsRepository.General.type))
generalPart.setType((EObject)msg.getNewValue());
// FIXME INVALID CASE INTO template public liveUpdater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) in widgetControl.mtl module, with the values : upperValue, General, Port.
// FIXME INVALID CASE INTO template public liveUpdater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) in widgetControl.mtl module, with the values : lowerValue, General, Port.
// FIXME INVALID CASE INTO template public liveUpdater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) in widgetControl.mtl module, with the values : defaultValue, General, Port.
if (UMLPackage.eINSTANCE.getMultiplicityElement_Lower().equals(msg.getFeature()) && msg.getNotifier().equals(semanticObject) && generalPart != null && isAccessible(UmlViewsRepository.General.lowerValue)) {
if (msg.getNewValue() != null) {
generalPart.setLowerValue(EcoreUtil.convertToString(TypesPackage.Literals.INTEGER, msg.getNewValue()));
} else {
generalPart.setLowerValue("");
}
}
if (UMLPackage.eINSTANCE.getMultiplicityElement_Upper().equals(msg.getFeature()) && msg.getNotifier().equals(semanticObject) && generalPart != null && isAccessible(UmlViewsRepository.General.upperValue)) {
if (msg.getNewValue() != null) {
generalPart.setUpperValue(EcoreUtil.convertToString(TypesPackage.Literals.UNLIMITED_NATURAL, msg.getNewValue()));
} else {
generalPart.setUpperValue("");
}
}
if (UMLPackage.eINSTANCE.getProperty_Default().equals(msg.getFeature()) && msg.getNotifier().equals(semanticObject) && generalPart != null && isAccessible(UmlViewsRepository.General.defaultValue)) {
if (msg.getNewValue() != null) {
generalPart.setDefaultValue(EcoreUtil.convertToString(TypesPackage.Literals.STRING, msg.getNewValue()));
} else {
generalPart.setDefaultValue("");
}
}
if (UMLPackage.eINSTANCE.getPort_IsBehavior().equals(msg.getFeature()) && msg.getNotifier().equals(semanticObject) && generalPart != null && isAccessible(UmlViewsRepository.General.Qualifiers.behavior))
generalPart.setBehavior((Boolean)msg.getNewValue());

Expand Down Expand Up @@ -384,9 +410,9 @@ protected NotificationFilter[] getNotificationFilters() {
UMLPackage.eINSTANCE.getProperty_IsDerivedUnion(),
UMLPackage.eINSTANCE.getProperty_Aggregation(),
UMLPackage.eINSTANCE.getTypedElement_Type(),
UMLPackage.eINSTANCE.getMultiplicityElement_UpperValue(),
UMLPackage.eINSTANCE.getMultiplicityElement_LowerValue(),
UMLPackage.eINSTANCE.getProperty_DefaultValue(),
UMLPackage.eINSTANCE.getMultiplicityElement_Lower(),
UMLPackage.eINSTANCE.getMultiplicityElement_Upper(),
UMLPackage.eINSTANCE.getProperty_Default(),
UMLPackage.eINSTANCE.getPort_IsBehavior(),
UMLPackage.eINSTANCE.getPort_IsService() );
return new NotificationFilter[] {filter,};
Expand All @@ -397,7 +423,7 @@ protected NotificationFilter[] getNotificationFilters() {
* @see org.eclipse.emf.eef.runtime.impl.components.StandardPropertiesEditionComponent#mustBeComposed(java.lang.Object, int)
*/
public boolean mustBeComposed(Object key, int kind) {
return key == UmlViewsRepository.General.name || key == UmlViewsRepository.General.visibility || key == UmlViewsRepository.General.Qualifiers.static_ || key == UmlViewsRepository.General.Qualifiers.leaf || key == UmlViewsRepository.General.Qualifiers.ordered || key == UmlViewsRepository.General.Qualifiers.unique || key == UmlViewsRepository.General.Qualifiers.readOnly || key == UmlViewsRepository.General.Qualifiers.derived || key == UmlViewsRepository.General.Qualifiers.derivedUnion || key == UmlViewsRepository.General.aggregation || key == UmlViewsRepository.General.type || key == UmlViewsRepository.General.upperValue || key == UmlViewsRepository.General.lowerValue || key == UmlViewsRepository.General.defaultValue || key == UmlViewsRepository.General.Qualifiers.behavior || key == UmlViewsRepository.General.Qualifiers.service || key == UmlViewsRepository.General.Qualifiers.class;
return key == UmlViewsRepository.General.name || key == UmlViewsRepository.General.visibility || key == UmlViewsRepository.General.Qualifiers.static_ || key == UmlViewsRepository.General.Qualifiers.leaf || key == UmlViewsRepository.General.Qualifiers.ordered || key == UmlViewsRepository.General.Qualifiers.unique || key == UmlViewsRepository.General.Qualifiers.readOnly || key == UmlViewsRepository.General.Qualifiers.derived || key == UmlViewsRepository.General.Qualifiers.derivedUnion || key == UmlViewsRepository.General.aggregation || key == UmlViewsRepository.General.type || key == UmlViewsRepository.General.lowerValue || key == UmlViewsRepository.General.upperValue || key == UmlViewsRepository.General.defaultValue || key == UmlViewsRepository.General.Qualifiers.behavior || key == UmlViewsRepository.General.Qualifiers.service || key == UmlViewsRepository.General.Qualifiers.class;
}

/**
Expand Down Expand Up @@ -490,6 +516,27 @@ public Diagnostic validateValue(IPropertiesEditionEvent event) {
}
ret = Diagnostician.INSTANCE.validate(UMLPackage.eINSTANCE.getProperty_Aggregation().getEAttributeType(), newValue);
}
if (UmlViewsRepository.General.lowerValue == event.getAffectedEditor()) {
Object newValue = event.getNewValue();
if (newValue instanceof String) {
newValue = EEFConverterUtil.createFromString(UMLPackage.eINSTANCE.getMultiplicityElement_Lower().getEAttributeType(), (String)newValue);
}
ret = Diagnostician.INSTANCE.validate(UMLPackage.eINSTANCE.getMultiplicityElement_Lower().getEAttributeType(), newValue);
}
if (UmlViewsRepository.General.upperValue == event.getAffectedEditor()) {
Object newValue = event.getNewValue();
if (newValue instanceof String) {
newValue = EEFConverterUtil.createFromString(UMLPackage.eINSTANCE.getMultiplicityElement_Upper().getEAttributeType(), (String)newValue);
}
ret = Diagnostician.INSTANCE.validate(UMLPackage.eINSTANCE.getMultiplicityElement_Upper().getEAttributeType(), newValue);
}
if (UmlViewsRepository.General.defaultValue == event.getAffectedEditor()) {
Object newValue = event.getNewValue();
if (newValue instanceof String) {
newValue = EEFConverterUtil.createFromString(UMLPackage.eINSTANCE.getProperty_Default().getEAttributeType(), (String)newValue);
}
ret = Diagnostician.INSTANCE.validate(UMLPackage.eINSTANCE.getProperty_Default().getEAttributeType(), newValue);
}
if (UmlViewsRepository.General.Qualifiers.behavior == event.getAffectedEditor()) {
Object newValue = event.getNewValue();
if (newValue instanceof String) {
Expand Down
Loading

0 comments on commit b0d7078

Please sign in to comment.