private static IBaseModel getModelFromEditor( PDEFormEditor openEditor, ModelModification modification) { if (openEditor == null) return null; String name = modification.getFile().getName(); IBaseModel model = null; if (name.equals(ICoreConstants.PLUGIN_FILENAME_DESCRIPTOR) || name.equals(ICoreConstants.FRAGMENT_FILENAME_DESCRIPTOR)) { model = openEditor.getAggregateModel(); if (model instanceof IBundlePluginModelBase) model = ((IBundlePluginModelBase) model).getExtensionsModel(); } else if (name.equals(ICoreConstants.BUILD_FILENAME_DESCRIPTOR)) { if (openEditor instanceof BuildEditor) { model = openEditor.getAggregateModel(); } else if (openEditor instanceof ManifestEditor) { IFormPage page = openEditor.findPage(BuildInputContext.CONTEXT_ID); if (page instanceof BuildSourcePage) model = ((BuildSourcePage) page).getInputContext().getModel(); } } else if (name.equals(ICoreConstants.MANIFEST_FILENAME)) { model = openEditor.getAggregateModel(); if (model instanceof IBundlePluginModelBase) return model; } if (model instanceof AbstractEditingModel) return model; return null; }
private void handleConvert() { try { // remove listeners of Info section before we convert. If we don't // we may get a model changed event while disposing the page. Bug 156414 fInfoSection.removeListeners(); PDEFormEditor editor = getPDEEditor(); IPluginModelBase model = (IPluginModelBase) editor.getAggregateModel(); IRunnableWithProgress op = new CreateManifestOperation(model); IProgressService service = PlatformUI.getWorkbench().getProgressService(); editor.doSave(null); service.runInUI(service, op, PDEPlugin.getWorkspace().getRoot()); updateBuildProperties(); editor.doSave(null); } catch (InvocationTargetException e) { MessageDialog.openError( PDEPlugin.getActiveWorkbenchShell(), PDEUIMessages.OverviewPage_error, e.getCause().getMessage()); // if convert failed and this OverviewPage hasn't been removed from the editor, reattach // listeners if (!fDisposed) fInfoSection.addListeners(); } catch (InterruptedException e) { // if convert failed and this OverviewPage hasn't been removed from the editor, reattach // listeners if (!fDisposed) fInfoSection.addListeners(); } }
public static IEditingModel getOpenModel(IDocument doc) { Iterator it = fOpenPDEEditors.values().iterator(); while (it.hasNext()) { ArrayList list = (ArrayList) it.next(); for (int i = 0; i < list.size(); i++) { PDEFormEditor e = (PDEFormEditor) list.get(i); IPluginModelBase model = (IPluginModelBase) e.getAggregateModel(); if (model instanceof IBundlePluginModelBase) { IBundleModel bModel = ((IBundlePluginModelBase) model).getBundleModel(); if (bModel instanceof IEditingModel && doc == ((IEditingModel) bModel).getDocument()) return (IEditingModel) bModel; ISharedExtensionsModel eModel = ((IBundlePluginModelBase) model).getExtensionsModel(); if (eModel instanceof IEditingModel && doc == ((IEditingModel) eModel).getDocument()) return (IEditingModel) eModel; } // IBuildModel bModel = model.getBuildModel(); // if (bModel instanceof IEditingModel && // doc == ((IEditingModel)bModel).getDocument()) // return (IEditingModel)bModel; if (model instanceof IEditingModel && doc == ((IEditingModel) model).getDocument()) return (IEditingModel) model; } } return null; }