public void displayMyObject(MyObject myObject) {
MPartStack stack = (MPartStack) modelService.find(
"myParts.partstack.editors", app);
if (objectIsOpen(myObject.getID(), stack))
return;
MInputPart part = MBasicFactory.INSTANCE.createInputPart();
part.setContributionURI("bundleclass://ui.parts.MyObjectEditor");
stack.getChildren().add(part);
partService.showPart(part, PartState.ACTIVATE);
((MyObjectEditor) part.getObject()).setViewerContent(myObject);
}
private boolean objectIsOpen(UUID iD, MPartStack stack) {
Iterator<MStackElement> iter = stack.getChildren().iterator();
while (iter.hasNext()) {
Object obj = iter.next();
if (obj instanceof MInputPart) {
MInputPart part = (MInputPart) obj;
if (part.getObject() instanceof MyObjectEditor) {
MyObjectEditor viewer = (MyObjectEditor) part.getObject();
if (viewer.getDisplayedItemId().equals(iD)) {
partService.showPart(part, PartState.ACTIVATE);
return true;
}
}
}
}
return false;
}