Force model save [message #741389] |
Wed, 19 October 2011 13:38 |
Julien Delange Messages: 82 Registered: October 2011 |
Member |
|
|
Dear all,
I am currently making a graphiti project which is linked with my own meta model. So, when changing a property, I would like to update the value of the object from the meta model itself.
So, in the properties of my component, I have a ComboBox for the property value.
private CCombo languageValue;
Then, when building the combo box object in my code, I add a selection listener. I disable the delivering attribute in order to avoid error messages from eclipse (telling than I'm not allowed to write in this editing domain).
So, now, after invoking this piece of code and when changing the property, the property is not saved in the model. On the other hand, if I move one object on the diagram and save it again, the new property value is saved.
So, one workaround would be to force to save the model when the property value is updated or to notify eclipse that the model changed. Unfortunately, when I invoke notify() on the PictogramElement, I got the IllegalMonitorStateException.
So, there is my questions :
1. How can I indicate to force to save the model from just an object that contains a PictogramElement ?
2. Is there a possibility to force the notification of a change in the model from a PictogramElement ?
Thanks for any suggestion/comment
Best,
languageValue.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e)
{
String[] propertyValues = languageValue.getItems();
String propertyValue = propertyValues[languageValue.getSelectionIndex()];
PictogramElement pe = getSelectedPictogramElement();
Object bo = Graphiti.getLinkService().getBusinessObjectForLinkedPictogramElement(pe);
if (bo instanceof Function)
{
Function f = (Function) bo;
System.out.println("selected object " + f.getName());
System.out.println("property value " + propertyValue);
f.eSetDeliver(false);
f.setLanguage(propertyValue);
}
}
});
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.02820 seconds