[SOLVED] Create child nodes automatically when parent is created [message #787320] |
Tue, 31 January 2012 07:55  |
Eclipse User |
|
|
|
Hello,
I want to create automatically a child node 'Trigger' when I define a node 'task', so I customized my TaskCreateCommand as follows:
/**
* @generated NOT
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
IAdaptable info) throws ExecutionException {
GioLike.Task newElement = GioLike.GioLikeFactory.eINSTANCE.createTask();
GioLike.FIMode childHolder = (GioLike.FIMode) getElementToEdit();
childHolder.getTasks().add(newElement);
//custom code:
GioLike.Trigger newTrigger = GioLike.GioLikeFactory.eINSTANCE.createTrigger();
newElement.setTrigger(newTrigger);
doConfigure(newElement, monitor, info);
((CreateElementRequest) getRequest()).setNewElement(newElement);
return CommandResult.newOKCommandResult(newElement);
}
In principle it seems to work , because it creates the trigger inside the Task. However, when I save the diagram the trigger is not saved, so when I close and open the diagram it has dissapeared.
Does anybody know what am I doing wrong?
[Updated on: Wed, 01 February 2012 08:07] by Moderator
|
|
|
Re: Create child nodes automatically when parent is created [message #787368 is a reply to message #787320] |
Tue, 31 January 2012 08:56   |
Eclipse User |
|
|
|
Iban,
Comments below.
On 31/01/2012 1:55 PM, Iban Mising name wrote:
> Hello,
>
> I want to create automatically a child node 'Trigger' when I define a
> node 'task', so I customized my TaskCreateCommand as follows:
>
> /**
> * @generated NOT
> */
> protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
> IAdaptable info) throws ExecutionException {
> GioLike.Task newElement =
> GioLike.GioLikeFactory.eINSTANCE.createTask();
Are you using GioLike as an EPackage name? Using upper case letters in
package names is a bad idea.
>
> GioLike.FIMode childHolder = (GioLike.FIMode) getElementToEdit();
> childHolder.getTasks().add(newElement);
>
> //custom code:
> GioLike.Trigger newTrigger =
> GioLike.GioLikeFactory.eINSTANCE.createTrigger();
> newElement.setTrigger(newTrigger);
Is the Task.trigger a containment reference? This Trigger instance
will need to be contained somewhere if not here.
>
> doConfigure(newElement, monitor, info);
>
> ((CreateElementRequest) getRequest()).setNewElement(newElement);
> return CommandResult.newOKCommandResult(newElement);
> }
>
> In principle it seems to work , because it creates the trigger inside
> the Task. However, when I save the diagram the trigger is not saved,
> so when I close and open the diagram it has dissapeared.
>
> Does anybody know what am I doing wrong?
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04124 seconds