package org.xmind.ui.internal.e4models;
import java.util.Map;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.model.application.descriptor.basic.MPartDescriptor;
import org.eclipse.e4.ui.workbench.modeling.EModelService;
public class LocalImageProcessor {
private static final String CONTRIBUTION_URI = "bundleclass://org.xmind.ui.mindmap/org.xmind.ui.internal.e4models.LocalImageModelPage"; //$NON-NLS-1$
@Execute
public void execute(MApplication application, EModelService modelService) {
MPartDescriptor partDescriptor = null;
for (MPartDescriptor mp : application.getDescriptors()) {
if (ImagePart.PART_ID.equals(mp.getElementId())) {
partDescriptor = mp;
break;
}
}
if (partDescriptor == null)
return;
// Model Pages
Map<String, String> persistedState = partDescriptor.getPersistedState();
String lastUris = persistedState
.get(MultiPageModelPart.PERSISTED_STATE_PAGES_CONTRIBUTIONURI);
String newUris = (lastUris == null || lastUris.equals("")) //$NON-NLS-1$
? CONTRIBUTION_URI : lastUris + "," + CONTRIBUTION_URI; //$NON-NLS-1$
persistedState.put(
MultiPageModelPart.PERSISTED_STATE_PAGES_CONTRIBUTIONURI,
newUris);
}
}