Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 112344 Details for
Bug 246875
[About] allow for an extensible About dialog
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Patch against workbench/ui
246875-1.txt (text/plain), 22.86 KB, created by
Kim Horne
on 2008-09-11 15:20:11 EDT
(
hide
)
Description:
Patch against workbench/ui
Filename:
MIME Type:
Creator:
Kim Horne
Created:
2008-09-11 15:20:11 EDT
Size:
22.86 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ui.workbench >Index: Eclipse UI/org/eclipse/ui/menus/CommandContributionItem.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/menus/CommandContributionItem.java,v >retrieving revision 1.46 >diff -u -r1.46 CommandContributionItem.java >--- Eclipse UI/org/eclipse/ui/menus/CommandContributionItem.java 29 May 2008 14:45:18 -0000 1.46 >+++ Eclipse UI/org/eclipse/ui/menus/CommandContributionItem.java 11 Sep 2008 19:14:33 -0000 >@@ -31,6 +31,8 @@ > import org.eclipse.jface.resource.LocalResourceManager; > import org.eclipse.swt.SWT; > import org.eclipse.swt.graphics.Point; >+import org.eclipse.swt.widgets.Button; >+import org.eclipse.swt.widgets.Composite; > import org.eclipse.swt.widgets.Display; > import org.eclipse.swt.widgets.Event; > import org.eclipse.swt.widgets.Listener; >@@ -398,6 +400,35 @@ > update(null); > updateIcons(); > } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.jface.action.ContributionItem#fill(org.eclipse.swt.widgets.Composite) >+ */ >+ public void fill(Composite parent) { >+ if (command == null) { >+ return; >+ } >+ if (widget != null || parent == null) { >+ return; >+ } >+ >+ // Buttons don't support the pulldown style >+ int tmpStyle = style; >+ if (tmpStyle == STYLE_PULLDOWN) >+ tmpStyle = STYLE_PUSH; >+ >+ Button item = new Button(parent, tmpStyle); >+ item.setData(this); >+ if (workbenchHelpSystem != null) { >+ workbenchHelpSystem.setHelp(item, helpContextId); >+ } >+ item.addListener(SWT.Dispose, getItemListener()); >+ item.addListener(SWT.Selection, getItemListener()); >+ widget = item; >+ >+ update(null); >+ updateIcons(); >+ } > > /* > * (non-Javadoc) >@@ -524,6 +555,42 @@ > item.setEnabled(shouldBeEnabled); > } > } >+ else if (widget instanceof Button) { >+ Button item = (Button) widget; >+ >+ String text = label; >+ if (text == null) { >+ if (command != null) { >+ try { >+ text = command.getCommand().getName(); >+ } catch (NotDefinedException e) { >+ WorkbenchPlugin.log("Update item failed " //$NON-NLS-1$ >+ + getId(), e); >+ } >+ } >+ } >+ >+ if (text != null) { >+ item.setText(text); >+ } >+ >+ if (tooltip != null) >+ item.setToolTipText(tooltip); >+ else { >+ if (text != null) { >+ item.setToolTipText(text); >+ } >+ } >+ >+ if (item.getSelection() != checkedState) { >+ item.setSelection(checkedState); >+ } >+ >+ boolean shouldBeEnabled = isEnabled(); >+ if (item.getEnabled() != shouldBeEnabled) { >+ item.setEnabled(shouldBeEnabled); >+ } >+ } > } > } > >Index: Eclipse UI/org/eclipse/ui/about/InstallationPage.java >=================================================================== >RCS file: Eclipse UI/org/eclipse/ui/about/InstallationPage.java >diff -N Eclipse UI/org/eclipse/ui/about/InstallationPage.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ Eclipse UI/org/eclipse/ui/about/InstallationPage.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,20 @@ >+package org.eclipse.ui.about; >+ >+import org.eclipse.jface.dialogs.DialogPage; >+import org.eclipse.ui.services.IServiceLocator; >+ >+/** >+ * An installation dialog page. >+ * >+ * The counterpart, {@link IInstallationPageContainer}, may be accessed by the >+ * page (via the provided service locator) to update the status message in the >+ * hosting dialog. >+ * >+ * <em>This API is experiemental and will change before 3.5 ships</em> >+ * >+ * @since 3.5 >+ */ >+public abstract class InstallationPage extends DialogPage { >+ >+ public abstract void init(IServiceLocator locator); >+} >Index: Eclipse UI/org/eclipse/ui/internal/about/InstallationDialog.java >=================================================================== >RCS file: Eclipse UI/org/eclipse/ui/internal/about/InstallationDialog.java >diff -N Eclipse UI/org/eclipse/ui/internal/about/InstallationDialog.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ Eclipse UI/org/eclipse/ui/internal/about/InstallationDialog.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,318 @@ >+/******************************************************************************* >+ * Copyright (c) 2008 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ ******************************************************************************/ >+ >+package org.eclipse.ui.internal.about; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IConfigurationElement; >+import org.eclipse.core.runtime.IExtensionPoint; >+import org.eclipse.core.runtime.Platform; >+import org.eclipse.jface.action.ContributionManager; >+import org.eclipse.jface.action.IContributionItem; >+import org.eclipse.jface.action.ToolBarManager; >+import org.eclipse.jface.dialogs.Dialog; >+import org.eclipse.jface.dialogs.IDialogConstants; >+import org.eclipse.jface.resource.ColorRegistry; >+import org.eclipse.jface.resource.JFaceResources; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.custom.CTabFolder; >+import org.eclipse.swt.custom.CTabItem; >+import org.eclipse.swt.events.DisposeEvent; >+import org.eclipse.swt.events.DisposeListener; >+import org.eclipse.swt.events.SelectionAdapter; >+import org.eclipse.swt.events.SelectionEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.layout.FillLayout; >+import org.eclipse.swt.layout.GridData; >+import org.eclipse.swt.layout.GridLayout; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.swt.widgets.Control; >+import org.eclipse.swt.widgets.Label; >+import org.eclipse.swt.widgets.Shell; >+import org.eclipse.swt.widgets.ToolBar; >+import org.eclipse.ui.IWorkbenchPreferenceConstants; >+import org.eclipse.ui.PlatformUI; >+import org.eclipse.ui.about.IInstallationPageContainer; >+import org.eclipse.ui.about.InstallationPage; >+import org.eclipse.ui.internal.IWorkbenchThemeConstants; >+import org.eclipse.ui.internal.menus.InternalMenuService; >+import org.eclipse.ui.internal.menus.SlaveMenuService; >+import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants; >+import org.eclipse.ui.menus.IMenuService; >+import org.eclipse.ui.services.IServiceLocator; >+ >+/** >+ * @since 3.5 >+ * >+ */ >+public class InstallationDialog extends Dialog { >+ private static final String ID = "ID"; //$NON-NLS-1$ >+ >+ private CTabFolder folder; >+ private IServiceLocator serviceLocator; >+ private ToolBarManager toolbarManager; >+ private ButtonManager buttonManager; >+ private IMenuService menuService = null; >+ >+ /** >+ * @param parentShell >+ */ >+ protected InstallationDialog(Shell parentShell, IServiceLocator locator) { >+ super(parentShell); >+ this.serviceLocator = locator; >+ menuService = new SlaveMenuService((InternalMenuService) serviceLocator >+ .getService(IMenuService.class), serviceLocator, null); >+ >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see >+ * org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets >+ * .Shell) >+ */ >+ protected void configureShell(Shell newShell) { >+ super.configureShell(newShell); >+ newShell.setSize(600, 768); >+ >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see >+ * org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets >+ * .Composite) >+ */ >+ protected Control createDialogArea(Composite parent) { >+ Composite composite = (Composite) super.createDialogArea(parent); >+ >+ createToolbar(composite); >+ >+ folder = new CTabFolder(composite, SWT.MULTI | SWT.BORDER); >+ configureFolder(); >+ GridData folderData = new GridData(SWT.FILL, SWT.FILL, true, true); >+ folderData.widthHint = SWT.DEFAULT; >+ folderData.heightHint = SWT.DEFAULT; >+ folder.setLayoutData(folderData); >+ >+ IConfigurationElement[] elements = loadElements(); >+ for (int i = 0; i < elements.length; i++) { >+ IConfigurationElement element = elements[i]; >+ CTabItem item = new CTabItem(folder, SWT.NONE); >+ item.setText(element >+ .getAttribute(IWorkbenchRegistryConstants.ATT_NAME)); >+ item.setData(element); >+ Composite control = new Composite(folder, SWT.BORDER); >+ control.setLayout(new FillLayout()); >+ item.setControl(control); >+ >+ } >+ folder.addSelectionListener(createFolderSelectionListener()); >+ return composite; >+ } >+ >+ private SelectionAdapter createFolderSelectionListener() { >+ return new SelectionAdapter() { >+ >+ public void widgetSelected(SelectionEvent e) { >+ final CTabItem item = (CTabItem) e.item; >+ String id = null; >+ if (item.getData() instanceof IConfigurationElement) { >+ final IConfigurationElement element = (IConfigurationElement) item >+ .getData(); >+ >+ id = element >+ .getAttribute(IWorkbenchRegistryConstants.ATT_ID); >+ item.setData(ID, id); >+ >+ Composite pageComposite = (Composite) item.getControl(); >+ try { >+ final InstallationPage page = (InstallationPage) element >+ .createExecutableExtension(IWorkbenchRegistryConstants.ATT_CLASS); >+ page.createControl(pageComposite); >+ page.init(createDialogServiceLocator(item)); >+ item.setData(page); >+ item.addDisposeListener(new DisposeListener() { >+ >+ public void widgetDisposed(DisposeEvent e) { >+ page.dispose(); >+ } >+ }); >+ pageComposite.layout(true, true); >+ >+ } catch (CoreException e1) { >+ Label label = new Label(pageComposite, SWT.NONE); >+ label.setText(e1.getMessage()); >+ item.setData(null); >+ } >+ >+ >+ } else { >+ id = (String) item.getData(ID); >+ } >+ >+ menuService.releaseContributions(toolbarManager); >+ menuService.populateContributionManager(toolbarManager, >+ InstallationDialog.this.getToolbarURI(id)); >+ toolbarManager.update(true); >+ >+ menuService.releaseContributions(buttonManager); >+ menuService.populateContributionManager(buttonManager, >+ InstallationDialog.this.getButtonBarURI(id)); >+ buttonManager.update(true); >+ createButton(buttonManager.getParent(), IDialogConstants.OK_ID, >+ IDialogConstants.OK_LABEL, true); >+ buttonManager.getParent().layout(); >+ >+ } >+ }; >+ } >+ >+ private void createToolbar(Composite composite) { >+ toolbarManager = new ToolBarManager(SWT.BORDER); >+ toolbarManager.createControl(composite); >+ ToolBar toolbar = toolbarManager.getControl(); >+ { >+ GridData toolbarData = new GridData(SWT.FILL, SWT.FILL, true, false); >+ toolbarData.widthHint = SWT.DEFAULT; >+ toolbarData.heightHint = SWT.DEFAULT; >+ toolbar.setLayoutData(toolbarData); >+ } >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see >+ * org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse >+ * .swt.widgets.Composite) >+ */ >+ protected void createButtonsForButtonBar(Composite parent) { >+ buttonManager = new ButtonManager(parent); >+ } >+ >+ /** >+ * @param folder2 >+ */ >+ private void configureFolder() { >+ ColorRegistry reg = JFaceResources.getColorRegistry(); >+ Color c1 = reg.get(IWorkbenchThemeConstants.ACTIVE_TAB_BG_START), c2 = reg >+ .get(IWorkbenchThemeConstants.ACTIVE_TAB_BG_END); >+ folder.setSelectionBackground(new Color[] { c1, c2 }, new int[] { 50 }, >+ true); >+ folder.setSelectionForeground(reg >+ .get(IWorkbenchThemeConstants.ACTIVE_TAB_TEXT_COLOR)); >+ folder.setSimple(PlatformUI.getPreferenceStore().getBoolean( >+ IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS)); >+ >+ } >+ >+ /** >+ * @return >+ */ >+ private IConfigurationElement[] loadElements() { >+ IExtensionPoint point = Platform.getExtensionRegistry() >+ .getExtensionPoint("org.eclipse.ui", "installationPages"); //$NON-NLS-1$ //$NON-NLS-2$ >+ return point.getConfigurationElements(); >+ } >+ >+ private String getButtonBarURI(String id) { >+ return "toolbar:org.eclipse.ui.installationDialog.buttonbar/" + id; //$NON-NLS-1$ >+ } >+ >+ protected String getToolbarURI(String id) { >+ return "toolbar:org.eclipse.ui.installationDialog/" + id; //$NON-NLS-1$ >+ } >+ >+ private IServiceLocator createDialogServiceLocator(final CTabItem item) { >+ return new IServiceLocator() { >+ >+ public Object getService(Class api) { >+ if (api == IInstallationPageContainer.class) >+ return new IInstallationPageContainer() { >+ >+ public String getButtonBarURI() { >+ return InstallationDialog.this >+ .getButtonBarURI((String) item.getData(ID)); >+ } >+ >+ public String getToolbarURI() { >+ return InstallationDialog.this >+ .getToolbarURI((String) item.getData(ID)); >+ } >+ >+ public void updateMessage() { >+ // TBD >+ >+ } >+ }; >+ else if (api == IMenuService.class) { >+ return menuService; >+ } >+ return serviceLocator.getService(api); >+ } >+ >+ public boolean hasService(Class api) { >+ if (api == IInstallationPageContainer.class) >+ return true; >+ return serviceLocator.hasService(api); >+ } >+ }; >+ } >+} >+ >+class ButtonManager extends ContributionManager { >+ >+ private Composite composite; >+ >+ /** >+ * >+ */ >+ public ButtonManager(Composite composite) { >+ this.composite = composite; >+ } >+ >+ /** >+ * @return >+ */ >+ public Composite getParent() { >+ return composite; >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.jface.action.IContributionManager#update(boolean) >+ */ >+ public void update(boolean force) { >+ IContributionItem[] items = getItems(); >+ Control[] children = composite.getChildren(); >+ >+ int visibleChildren = 0; >+ for (int i = 0; i < children.length; i++) { >+ Control control = children[i]; >+ control.dispose(); >+ } >+ >+ for (int i = 0; i < items.length; i++) { >+ IContributionItem item = items[i]; >+ if (item.isVisible()) { >+ item.fill(composite); >+ visibleChildren++; >+ } >+ } >+ GridLayout compositeLayout = (GridLayout) composite.getLayout(); >+ compositeLayout.numColumns = visibleChildren; >+ composite.layout(true); >+ } >+} >Index: Eclipse UI/org/eclipse/ui/internal/about/InstallationHandler.java >=================================================================== >RCS file: Eclipse UI/org/eclipse/ui/internal/about/InstallationHandler.java >diff -N Eclipse UI/org/eclipse/ui/internal/about/InstallationHandler.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ Eclipse UI/org/eclipse/ui/internal/about/InstallationHandler.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,15 @@ >+package org.eclipse.ui.internal.about; >+ >+import org.eclipse.core.commands.AbstractHandler; >+import org.eclipse.core.commands.ExecutionEvent; >+import org.eclipse.ui.handlers.HandlerUtil; >+ >+public class InstallationHandler extends AbstractHandler{ >+ >+ public Object execute(ExecutionEvent event) { >+ InstallationDialog dialog = new InstallationDialog(HandlerUtil.getActiveShell(event), HandlerUtil.getActiveWorkbenchWindow(event)); >+ dialog.open(); >+ return null; >+ } >+ >+} >Index: Eclipse UI/org/eclipse/ui/about/IInstallationPageContainer.java >=================================================================== >RCS file: Eclipse UI/org/eclipse/ui/about/IInstallationPageContainer.java >diff -N Eclipse UI/org/eclipse/ui/about/IInstallationPageContainer.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ Eclipse UI/org/eclipse/ui/about/IInstallationPageContainer.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,48 @@ >+/******************************************************************************* >+ * Copyright (c) 2008 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ ******************************************************************************/ >+ >+package org.eclipse.ui.about; >+ >+/** >+ * <em>This API is experiemental and will change before 3.5 ships</em> >+ * >+ * @since 3.5 >+ */ >+public interface IInstallationPageContainer { >+ >+ /** >+ * Updates the message (or error message) shown in the message line to >+ * reflect the state of the currently active page in this container. >+ * <p> >+ * This method is called by the container itself when its preference page >+ * changes and may be called by the page at other times to force a message >+ * update. >+ * </p> >+ */ >+ public void updateMessage(); >+ >+ /** >+ * URI to be provided to the IMenuService for additions to the toolbar. >+ * >+ * @return >+ */ >+ public String getToolbarURI(); >+ >+ /** >+ * URI to be provided to the IMenuService for additions to the button bar. >+ * >+ * This may not be desirable. We've never had a "button manager" before now, >+ * and this may be a can of worms we dont want to open. >+ * >+ * @return >+ */ >+ public String getButtonBarURI(); >+} >#P org.eclipse.ui >Index: plugin.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui/plugin.properties,v >retrieving revision 1.214 >diff -u -r1.214 plugin.properties >--- plugin.properties 4 Apr 2008 15:30:04 -0000 1.214 >+++ plugin.properties 11 Sep 2008 19:14:34 -0000 >@@ -55,6 +55,7 @@ > ExtPoint.workingSets = Working set dialogs > ExtPoint.browserSupport = Browser Support > ExtPoint.statusHandlers = Status Handlers >+ExtPoint.installationPages = Installation Pages > ExtPoint.tweaklets = Tweaklets (internal/experimental) > > Views.Category.Basic = General >@@ -98,6 +99,8 @@ > > command.aboutAction.description = Open the about dialog > command.aboutAction.name = About >+command.installationDialog.description = Open the installation dialog >+command.installationDialog.name = Installation Information > command.activateEditor.description = Activate the editor > command.activateEditor.name = Activate Editor > command.addBookmark.description = Add a bookmark >@@ -327,4 +330,4 @@ > command.quickMenu.name = Open Quick Menu > command.quickMenu.uri.name = Location URI > command.showIn.name = Show In >-command.showIn.targetId.name = Show In Target Id >+command.showIn.targetId.name = Show In Target Id >\ No newline at end of file >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui/plugin.xml,v >retrieving revision 1.435 >diff -u -r1.435 plugin.xml >--- plugin.xml 19 Apr 2008 17:51:18 -0000 1.435 >+++ plugin.xml 11 Sep 2008 19:14:35 -0000 >@@ -49,6 +49,7 @@ > <extension-point id="workingSets" name="%ExtPoint.workingSets" schema="schema/workingSets.exsd"/> > <extension-point id="browserSupport" name="%ExtPoint.browserSupport" schema="schema/browserSupport.exsd"/> > <extension-point id="internalTweaklets" name="%ExtPoint.tweaklets" schema="schema/internalTweaklets.exsd"/> >+ <extension-point id="installationPages" name="%ExtPoint.installationPages" schema="schema/installationPages.exsd"/> > > <extension > point="org.eclipse.ui.contexts"> >@@ -694,6 +695,13 @@ > id="org.eclipse.ui.help.aboutAction" > name="%command.aboutAction.name"/> > <command >+ categoryId="org.eclipse.ui.category.help" >+ defaultHandler="org.eclipse.ui.internal.about.InstallationHandler" >+ description="%command.installationDialog.description" >+ helpContextId="org.eclipse.ui.about_action_context" >+ id="org.eclipse.ui.help.installationDialog" >+ name="%command.installationDialog.name"/> >+ <command > categoryId="org.eclipse.ui.category.file" > defaultHandler="org.eclipse.ui.internal.handlers.WizardHandler$New" > description="%command.newWizard.description" >Index: schema/installationPages.exsd >=================================================================== >RCS file: schema/installationPages.exsd >diff -N schema/installationPages.exsd >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ schema/installationPages.exsd 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,119 @@ >+<?xml version='1.0' encoding='UTF-8'?> >+<!-- Schema file written by PDE --> >+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema"> >+<annotation> >+ <appinfo> >+ <meta.schema plugin="org.eclipse.ui" id="installationPages" name="Installation Dialog Pages"/> >+ </appinfo> >+ <documentation> >+ [Enter description of this extension point.] >+ </documentation> >+ </annotation> >+ >+ <element name="extension"> >+ <annotation> >+ <appinfo> >+ <meta.element /> >+ </appinfo> >+ </annotation> >+ <complexType> >+ <sequence> >+ <element ref="page" minOccurs="0" maxOccurs="unbounded"/> >+ </sequence> >+ <attribute name="point" type="string" use="required"> >+ <annotation> >+ <documentation> >+ >+ </documentation> >+ </annotation> >+ </attribute> >+ <attribute name="id" type="string"> >+ <annotation> >+ <documentation> >+ >+ </documentation> >+ </annotation> >+ </attribute> >+ <attribute name="name" type="string"> >+ <annotation> >+ <documentation> >+ >+ </documentation> >+ <appinfo> >+ <meta.attribute translatable="true"/> >+ </appinfo> >+ </annotation> >+ </attribute> >+ </complexType> >+ </element> >+ >+ <element name="page"> >+ <complexType> >+ <attribute name="id" type="string" use="required"> >+ <annotation> >+ <documentation> >+ >+ </documentation> >+ </annotation> >+ </attribute> >+ <attribute name="class" type="string" use="required"> >+ <annotation> >+ <documentation> >+ >+ </documentation> >+ <appinfo> >+ <meta.attribute kind="java" basedOn="org.eclipse.ui.branding.InstallationPage:"/> >+ </appinfo> >+ </annotation> >+ </attribute> >+ <attribute name="name" type="string" use="required"> >+ <annotation> >+ <documentation> >+ >+ </documentation> >+ <appinfo> >+ <meta.attribute translatable="true"/> >+ </appinfo> >+ </annotation> >+ </attribute> >+ </complexType> >+ </element> >+ >+ <annotation> >+ <appinfo> >+ <meta.section type="since"/> >+ </appinfo> >+ <documentation> >+ [Enter the first release in which this extension point appears.] >+ </documentation> >+ </annotation> >+ >+ <annotation> >+ <appinfo> >+ <meta.section type="examples"/> >+ </appinfo> >+ <documentation> >+ [Enter extension point usage example here.] >+ </documentation> >+ </annotation> >+ >+ <annotation> >+ <appinfo> >+ <meta.section type="apiinfo"/> >+ </appinfo> >+ <documentation> >+ [Enter API information here.] >+ </documentation> >+ </annotation> >+ >+ <annotation> >+ <appinfo> >+ <meta.section type="implementation"/> >+ </appinfo> >+ <documentation> >+ [Enter information about supplied implementation of this extension point.] >+ </documentation> >+ </annotation> >+ >+ >+</schema>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 246875
:
112344
|
112420
|
115725
|
125194
|
125936