### Eclipse Workspace Patch 1.0 #P org.eclipse.pde.ui Index: src/org/eclipse/pde/internal/ui/preferences/MainPreferencePage.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/MainPreferencePage.java,v retrieving revision 1.27 diff -u -r1.27 MainPreferencePage.java --- src/org/eclipse/pde/internal/ui/preferences/MainPreferencePage.java 9 Jul 2008 14:38:42 -0000 1.27 +++ src/org/eclipse/pde/internal/ui/preferences/MainPreferencePage.java 9 Feb 2009 16:39:13 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2008 IBM Corporation and others. + * Copyright (c) 2000, 2009 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 @@ -7,11 +7,10 @@ * * Contributors: * IBM Corporation - initial API and implementation + * EclipseSource Corporation - ongoing enhancements *******************************************************************************/ package org.eclipse.pde.internal.ui.preferences; -import org.eclipse.pde.internal.ui.PDEUIMessages; - import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.MessageDialogWithToggle; import org.eclipse.jface.preference.IPreferenceStore; @@ -28,6 +27,7 @@ private Button fUseName; private Button fAutoManage; private Button fOverwriteBuildFiles; + private Button fShowSourceBundles; public MainPreferencePage() { setPreferenceStore(PDEPlugin.getDefault().getPreferenceStore()); @@ -68,6 +68,12 @@ fOverwriteBuildFiles.setText(PDEUIMessages.MainPreferencePage_promptBeforeOverwrite); fOverwriteBuildFiles.setSelection(!MessageDialogWithToggle.ALWAYS.equals(store.getString(IPreferenceConstants.OVERWRITE_BUILD_FILES_ON_EXPORT))); + group = SWTFactory.createGroup(composite, PDEUIMessages.MainPreferencePage_sourceGroup, 1, 1, GridData.FILL_HORIZONTAL); + + fShowSourceBundles = new Button(group, SWT.CHECK); + fShowSourceBundles.setText(PDEUIMessages.MainPreferencePage_showSourceBundles); + fShowSourceBundles.setSelection(store.getBoolean(IPreferenceConstants.PROP_SHOW_SOURCE_BUNDLES)); + return composite; } @@ -86,6 +92,7 @@ } store.setValue(IPreferenceConstants.PROP_AUTO_MANAGE, fAutoManage.getSelection()); store.setValue(IPreferenceConstants.OVERWRITE_BUILD_FILES_ON_EXPORT, fOverwriteBuildFiles.getSelection() ? MessageDialogWithToggle.PROMPT : MessageDialogWithToggle.ALWAYS); + store.setValue(IPreferenceConstants.PROP_SHOW_SOURCE_BUNDLES, fShowSourceBundles.getSelection()); PDEPlugin.getDefault().savePluginPreferences(); return super.performOk(); } @@ -101,6 +108,7 @@ } fAutoManage.setSelection(false); fOverwriteBuildFiles.setSelection(true); + fShowSourceBundles.setSelection(false); } /* Index: src/org/eclipse/pde/internal/ui/pderesources.properties =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties,v retrieving revision 1.1035 diff -u -r1.1035 pderesources.properties --- src/org/eclipse/pde/internal/ui/pderesources.properties 6 Feb 2009 17:20:57 -0000 1.1035 +++ src/org/eclipse/pde/internal/ui/pderesources.properties 9 Feb 2009 16:39:13 -0000 @@ -320,8 +320,10 @@ ManifestStructureCreator_errorMessage=An error occurred while creating the input structure. MainPreferencePage_exportingGroup=Exporting +MainPreferencePage_sourceGroup=Source MainPreferencePage_group2=Automated Management of Dependencies MainPreferencePage_promptBeforeOverwrite=Prompt before overwriting build.xml files when exporting +MainPreferencePage_showSourceBundles=Show &source plug-ins MainPreferencePage_updateStale=&Update stale manifest files prior to launching MainPreferencePage_targetPlatformRealization=Build target platform based on t&he target's installed plug-ins Index: src/org/eclipse/pde/internal/ui/PDEUIMessages.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/PDEUIMessages.java,v retrieving revision 1.408 diff -u -r1.408 PDEUIMessages.java --- src/org/eclipse/pde/internal/ui/PDEUIMessages.java 6 Feb 2009 17:20:57 -0000 1.408 +++ src/org/eclipse/pde/internal/ui/PDEUIMessages.java 9 Feb 2009 16:39:13 -0000 @@ -407,8 +407,10 @@ public static String LibrarySection_addDialogButton; public static String MainPreferencePage_exportingGroup; + public static String MainPreferencePage_sourceGroup; public static String MainPreferencePage_group2; public static String MainPreferencePage_promptBeforeOverwrite; + public static String MainPreferencePage_showSourceBundles; public static String MainPreferencePage_updateStale; public static String MainPreferencePage_targetPlatformRealization; Index: src/org/eclipse/pde/internal/ui/IPreferenceConstants.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/IPreferenceConstants.java,v retrieving revision 1.27 diff -u -r1.27 IPreferenceConstants.java --- src/org/eclipse/pde/internal/ui/IPreferenceConstants.java 9 Jul 2008 14:38:42 -0000 1.27 +++ src/org/eclipse/pde/internal/ui/IPreferenceConstants.java 9 Feb 2009 16:39:12 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2008 IBM Corporation and others. + * Copyright (c) 2000, 2009 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 @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * EclipseSource Corporation - ongoing enhancements *******************************************************************************/ package org.eclipse.pde.internal.ui; @@ -22,6 +23,7 @@ public static final String VALUE_USE_IDS = "useIds"; //$NON-NLS-1$ public static final String VALUE_USE_NAMES = "useNames"; //$NON-NLS-1$ public static final String PROP_AUTO_MANAGE = "Preferences.MainPage.automanageDependencies"; //$NON-NLS-1$ + public static final String PROP_SHOW_SOURCE_BUNDLES = "Preferences.MainPage.showSourceBundles"; //$NON-NLS-1$ public static final String OVERWRITE_BUILD_FILES_ON_EXPORT = "Preferences.MainPage.overwriteBuildFilesOnExport"; //$NON-NLS-1$ // Editor Outline Index: src/org/eclipse/pde/internal/ui/views/plugins/PluginsView.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/PluginsView.java,v retrieving revision 1.14 diff -u -r1.14 PluginsView.java --- src/org/eclipse/pde/internal/ui/views/plugins/PluginsView.java 15 Dec 2008 22:28:44 -0000 1.14 +++ src/org/eclipse/pde/internal/ui/views/plugins/PluginsView.java 9 Feb 2009 16:39:13 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2008 IBM Corporation and others. + * Copyright (c) 2000, 2009 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 @@ -8,6 +8,7 @@ * Contributors: * IBM Corporation - initial API and implementation * Les Jones - bug 191365 + * EclipseSource Corporation - ongoing enhancements *******************************************************************************/ package org.eclipse.pde.internal.ui.views.plugins; @@ -35,6 +36,7 @@ import org.eclipse.pde.internal.ui.editor.plugin.ManifestEditor; import org.eclipse.pde.internal.ui.refactoring.PDERefactoringAction; import org.eclipse.pde.internal.ui.refactoring.RefactoringActionFactory; +import org.eclipse.pde.internal.ui.util.SourcePluginFilter; import org.eclipse.pde.internal.ui.views.dependencies.OpenPluginDependenciesAction; import org.eclipse.pde.internal.ui.views.dependencies.OpenPluginReferencesAction; import org.eclipse.pde.internal.ui.wizards.ListUtil; @@ -76,6 +78,7 @@ private DisabledFilter fHideExtEnabledFilter = new DisabledFilter(true); private DisabledFilter fHideExtDisabledFilter = new DisabledFilter(false); private WorkspaceFilter fHideWorkspaceFilter = new WorkspaceFilter(); + private SourcePluginFilter fSourcePluginFilter = new SourcePluginFilter(); private JavaFilter fJavaFilter = new JavaFilter(); private CopyToClipboardAction fCopyAction; private Clipboard fClipboard; @@ -550,6 +553,7 @@ fHideWorkspaceFilterAction.setChecked(!hideWorkspace); fHideExtEnabledFilterAction.setChecked(!hideEnabledExternal); fHideExtDisabledFilterAction.setChecked(!hideDisabledExternal); + fTreeViewer.addFilter(fSourcePluginFilter); } private void hookContextMenu() { Index: src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java,v retrieving revision 1.35 diff -u -r1.35 AbstractPluginBlock.java --- src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java 29 Jan 2009 19:38:37 -0000 1.35 +++ src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java 9 Feb 2009 16:39:13 -0000 @@ -8,6 +8,7 @@ * Contributors: * IBM Corporation - initial API and implementation * Ian Bull - bug 204404 and bug 207064 + * EclipseSource Corporation - ongoing enhancements *******************************************************************************/ package org.eclipse.pde.internal.ui.launcher; @@ -31,8 +32,7 @@ import org.eclipse.pde.internal.ui.elements.NamedElement; import org.eclipse.pde.internal.ui.launcher.FilteredCheckboxTree.FilterableCheckboxTreeViewer; import org.eclipse.pde.internal.ui.launcher.FilteredCheckboxTree.PreRefreshNotifier; -import org.eclipse.pde.internal.ui.util.PersistablePluginObject; -import org.eclipse.pde.internal.ui.util.SWTUtil; +import org.eclipse.pde.internal.ui.util.*; import org.eclipse.pde.internal.ui.wizards.ListUtil; import org.eclipse.pde.ui.launcher.AbstractLauncherTab; import org.eclipse.pde.ui.launcher.IPDELauncherConstants; @@ -369,6 +369,7 @@ fExternalPlugins = new NamedElement(PDEUIMessages.PluginsTab_target, siteImage); fPluginTreeViewer.addFilter(new Filter()); + fPluginTreeViewer.addFilter(new SourcePluginFilter()); Tree tree = fPluginTreeViewer.getTree(); Index: src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportWizardDetailedPage.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportWizardDetailedPage.java,v retrieving revision 1.91 diff -u -r1.91 PluginImportWizardDetailedPage.java --- src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportWizardDetailedPage.java 19 Nov 2008 14:52:56 -0000 1.91 +++ src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportWizardDetailedPage.java 9 Feb 2009 16:39:13 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2003, 2008 IBM Corporation and others. + * Copyright (c) 2003, 2009 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 @@ -9,6 +9,7 @@ * IBM Corporation - initial API and implementation * Joern Dinkla - bug 210264 * Bartosz Michalik - bug 114080 + * EclipseSource Corporation - ongoing enhancements *******************************************************************************/ package org.eclipse.pde.internal.ui.wizards.imports; @@ -21,15 +22,16 @@ import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.layout.GridLayoutFactory; import org.eclipse.jface.viewers.*; -import org.eclipse.osgi.service.resolver.BundleDescription; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.core.plugin.IPluginModelBase; -import org.eclipse.pde.internal.core.*; +import org.eclipse.pde.internal.core.PDECore; +import org.eclipse.pde.internal.core.WorkspaceModelManager; import org.eclipse.pde.internal.core.plugin.AbstractPluginModelBase; import org.eclipse.pde.internal.core.util.PatternConstructor; import org.eclipse.pde.internal.ui.*; import org.eclipse.pde.internal.ui.elements.DefaultContentProvider; import org.eclipse.pde.internal.ui.util.SWTUtil; +import org.eclipse.pde.internal.ui.util.SourcePluginFilter; import org.eclipse.pde.internal.ui.wizards.ListUtil; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.ScrolledComposite; @@ -66,10 +68,8 @@ private Button fRemoveAllButton; private Button fAddRequiredButton; private Button fFilterOldVersionButton; - private Button fFilterSourcePluginsButton; private static final String SETTINGS_SHOW_LATEST = "showLatestPluginsOnly"; //$NON-NLS-1$ - private static final String SETTINGS_SHOW_SOURCE = "showSourcePlugins"; //$NON-NLS-1$ private class AvailableFilter extends ViewerFilter { private Pattern fPattern; @@ -136,28 +136,6 @@ } } - /** - * This filter is used to remove source plug-ins from view - * - */ - private class SourcePluginFilter extends ViewerFilter { - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) - */ - public boolean select(Viewer viewer, Object parentElement, Object element) { - if (element instanceof IPluginModelBase) { - PDEState state = fPage1.getState(); - if (state != null) { - BundleDescription description = ((IPluginModelBase) element).getBundleDescription(); - if (description != null) { - return state.getBundleSourceEntry(description.getBundleId()) == null; - } - } - } - return true; - } - } - public PluginImportWizardDetailedPage(String pageName, PluginImportWizardFirstPage firstPage) { super(pageName, firstPage); setTitle(PDEUIMessages.ImportWizard_DetailedPage_title); @@ -187,9 +165,8 @@ createFilterOptions(buttonContainer, 3); addViewerListeners(); - addFilters(); - initialize(); + addFilters(); setControl(container); Dialog.applyDialogFont(container); PlatformUI.getWorkbench().getHelpSystem().setHelp(container, IHelpContextIds.PLUGIN_IMPORT_SECOND_PAGE); @@ -217,28 +194,7 @@ } else { fAvailableListViewer.removeFilter(fVersionFilter); } - } - }); - - fFilterSourcePluginsButton = new Button(parent, SWT.CHECK); - fFilterSourcePluginsButton.setText(PDEUIMessages.PluginImportWizardDetailedPage_Show_source_plugins); - gData = new GridData(GridData.FILL_HORIZONTAL); - gData.horizontalSpan = span; - fFilterSourcePluginsButton.setLayoutData(gData); - - if (getDialogSettings().get(SETTINGS_SHOW_SOURCE) != null) { - fFilterSourcePluginsButton.setSelection(getDialogSettings().getBoolean(SETTINGS_SHOW_SOURCE)); - } else { - fFilterSourcePluginsButton.setSelection(false); - } - - fFilterSourcePluginsButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - if (fFilterSourcePluginsButton.getSelection()) { - fAvailableListViewer.removeFilter(fSourceFilter); - } else { - fAvailableListViewer.addFilter(fSourceFilter); - } + updateCount(); } }); } @@ -246,13 +202,11 @@ private void addFilters() { fVersionFilter = new VersionFilter(); fVersionFilter.setModel(fModels); + fSourceFilter = new SourcePluginFilter(fPage1.getState()); fAvailableFilter = new AvailableFilter(); - fSourceFilter = new SourcePluginFilter(); fAvailableListViewer.addFilter(fAvailableFilter); fAvailableListViewer.addFilter(fVersionFilter); - if (!fFilterSourcePluginsButton.getSelection()) { - fAvailableListViewer.addFilter(fSourceFilter); - } + fAvailableListViewer.addFilter(fSourceFilter); fFilterJob = new WorkbenchJob("FilterJob") { //$NON-NLS-1$ public IStatus runInUIThread(IProgressMonitor monitor) { @@ -462,9 +416,11 @@ } protected void refreshPage() { + fAvailableListViewer.addFilter(fSourceFilter); fImportListViewer.getTable().removeAll(); fSelected.clear(); fAvailableFilter.setPattern("*"); //$NON-NLS-1$ + fSourceFilter.setState(fPage1.getState()); fVersionFilter.setModel(fModels); fAvailableListViewer.refresh(); pageChanged(); @@ -475,17 +431,17 @@ } protected void pageChanged(boolean doAddEnablement, boolean doRemoveEnablement) { - updateCount(); updateButtonEnablement(doAddEnablement, doRemoveEnablement); setPageComplete(fImportListViewer.getTable().getItemCount() > 0); } private void updateCount() { - fCountLabel.setText(NLS.bind(PDEUIMessages.ImportWizard_DetailedPage_count, (new String[] {new Integer(fImportListViewer.getTable().getItemCount()).toString(), new Integer(fModels.length).toString()}))); + fCountLabel.setText(NLS.bind(PDEUIMessages.ImportWizard_DetailedPage_count, (new String[] {new Integer(fImportListViewer.getTable().getItemCount()).toString(), new Integer(fAvailableListViewer.getTable().getItemCount()).toString()}))); fCountLabel.getParent().layout(); } private void updateButtonEnablement(boolean doAddEnablement, boolean doRemoveEnablement) { + updateCount(); int availableCount = fAvailableListViewer.getTable().getItemCount(); int importCount = fImportListViewer.getTable().getItemCount(); @@ -678,7 +634,6 @@ public void storeSettings() { IDialogSettings settings = getDialogSettings(); settings.put(SETTINGS_SHOW_LATEST, fFilterOldVersionButton.getSelection()); - settings.put(SETTINGS_SHOW_SOURCE, fFilterSourcePluginsButton.getSelection()); super.storeSettings(); } Index: src/org/eclipse/pde/internal/ui/util/SourcePluginFilter.java =================================================================== RCS file: src/org/eclipse/pde/internal/ui/util/SourcePluginFilter.java diff -N src/org/eclipse/pde/internal/ui/util/SourcePluginFilter.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/internal/ui/util/SourcePluginFilter.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright (c) 2009 EclipseSource 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: + * EclipseSource Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.pde.internal.ui.util; + +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerFilter; +import org.eclipse.osgi.service.resolver.BundleDescription; +import org.eclipse.pde.core.plugin.IPluginModelBase; +import org.eclipse.pde.internal.core.PDEState; +import org.eclipse.pde.internal.core.TargetPlatformHelper; +import org.eclipse.pde.internal.ui.IPreferenceConstants; +import org.eclipse.pde.internal.ui.PDEPlugin; + +public class SourcePluginFilter extends ViewerFilter { + + private PDEState fState; + + public SourcePluginFilter() { + fState = TargetPlatformHelper.getPDEState(); + } + + public SourcePluginFilter(PDEState state) { + fState = state; + } + + public void setState(PDEState state) { + fState = state; + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) + */ + public boolean select(Viewer viewer, Object parentElement, Object element) { + if (element instanceof IPluginModelBase) { + IPreferenceStore store = PDEPlugin.getDefault().getPreferenceStore(); + boolean showSourceBundles = store.getBoolean(IPreferenceConstants.PROP_SHOW_SOURCE_BUNDLES); + if (fState != null && !showSourceBundles) { + BundleDescription description = ((IPluginModelBase) element).getBundleDescription(); + if (description != null) { + return fState.getBundleSourceEntry(description.getBundleId()) == null; + } + } + } + return true; + } + +}