[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.modeling.gmf] how can I set the location of the view in the editor without opening it?
|
I use copyToImageUtil to add a view to diagram file without opening the
file, and it works, but I can not set the location of the view in the editor
without opening the editor, how can I set the location of the view in the
editor without opening it?
((Diagram)objs[0]).insertChild(view); //add the view to the diagram file
without opening it
==============the completed code I used:
final Resource modelResource = resourceSet.getResource(
URI.createPlatformResourceURI(resourcePath
.toString()), true);
if(modelResource instanceof XMIResourceImpl){
Object[] objs = getElements(modelResource);
EObjectAdapter objAdapter = new EObjectAdapter(data);
CopyToImageUtil copyToImageUtil = new CopyToImageUtil();
diagramEditPart = copyToImageUtil.createDiagramEditPart((Diagram)
objs[0],shell,NewpmbeDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
}
CreateViewRequest.ViewDescriptor viewDescriptor = new
CreateViewRequest.ViewDescriptor(
objAdapter, Node.class, null,
NewpmbeDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
if(subDiagramEditPart != null){ //ÊÇsubDiagramµÄcmd¾ÍÔÚsubDiagramÖд´½¨£¬ÕâÊÇÔÚÄÄ´´½¨µÄΨһ±ê×¼£¡
CreateCommand command = new CreateCommand((TransactionalEditingDomain)
myEditingDomain, viewDescriptor, (View)subDiagramEditPart.getModel()) {
protected CommandResult doExecuteWithResult(
IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
CommandResult result = super.doExecuteWithResult(monitor, info);
View view = (View) ((IAdaptable) result.getReturnValue())
.getAdapter(View.class);
Object[] objs = getElements(modelResource);
((Diagram)objs[0]).insertChild(view); //add the view to the
diagram file without opening it
if( modelResource != null)
try {
modelResource.save(Collections.EMPTY_MAP);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
};
try {
OperationHistoryFactory.getOperationHistory().execute(command,
new NullProgressMonitor(), null);
} catch (ExecutionException e) {
NewpmbeDiagramEditorPlugin.getInstance().logError(
"Unable to create shortcut", e); //$NON-NLS-1$
}
}