Hi, I’m trying to create a MoveNode, and I want to remove the auto inserted waypoint, but the remove opeartion always returns false. Here is the code:
public void createTree() { ProgramModel model = programAPI.getProgramModel(); ProgramNodeFactory nf = model.getProgramNodeFactory(); TreeNode root = model.getRootTreeNode(this); try { TreeNode treeNode = root.addChild(nf.createMoveNode()); treeNode.removeChild(treeNode.getChildren().get(0)); } catch (TreeStructureException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Funny fact…
If I use the method above called createTree() in the constructor in the contribution class:
public MyappProgramNodeContribution(MyAppProgramNodeView view, DataModel model, ProgramAPIProvider apiProvider, CreationContext context) {
this.view = view;
this.model = model;
this.programAPI = apiProvider.getProgramAPI();if (context.getNodeCreationType() == CreationContext.NodeCreationType.NEW) { createTree(); }
It will not delete anything at all with removeChild…
However if I place the code from createTree in the view, such as:
@Override
public void openView() {
ProgramModel model = programAPI.getProgramModel();
TreeNode root = model.getRootTreeNode(this);
if(root.getChildren().size() <=0)
createTree();
}
It works like a charm!
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.