}
private void partOpened(WorkbenchPartReference ref) {
Assert.isNotNull(ref);
IWorkbenchPart actualPart = ref.getPart(false);
// We're firing the event that says "the part was just created"... so
// there better be a part there.
Assert.isNotNull(actualPart);
// Must be called after the part is inserted into the part list
// Assert.isTrue(parts.contains(ref));
// The active part must be opened before it is activated, so we should
// never get an
// open event for a part that is already active. (This either indicates
// that a redundant
// open event was fired or that a closed part was somehow activated)
Assert.isTrue(activePartReference != ref);
// The active editor must be opened before it is activated, so we should
// never get an
// open event for an editor that is already active. (This either
// indicates that a redundant
// open event was fired or that a closed editor was somehow activated)
Assert.isTrue(activeEditorReference != ref);
SaveablesList modelManager = (SaveablesList) actualPart
.getSite().getService(ISaveablesLifecycleListener.class);
modelManager.postOpen(actualPart);
// Fire the "part opened" event
firePartOpened(ref);