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 boolean performFinish() { try { String perspId = selection.getAttribute("perspectiveId"); // $NON-NLS-1$ IWorkbenchPage page = PDEPlugin.getActivePage(); if (perspId != null && switchPerspective) { PlatformUI.getWorkbench().showPerspective(perspId, page.getWorkbenchWindow()); } SampleOperation op = new SampleOperation(selection, namesPage.getProjectNames(), new ImportOverwriteQuery()); getContainer().run(true, true, op); IFile sampleManifest = op.getSampleManifest(); if (selectRevealEnabled) { selectReveal(getShell()); } if (activitiesEnabled) enableActivities(); if (sampleEditorNeeded && sampleManifest != null) IDE.openEditor(page, sampleManifest, true); } catch (InvocationTargetException e) { PDEPlugin.logException(e); return false; } catch (InterruptedException e) { // PDEPlugin.logException(e); return false; } catch (CoreException e) { PDEPlugin.logException(e); return false; } catch (OperationCanceledException e) { return false; } return true; }
private void handleNewPlugin() { NewPluginProjectWizard wizard = new NewPluginProjectWizard(); wizard.init(PDEPlugin.getActiveWorkbenchWindow().getWorkbench(), null); WizardDialog dialog = new WizardDialog(PDEPlugin.getActiveWorkbenchShell(), wizard); dialog.create(); SWTUtil.setDialogSize(dialog, 400, 500); if (dialog.open() == Window.OK) { addPlugin(wizard.getPluginId(), wizard.getPluginVersion()); } }
private void createContentSection( IManagedForm managedForm, Composite parent, FormToolkit toolkit) { String sectionTitle; // if (isFragment()) { // sectionTitle = PDEUIMessages.ManifestEditor_ContentSection_ftitle; // } else { // sectionTitle = PDEUIMessages.ManifestEditor_ContentSection_title; // } sectionTitle = PDEUIMessages.MonitorEditor_ContentSection_title; Section section = createStaticSection(toolkit, parent, sectionTitle); Composite container = createStaticSectionClient(toolkit, section); FormText text = createClient( container, isFragment() ? PDEUIMessages.OverviewPage_fContent : PDEUIMessages.OverviewPage_content, toolkit); PDELabelProvider lp = PDEPlugin.getDefault().getLabelProvider(); text.setImage( "page", lp.get(PDEPluginImages.DESC_PAGE_OBJ, SharedLabelProvider.F_EDIT)); // $NON-NLS-1$ if (!isBundle() && isEditable()) { String content; if (isFragment()) { content = PDEUIMessages.OverviewPage_fOsgi; } else { content = PDEUIMessages.OverviewPage_osgi; } text = createClient(container, content, toolkit); } section.setClient(container); }
public PluginWorkingSet() { super( "page1", PDEUIMessages.PluginWorkingSet_title, PDEPluginImages.DESC_DEFCON_WIZ); // $NON-NLS-1$ PDEPlugin.getDefault().getLabelProvider().connect(this); }
protected void createFormContent(IManagedForm managedForm) { super.createFormContent(managedForm); ScrolledForm form = managedForm.getForm(); FormToolkit toolkit = managedForm.getToolkit(); if (isFragment()) { form.setImage( PDEPlugin.getDefault().getLabelProvider().get(PDEPluginImages.DESC_FRAGMENT_MF_OBJ)); } else { form.setImage( PDEPlugin.getDefault().getLabelProvider().get(PDEPluginImages.DESC_PLUGIN_MF_OBJ)); } form.setText(PDEUIMessages.MonitorEditor_OverviewPage_title); fillBody(managedForm, toolkit); PlatformUI.getWorkbench() .getHelpSystem() .setHelp(form.getBody(), IHelpContextIds.MONITOR_PLUGIN_OVERVIEW); }
private void handleAdd() { ElementListSelectionDialog dialog = new ElementListSelectionDialog( PDEPlugin.getActiveWorkbenchShell(), PDEPlugin.getDefault().getLabelProvider()); dialog.setElements(getBundles()); dialog.setTitle(PDEUIMessages.PluginSelectionDialog_title); dialog.setMessage(PDEUIMessages.PluginSelectionDialog_message); dialog.setMultipleSelection(true); if (dialog.open() == Window.OK) { Object[] bundles = dialog.getResult(); for (int i = 0; i < bundles.length; i++) { BundleDescription desc = (BundleDescription) bundles[i]; addPlugin(desc.getSymbolicName(), "0.0.0"); // $NON-NLS-1$ // addPlugin(desc.getSymbolicName(), desc.getVersion().toString()); } } }
private void handleGoToPackage(ISelection selection) { IPackageFragment frag = getPackageFragment(selection); if (frag != null) try { IViewPart part = PDEPlugin.getActivePage().showView(JavaUI.ID_PACKAGES); ShowInPackageViewAction action = new ShowInPackageViewAction(part.getSite()); action.run(frag); } catch (PartInitException e) { } }
/** The default constructor. */ public SampleWizard() { PDEPlugin.getDefault().getLabelProvider().connect(this); setDefaultPageImageDescriptor(PDEPluginImages.DESC_NEWEXP_WIZ); samples = Platform.getExtensionRegistry() .getConfigurationElementsFor("org.eclipse.pde.ui.samples"); // $NON-NLS-1$ namesPage = new ProjectNamesPage(this); lastPage = new ReviewPage(this); setNeedsProgressMonitor(true); setWindowTitle(PDEUIMessages.ShowSampleAction_title); }
private void handleProperties() { IStructuredSelection ssel = (IStructuredSelection) fPluginTable.getSelection(); if (ssel.size() == 1) { IProductPlugin plugin = (IProductPlugin) ssel.toArray()[0]; VersionDialog dialog = new VersionDialog(PDEPlugin.getActiveWorkbenchShell(), isEditable(), plugin.getVersion()); dialog.create(); SWTUtil.setDialogSize(dialog, 400, 200); if (dialog.open() == Window.OK) { plugin.setVersion(dialog.getVersion()); } } }
private void writeFile(IFile file, StringWriter swriter) { try { ByteArrayInputStream stream = new ByteArrayInputStream(swriter.toString().getBytes("UTF8")); // $NON-NLS-1$ if (file.exists()) { file.setContents(stream, false, false, null); } else { file.create(stream, false, null); } stream.close(); swriter.close(); } catch (Exception e) { PDEPlugin.logException(e); } }
private void openSchemaFile(final IFile file) { final IWorkbenchWindow ww = PDEPlugin.getActiveWorkbenchWindow(); Display d = ww.getShell().getDisplay(); d.asyncExec( new Runnable() { @Override public void run() { try { String editorId = IPDEUIConstants.SCHEMA_EDITOR_ID; ww.getActivePage().openEditor(new FileEditorInput(file), editorId); } catch (PartInitException e) { PDEPlugin.logException(e); } } }); }
/* * (non-Javadoc) * * @see org.eclipse.ui.forms.events.HyperlinkListener#linkActivated(org.eclipse.ui.forms.events.HyperlinkEvent) */ public void linkActivated(HyperlinkEvent e) { String href = (String) e.getHref(); // try page references if (href.equals("dependencies")) // $NON-NLS-1$ getEditor().setActivePage(DependenciesPage.PAGE_ID); else if (href.equals("runtime")) // $NON-NLS-1$ getEditor().setActivePage(RuntimePage.PAGE_ID); else if (href.equals("extensions")) { // $NON-NLS-1$ if (getEditor().setActivePage(ExtensionsPage.PAGE_ID) == null) activateExtensionPages(ExtensionsPage.PAGE_ID); } else if (href.equals("ex-points")) { // $NON-NLS-1$ if (getEditor().setActivePage(ExtensionPointsPage.PAGE_ID) == null) activateExtensionPages(ExtensionPointsPage.PAGE_ID); } else if (href.equals("build")) { // $NON-NLS-1$ if (!getPDEEditor().hasInputContext(BuildInputContext.CONTEXT_ID)) { if (!MessageDialog.openQuestion( PDEPlugin.getActiveWorkbenchShell(), PDEUIMessages.OverviewPage_buildTitle, PDEUIMessages.OverviewPage_buildQuestion)) return; IFile file = PDEProject.getBuildProperties(getPDEEditor().getCommonProject()); WorkspaceBuildModel model = new WorkspaceBuildModel(file); model.save(); IEditorInput in = new FileEditorInput(file); getPDEEditor() .getContextManager() .putContext(in, new BuildInputContext(getPDEEditor(), in, false)); } getEditor().setActivePage(BuildPage.PAGE_ID); } else if (href.equals("export")) { // $NON-NLS-1$ getExportAction().run(); } else if (href.equals("action.convert")) { // $NON-NLS-1$ handleConvert(); } else if (href.equals("organize")) { // $NON-NLS-1$ getEditor().doSave(null); OrganizeManifestsAction organizeAction = new OrganizeManifestsAction(); organizeAction.selectionChanged( null, new StructuredSelection(getPDEEditor().getCommonProject())); organizeAction.run(null); } else if (href.equals("externalize")) { // $NON-NLS-1$ getEditor().doSave(null); GetNonExternalizedStringsAction externalizeAction = new GetNonExternalizedStringsAction(); externalizeAction.selectionChanged( null, new StructuredSelection(getPDEEditor().getCommonProject())); externalizeAction.run(null); } else super.linkActivated(e); }
/* (non-Javadoc) * @see org.eclipse.pde.internal.ui.editor.PDESection#createClient(org.eclipse.ui.forms.widgets.Section, org.eclipse.ui.forms.widgets.FormToolkit) */ protected void createClient(Section section, FormToolkit toolkit) { section.setLayout(FormLayoutFactory.createClearGridLayout(false, 1)); GridData sectionData = new GridData(GridData.FILL_BOTH); sectionData.verticalSpan = 2; section.setLayoutData(sectionData); Composite container = createClientContainer(section, 2, toolkit); createViewerPartControl(container, SWT.MULTI, 2, toolkit); container.setLayoutData(new GridData(GridData.FILL_BOTH)); createOptionalDependenciesButton(container); TablePart tablePart = getTablePart(); fPluginTable = tablePart.getTableViewer(); fPluginTable.setContentProvider(new ContentProvider()); fPluginTable.setLabelProvider(PDEPlugin.getDefault().getLabelProvider()); fPluginTable.setComparator( new ViewerComparator() { public int compare(Viewer viewer, Object e1, Object e2) { IProductPlugin p1 = (IProductPlugin) e1; IProductPlugin p2 = (IProductPlugin) e2; return super.compare(viewer, p1.getId(), p2.getId()); } }); GridData data = (GridData) tablePart.getControl().getLayoutData(); data.minimumWidth = 200; fPluginTable.setInput(getProduct()); tablePart.setButtonEnabled(0, isEditable()); tablePart.setButtonEnabled(1, isEditable()); tablePart.setButtonEnabled(2, isEditable()); // remove buttons will be updated on refresh tablePart.setButtonEnabled(5, isEditable()); toolkit.paintBordersFor(container); section.setClient(container); section.setText(PDEUIMessages.Product_PluginSection_title); section.setDescription(PDEUIMessages.Product_PluginSection_desc); getModel().addModelChangedListener(this); createSectionToolbar(section, toolkit); }
private void activateExtensionPages(String activePageId) { MessageDialog mdiag = new MessageDialog( PDEPlugin.getActiveWorkbenchShell(), PDEUIMessages.OverviewPage_extensionPageMessageTitle, null, PDEUIMessages.OverviewPage_extensionPageMessageBody, MessageDialog.QUESTION, new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL}, 0); if (mdiag.open() != Window.OK) return; try { MonitorEditor manifestEditor = (MonitorEditor) getEditor(); manifestEditor.addExtensionTabs(); manifestEditor.setShowExtensions(true); manifestEditor.setActivePage(activePageId); } catch (PartInitException e) { } catch (BackingStoreException e) { } }
private void createExtensionSection( IManagedForm managedForm, Composite parent, FormToolkit toolkit) { String sectionTitle = PDEUIMessages.ManifestEditor_ExtensionSection_title; Section section = createStaticSection(toolkit, parent, sectionTitle); Composite container = createStaticSectionClient(toolkit, section); FormText text = createClient( container, isFragment() ? PDEUIMessages.OverviewPage_fExtensionContent : PDEUIMessages.OverviewPage_extensionContent, toolkit); PDELabelProvider lp = PDEPlugin.getDefault().getLabelProvider(); text.setImage( "page", lp.get(PDEPluginImages.DESC_PAGE_OBJ, SharedLabelProvider.F_EDIT)); // $NON-NLS-1$ section.setClient(container); }
@Override protected void createClient(Section section, FormToolkit toolkit) { section.setText(PDEUIMessages.ExportPackageSection_title); if (isFragment()) section.setDescription(PDEUIMessages.ExportPackageSection_descFragment); else section.setDescription(PDEUIMessages.ExportPackageSection_desc); Composite container = createClientContainer(section, 2, toolkit); createViewerPartControl(container, SWT.MULTI, 2, toolkit); TablePart tablePart = getTablePart(); fPackageViewer = tablePart.getTableViewer(); fPackageViewer.setContentProvider(new ExportPackageContentProvider()); fPackageViewer.setLabelProvider(PDEPlugin.getDefault().getLabelProvider()); fPackageViewer.setComparator( new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { String s1 = e1.toString(); String s2 = e2.toString(); if (s1.indexOf(" ") != -1) // $NON-NLS-1$ s1 = s1.substring(0, s1.indexOf(" ")); // $NON-NLS-1$ if (s2.indexOf(" ") != -1) // $NON-NLS-1$ s2 = s2.substring(0, s2.indexOf(" ")); // $NON-NLS-1$ return super.compare(viewer, s1, s2); } }); toolkit.paintBordersFor(container); section.setClient(container); GridData gd = new GridData(GridData.FILL_BOTH); if (((ManifestEditor) getPage().getEditor()).isEquinox()) { gd.verticalSpan = 2; gd.minimumWidth = 300; } section.setLayout(FormLayoutFactory.createClearGridLayout(false, 1)); section.setLayoutData(gd); makeActions(); IBundleModel model = getBundleModel(); fPackageViewer.setInput(model); model.addModelChangedListener(this); updateButtons(); }
private void createTestingSection( IManagedForm managedForm, Composite parent, FormToolkit toolkit) { Section section = createStaticSection(toolkit, parent, PDEUIMessages.ManifestEditor_TestingSection_title); PDELabelProvider lp = PDEPlugin.getDefault().getLabelProvider(); Composite container = createStaticSectionClient(toolkit, section); String prefixText = (!((MonitorEditor) getEditor()).showExtensionTabs()) ? PDEUIMessages.OverviewPage_OSGiTesting : isFragment() ? PDEUIMessages.OverviewPage_fTesting : PDEUIMessages.OverviewPage_testing; FormText text = createClient(container, getLauncherText(getLauncherHelper().isOSGi(), prefixText), toolkit); text.setImage("run", lp.get(PDEPluginImages.DESC_RUN_EXC)); // $NON-NLS-1$ text.setImage("debug", lp.get(PDEPluginImages.DESC_DEBUG_EXC)); // $NON-NLS-1$ text.setImage("profile", lp.get(PDEPluginImages.DESC_PROFILE_EXC)); // $NON-NLS-1$ section.setClient(container); }
private void handleAddWorkingSet() { IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager(); IWorkingSetSelectionDialog dialog = manager.createWorkingSetSelectionDialog(PDEPlugin.getActiveWorkbenchShell(), true); if (dialog.open() == Window.OK) { IWorkingSet[] workingSets = dialog.getSelection(); IProduct product = getProduct(); IProductModelFactory factory = product.getModel().getFactory(); ArrayList<IProductPlugin> pluginList = new ArrayList<IProductPlugin>(); for (int i = 0; i < workingSets.length; i++) { IAdaptable[] elements = workingSets[i].getElements(); for (int j = 0; j < elements.length; j++) { IPluginModelBase model = findModel(elements[j]); if (model != null) { IProductPlugin plugin = factory.createPlugin(); IPluginBase base = model.getPluginBase(); plugin.setId(base.getId()); pluginList.add(plugin); } } } product.addPlugins(pluginList.toArray(new IProductPlugin[pluginList.size()])); } }
class WorkingSetLabelProvider extends LabelProvider { PDEPreferencesManager pref = PDEPlugin.getDefault().getPreferenceManager(); public WorkingSetLabelProvider() { PDEPlugin.getDefault().getLabelProvider().connect(this); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object) */ public String getText(Object element) { if (element instanceof IPluginModelBase) { IPluginBase plugin = ((IPluginModelBase) element).getPluginBase(); String showType = pref.getString(IPreferenceConstants.PROP_SHOW_OBJECTS); if (showType.equals(IPreferenceConstants.VALUE_USE_IDS)) return plugin.getId(); return plugin.getTranslatedName(); } return super.getText(element); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object) */ public Image getImage(Object element) { return PDEPlugin.getDefault().getLabelProvider().getImage(element); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.LabelProvider#dispose() */ public void dispose() { super.dispose(); PDEPlugin.getDefault().getLabelProvider().disconnect(this); } }
private void handleAdd() { IPluginModelBase model = (IPluginModelBase) getPage().getModel(); final IProject project = model.getUnderlyingResource().getProject(); try { if (project.hasNature(JavaCore.NATURE_ID)) { ILabelProvider labelProvider = new JavaElementLabelProvider(); final ConditionalListSelectionDialog dialog = new ConditionalListSelectionDialog( PDEPlugin.getActiveWorkbenchShell(), labelProvider, PDEUIMessages.ExportPackageSection_dialogButtonLabel); final Collection<?> pckgs = fHeader == null ? new Vector<>() : fHeader.getPackageNames(); final boolean allowJava = "true".equals(getBundle().getHeader(ICoreConstants.ECLIPSE_JREBUNDLE)); // $NON-NLS-1$ Runnable runnable = new Runnable() { @Override public void run() { ArrayList<IPackageFragment> elements = new ArrayList<>(); ArrayList<IPackageFragment> conditional = new ArrayList<>(); IPackageFragment[] fragments = PDEJavaHelper.getPackageFragments(JavaCore.create(project), pckgs, allowJava); for (IPackageFragment fragment : fragments) { try { if (fragment.containsJavaResources()) { elements.add(fragment); } else { conditional.add(fragment); } } catch (JavaModelException e) { } } dialog.setElements(elements.toArray()); dialog.setConditionalElements(conditional.toArray()); dialog.setMultipleSelection(true); dialog.setMessage(PDEUIMessages.PackageSelectionDialog_label); dialog.setTitle(PDEUIMessages.ExportPackageSection_title); dialog.create(); PlatformUI.getWorkbench() .getHelpSystem() .setHelp(dialog.getShell(), IHelpContextIds.EXPORT_PACKAGES); SWTUtil.setDialogSize(dialog, 400, 500); } }; BusyIndicator.showWhile(Display.getCurrent(), runnable); if (dialog.open() == Window.OK) { Object[] selected = dialog.getResult(); if (fHeader != null) { for (Object selectedObject : selected) { IPackageFragment candidate = (IPackageFragment) selectedObject; fHeader.addPackage( new ExportPackageObject(fHeader, candidate, getVersionAttribute())); } } else { getBundle().setHeader(getExportedPackageHeader(), getValue(selected)); // the way events get triggered, updateButtons isn't called if (selected.length > 0) getTablePart().setButtonEnabled(CALCULATE_USE_INDEX, true); } } labelProvider.dispose(); } } catch (CoreException e) { } }
public WorkingSetLabelProvider() { PDEPlugin.getDefault().getLabelProvider().connect(this); }
public void dispose() { PDEPlugin.getDefault().getLabelProvider().disconnect(this); super.dispose(); }
/* (non-Javadoc) * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object) */ public Image getImage(Object element) { return PDEPlugin.getDefault().getLabelProvider().getImage(element); }
@Override public void createContents(Composite parent) { parent.setLayout(FormLayoutFactory.createDetailsGridLayout(false, 1)); FormToolkit toolkit = getManagedForm().getToolkit(); Section section = toolkit.createSection(parent, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR); section.clientVerticalSpacing = FormLayoutFactory.SECTION_HEADER_VERTICAL_SPACING; section.setText(PDEUIMessages.ExtensionPointDetails_title); section.setDescription(PDEUIMessages.ExtensionPointDetails_desc); section.setLayout(FormLayoutFactory.createClearGridLayout(false, 1)); section.setLayoutData( new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING)); Composite client = toolkit.createComposite(section); client.setLayout(FormLayoutFactory.createSectionClientGridLayout(false, 3)); client.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); fIdEntry = new FormEntry(client, toolkit, PDEUIMessages.ExtensionPointDetails_id, null, false); fIdEntry.setFormEntryListener( new FormEntryAdapter(this) { @Override public void textValueChanged(FormEntry entry) { if (fInput != null) { try { fInput.setId(fIdEntry.getValue()); } catch (CoreException e) { PDEPlugin.logException(e); } } } }); fNameEntry = new FormEntry(client, toolkit, PDEUIMessages.ExtensionPointDetails_name, null, false); fNameEntry.setFormEntryListener( new FormEntryAdapter(this) { @Override public void textValueChanged(FormEntry entry) { if (fInput != null) try { fInput.setName(fNameEntry.getValue()); } catch (CoreException e) { PDEPlugin.logException(e); } } }); boolean editable = getPage().getModel().isEditable(); fSchemaEntry = new FormEntry( client, toolkit, PDEUIMessages.ExtensionPointDetails_schema, PDEUIMessages.ExtensionPointDetails_browse, editable); // fSchemaEntry.setFormEntryListener( new FormEntryAdapter(this) { @Override public void textValueChanged(FormEntry entry) { if (fInput != null) { try { fInput.setSchema(fSchemaEntry.getValue()); } catch (CoreException e) { PDEPlugin.logException(e); } updateRichText(); } } @Override public void linkActivated(HyperlinkEvent e) { IProject project = getPage().getPDEEditor().getCommonProject(); if (fSchemaEntry.getValue() == null || fSchemaEntry.getValue().length() == 0) { generateSchema(); return; } IFile file = project.getFile(fSchemaEntry.getValue()); if (file.exists()) openSchemaFile(file); else generateSchema(); } @Override public void browseButtonSelected(FormEntry entry) { final IProject project = getPage().getPDEEditor().getCommonProject(); ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog( PDEPlugin.getActiveWorkbenchShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider()); dialog.setTitle( PDEUIMessages.ManifestEditor_ExtensionPointDetails_schemaLocation_title); dialog.setMessage( PDEUIMessages.ManifestEditor_ExtensionPointDetails_schemaLocation_desc); dialog.setDoubleClickSelects(false); dialog.setAllowMultiple(false); dialog.addFilter( new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parent, Object element) { if (element instanceof IFile) { String ext = ((IFile) element).getFullPath().getFileExtension(); return "exsd".equals(ext) || "mxsd".equals(ext); // $NON-NLS-1$ //$NON-NLS-2$ } else if (element instanceof IContainer) { // i.e. IProject, IFolder try { IResource[] resources = ((IContainer) element).members(); for (IResource resource : resources) { if (select(viewer, parent, resource)) return true; } } catch (CoreException e) { PDEPlugin.logException(e); } } return false; } }); dialog.setValidator( new ISelectionStatusValidator() { @Override public IStatus validate(Object[] selection) { IPluginModelBase model = (IPluginModelBase) getPage().getPDEEditor().getAggregateModel(); String pluginName = model.getPluginBase().getId(); if (selection == null || selection.length != 1 || !(selection[0] instanceof IFile)) return new Status( IStatus.ERROR, pluginName, IStatus.ERROR, PDEUIMessages.ManifestEditor_ExtensionPointDetails_validate_errorStatus, null); IFile file = (IFile) selection[0]; String ext = file.getFullPath().getFileExtension(); if ("exsd".equals(ext) || "mxsd".equals(ext)) // $NON-NLS-1$ //$NON-NLS-2$ return new Status(IStatus.OK, pluginName, IStatus.OK, "", null); // $NON-NLS-1$ return new Status( IStatus.ERROR, pluginName, IStatus.ERROR, PDEUIMessages.ManifestEditor_ExtensionPointDetails_validate_errorStatus, null); } }); dialog.setDoubleClickSelects(true); dialog.setStatusLineAboveButtons(true); dialog.setInput(project); dialog.setComparator(new ResourceComparator(ResourceComparator.NAME)); String filePath = fSchemaEntry.getValue(); if (filePath != null && filePath.length() != 0 && project.exists(new Path(filePath))) dialog.setInitialSelection(project.getFile(new Path(filePath))); else dialog.setInitialSelection(null); dialog.create(); PlatformUI.getWorkbench() .getHelpSystem() .setHelp(dialog.getShell(), IHelpContextIds.BROWSE_EXTENSION_POINTS_SCHEMAS); if (dialog.open() == Window.OK) { Object[] elements = dialog.getResult(); if (elements.length > 0) { IResource elem = (IResource) elements[0]; fSchemaEntry.setValue(elem.getProjectRelativePath().toString()); } } } }); createSpacer(toolkit, client, 2); Composite container = toolkit.createComposite(parent, SWT.NONE); container.setLayout(FormLayoutFactory.createSectionClientGridLayout(false, 1)); container.setLayoutData( new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING)); fRichText = toolkit.createFormText(container, true); fRichText.setImage( "open", PDEPlugin.getDefault() .getLabelProvider() .get( //$NON-NLS-1$ PDEPluginImages.DESC_SCHEMA_OBJ)); fRichText.setImage( "desc", PDEPlugin.getDefault() .getLabelProvider() .get( //$NON-NLS-1$ PDEPluginImages.DESC_DOC_SECTION_OBJ)); fRichText.setImage( "search", PDEPlugin.getDefault() .getLabelProvider() .get( //$NON-NLS-1$ PDEPluginImages.DESC_PSEARCH_OBJ)); fRichText.addHyperlinkListener( new HyperlinkAdapter() { @Override public void linkActivated(HyperlinkEvent e) { IBaseModel model = getPage().getPDEEditor().getAggregateModel(); String pointID = null; IPluginBase base = ((IPluginModelBase) model).getPluginBase(); String pluginID = base.getId(); String schemaVersion = base.getSchemaVersion(); if (schemaVersion != null && Double.parseDouble(schemaVersion) >= 3.2) { if (fInput.getId().indexOf('.') != -1) pointID = fInput.getId(); } if (pointID == null) pointID = pluginID + "." + fInput.getId(); // $NON-NLS-1$ IPluginExtensionPoint extPoint = PDECore.getDefault().getExtensionsRegistry().findExtensionPoint(pointID); if (e.getHref().equals("search")) { // $NON-NLS-1$ new FindReferencesAction(fInput, pluginID).run(); } else if (e.getHref().equals("open")) { // $NON-NLS-1$ if (extPoint == null) { IProject project = getPage().getPDEEditor().getCommonProject(); IFile file = project.getFile(fSchemaEntry.getValue()); if (file.exists()) openSchemaFile(file); else generateSchema(); return; } OpenSchemaAction action = new OpenSchemaAction(); action.setInput(pointID); action.setEnabled(true); action.run(); } else { if (extPoint == null) { IProject project = getPage().getPDEEditor().getCommonProject(); IFile file = project.getFile(fSchemaEntry.getValue()); URL url; try { url = file.getLocationURI().toURL(); } catch (MalformedURLException e1) { return; } SchemaDescriptor schemaDesc = new SchemaDescriptor(pointID, url); Schema schema = new Schema(schemaDesc, url, false); schema.setPluginId(pluginID); schema.setPointId(fInput.getId()); schema.setName(fNameEntry.getValue()); new ShowDescriptionAction(schema).run(); return; } new ShowDescriptionAction(pointID).run(); } } }); fIdEntry.setEditable(isEditable()); fNameEntry.setEditable(isEditable()); fSchemaEntry.setEditable(isEditable()); toolkit.paintBordersFor(client); section.setClient(client); IPluginModelBase model = (IPluginModelBase) getPage().getModel(); model.addModelChangedListener(this); markDetailsPart(section); }