|
|
|
|
|
|
Re: keep connections consistent [message #519608 is a reply to message #519386] |
Tue, 09 March 2010 08:11  |
Eclipse User |
|
|
|
I found my shit.
when I changed an ITEM, I did
Quote: |
public void change_item (Item old_item, Item new_item) {
BasicEList list = new BasicEList();
list.addAll(map.getHa_Item());
for (int i=0; i < list.size(); i++){
if (list.get(i) == old_item)
/* -----> */ { list.set(i, new_item) } // <---------
}
EditingDomain editingDomain = this.getEditingDomain();
EReference feature = OPUS.OPUSPackage.eINSTANCE.getMap_Ha_item();
editingDomain.getCommandStack().execute(
SetCommand.create(editingDomain, map, feature , list) );
}
|
of course list.set(i) REMOVE the element at i, and put a new one...
so is the solution create a write transaction for each attribute of an item, writing directly the new attributes? something like that
Quote: | EReference feature = XXX.XXXPackage.eINSTANCE.getItem_Ha_fornitore();
editingDomain.getCommandStack().execute(
SetCommand.create(editingDomain, item_i, feature , item_nuovo.getHa_fornitore()) );
feature = XXX.XXXPackagePackage.eINSTANCE.getItem_Ha_bom();
editingDomain.getCommandStack().execute(
SetCommand.create(editingDomain, item_i, feature , item_nuovo.getHa_bom()) );
feature = XXX.XXXPackageSPackage.eINSTANCE.getItem_Ha_path_item();
editingDomain.getCommandStack().execute(
SetCommand.create(editingDomain, item_i, feature , item_nuovo.getHa_path_item()) );
...
|
it's quite tedious..
[Updated on: Tue, 09 March 2010 08:18] by Moderator
|
|
|
Powered by
FUDForum. Page generated in 0.18421 seconds