Adding children to a compartment programmatically [message #87726] |
Tue, 26 December 2006 14:51  |
Eclipse User |
|
|
|
Originally posted by: mricardo.ef.pt
Hello,
Can anyone give me a hint, in how to add compartment children to a node
programmatically?
I want to be able to create a Node, with an popup action, and additionally
one child in its compartment.
The node creation, I've got, but I dont know how to create compartment
children.
The code for the Node creation is the following (inspired by mindmap):
private void getCreatePageCommand() {
CreateViewRequest pageRequest =
CreateViewRequestFactory.getCreateShapeRequest(WebviewElemen tTypes.Page_1001,
selectedElement.getDiagramPreferencesHint());
Point p = selectedElement.getFigure().getBounds().getTopRight().getCop y();
selectedElement.getFigure().translateToAbsolute(p);
int edgeCount = selectedElement.getNotationView().getSourceEdges().size();
int offset = (edgeCount * 50) - 100;
pageRequest.setLocation(p.translate(100, offset));
ViewEditPart viewEditPart = (ViewEditPart) selectedElement;
Command createPageCmd = viewEditPart.getCommand(pageRequest);
selectedElement.getDiagramEditDomain().getDiagramCommandStac k().execute(createPageCmd);
Collection newObjects = DiagramCommandStack.getReturnValues(createPageCmd);
Iterator i = newObjects.iterator();
if (i.hasNext()) {
Object obj = i.next();
Page page = (Page) ((IAdaptable) obj).getAdapter(Page.class);
final PageEditPart editPart = (PageEditPart)
selectedElement.findEditPart(selectedElement, (EObject) page);
final EditPartViewer v = editPart.getViewer();
Display.getCurrent().asyncExec(new Runnable() {
public void run() {
v.setSelection(new StructuredSelection(editPart));
Request der = new Request(RequestConstants.REQ_DIRECT_EDIT);
editPart.performRequest(der);
} });
}
}
Thanks,
--
Miguel Ricardo
EF - Tecnologias de Informa
|
|
|
|
Powered by
FUDForum. Page generated in 0.05599 seconds