diff options
6 files changed, 41 insertions, 11 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdateMessages.java b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdateMessages.java index 17be7f356..bbfd89c03 100644 --- a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdateMessages.java +++ b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdateMessages.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2010 IBM Corporation and others. + * Copyright (c) 2008, 2014 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 + * Christian Georgi <christian.georgi@sap.com> - Bug 432887 - Setting to show update wizard w/o notification popup *******************************************************************************/ package org.eclipse.equinox.internal.p2.ui.sdk.scheduler; @@ -71,6 +72,7 @@ public class AutomaticUpdateMessages extends NLS { public static String AutomaticUpdatesPreferencePage_UpdateSchedule; public static String AutomaticUpdatesPreferencePage_findOnStart; public static String AutomaticUpdatesPreferencePage_findOnSchedule; + public static String AutomaticUpdatesPreferencePage_directlyShowUpdateWizard; public static String AutomaticUpdatesPreferencePage_downloadOptions; public static String AutomaticUpdatesPreferencePage_searchAndNotify; public static String AutomaticUpdatesPreferencePage_downloadAndNotify; diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdater.java b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdater.java index 40273866f..904ee9d70 100644 --- a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdater.java +++ b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdater.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2010 IBM Corporation and others. + * Copyright (c) 2008, 2014 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 * Sonatype, Inc. - ongoing development + * Christian Georgi <christian.georgi@sap.com> - Bug 432887 - Setting to show update wizard w/o notification popup *******************************************************************************/ package org.eclipse.equinox.internal.p2.ui.sdk.scheduler; @@ -97,6 +98,8 @@ public class AutomaticUpdater implements IUpdateListener { validateIusToUpdate(); alreadyDownloaded = false; + final boolean showUpdateWizard = getPreferenceStore().getBoolean(PreferenceConstants.PREF_SHOW_UPDATE_WIZARD); + // Create an update operation to reflect the new updates that are available. operation = new UpdateOperation(getSession(), iusWithUpdates); operation.setProfileId(event.getProfileId()); @@ -127,7 +130,7 @@ public class AutomaticUpdater implements IUpdateListener { alreadyDownloaded = true; PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { public void run() { - notifyUserOfUpdates(operation.getResolutionResult().isOK(), notifyWithPopup); + notifyUserOfUpdates(operation.getResolutionResult().isOK(), notifyWithPopup, showUpdateWizard); } }); } else if (jobStatus.getSeverity() != IStatus.CANCEL) { @@ -139,7 +142,7 @@ public class AutomaticUpdater implements IUpdateListener { } else { PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { public void run() { - notifyUserOfUpdates(operation.getResolutionResult().isOK(), notifyWithPopup); + notifyUserOfUpdates(operation.getResolutionResult().isOK(), notifyWithPopup, showUpdateWizard); } }); } @@ -263,12 +266,16 @@ public class AutomaticUpdater implements IUpdateListener { } } - void notifyUserOfUpdates(boolean isValid, boolean showPopup) { + void notifyUserOfUpdates(boolean isValid, boolean showPopup, boolean showUpdateWizard) { if (updateAffordance == null) createUpdateAffordance(); if (isValid) { - if (showPopup) - openUpdatePopup(); + if (showPopup) { + if (showUpdateWizard) + launchUpdate(); + else + openUpdatePopup(); + } updateAffordance.setTooltip(AutomaticUpdateMessages.AutomaticUpdater_ClickToReviewUpdates); updateAffordance.setImage(AutomaticUpdatePlugin.getDefault().getImageRegistry().get((AutomaticUpdatePlugin.IMG_TOOL_UPDATE))); } else { diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdatesPreferencePage.java b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdatesPreferencePage.java index db602870f..b590e9748 100644 --- a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdatesPreferencePage.java +++ b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdatesPreferencePage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2010 IBM Corporation and others. + * Copyright (c) 2007, 2014 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,12 +8,14 @@ * Contributors: * IBM Corporation - initial API and implementation * Johannes Michler <orgler@gmail.com> - Bug 321568 - [ui] Preference for automatic-update-reminder doesn't work in multilanguage-environments + * Christian Georgi <christian.georgi@sap.com> - Bug 432887 - Setting to show update wizard w/o notification popup *******************************************************************************/ package org.eclipse.equinox.internal.p2.ui.sdk.scheduler; import org.eclipse.core.runtime.IProduct; import org.eclipse.core.runtime.Platform; import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.osgi.util.NLS; @@ -34,6 +36,7 @@ import org.eclipse.ui.*; public class AutomaticUpdatesPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { private Button enabledCheck; + private Button showUpdateWizard; private Button onStartupRadio, onScheduleRadio; private Combo dayCombo; private Label atLabel; @@ -177,8 +180,13 @@ public class AutomaticUpdatesPreferencePage extends PreferencePage implements IW gd = new GridData(); gd.widthHint = 200; gd.horizontalIndent = 30; + gd.horizontalSpan = 3; remindElapseCombo.setLayoutData(gd); + showUpdateWizard = new Button(remindGroup, SWT.CHECK); + showUpdateWizard.setText(AutomaticUpdateMessages.AutomaticUpdatesPreferencePage_directlyShowUpdateWizard); + GridDataFactory.fillDefaults().span(3, 1).grab(true, false).applyTo(showUpdateWizard); + initialize(); enabledCheck.addSelectionListener(new SelectionAdapter() { @@ -211,6 +219,7 @@ public class AutomaticUpdatesPreferencePage extends PreferencePage implements IW remindElapseCombo.setText(AutomaticUpdatesPopup.getElapsedTimeString(pref.getString(PreferenceConstants.PREF_REMIND_ELAPSED))); searchOnlyRadio.setSelection(!pref.getBoolean(PreferenceConstants.PREF_DOWNLOAD_ONLY)); searchAndDownloadRadio.setSelection(pref.getBoolean(PreferenceConstants.PREF_DOWNLOAD_ONLY)); + showUpdateWizard.setSelection(pref.getBoolean(PreferenceConstants.PREF_SHOW_UPDATE_WIZARD)); pageChanged(); } @@ -237,6 +246,7 @@ public class AutomaticUpdatesPreferencePage extends PreferencePage implements IW remindScheduleRadio.setEnabled(master); remindOnceRadio.setEnabled(master); remindElapseCombo.setEnabled(master && remindScheduleRadio.getSelection()); + showUpdateWizard.setEnabled(master); } protected void performDefaults() { @@ -256,6 +266,9 @@ public class AutomaticUpdatesPreferencePage extends PreferencePage implements IW searchOnlyRadio.setSelection(!pref.getDefaultBoolean(PreferenceConstants.PREF_DOWNLOAD_ONLY)); searchAndDownloadRadio.setSelection(pref.getDefaultBoolean(PreferenceConstants.PREF_DOWNLOAD_ONLY)); + + showUpdateWizard.setSelection(pref.getDefaultBoolean(PreferenceConstants.PREF_SHOW_UPDATE_WIZARD)); + pageChanged(); } @@ -282,6 +295,8 @@ public class AutomaticUpdatesPreferencePage extends PreferencePage implements IW pref.setValue(PreferenceConstants.PREF_DOWNLOAD_ONLY, searchAndDownloadRadio.getSelection()); + pref.setValue(PreferenceConstants.PREF_SHOW_UPDATE_WIZARD, showUpdateWizard.getSelection()); + AutomaticUpdatePlugin.getDefault().savePreferences(); AutomaticUpdatePlugin.getDefault().getScheduler().rescheduleUpdate(); return true; diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreferenceConstants.java b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreferenceConstants.java index 398c7da78..72cf7f193 100644 --- a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreferenceConstants.java +++ b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreferenceConstants.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 IBM Corporation and others. + * Copyright (c) 2008, 2014 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 * Johannes Michler <orgler@gmail.com> - Bug 321568 - [ui] Preference for automatic-update-reminder doesn't work in multilanguage-environments + * Christian Georgi <christian.georgi@sap.com> - Bug 432887 - Setting to show update wizard w/o notification popup *******************************************************************************/ package org.eclipse.equinox.internal.p2.ui.sdk.scheduler; @@ -21,6 +22,7 @@ public class PreferenceConstants { public static final String PREF_UPDATE_ON_STARTUP = "on-startup"; //$NON-NLS-1$ public static final String PREF_UPDATE_ON_SCHEDULE = "on-schedule"; //$NON-NLS-1$ // string value defined in AutomaticUpdateScheduler public static final String PREF_DOWNLOAD_ONLY = "download"; // value is true or false, default is false //$NON-NLS-1$ + public static final String PREF_SHOW_UPDATE_WIZARD = "showUpdateWizard"; // value is true or false, default is false //$NON-NLS-1$ public static final String PREF_REMIND_SCHEDULE = "remindOnSchedule"; // value is true or false //$NON-NLS-1$ public static final String PREF_REMIND_ELAPSED = "remindElapsedTime";//$NON-NLS-1$ public static final String PREF_REMIND_30Minutes = "30 minutes";//$NON-NLS-1$ diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreferenceInitializer.java b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreferenceInitializer.java index 4cc0bea98..a3beaf75e 100644 --- a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreferenceInitializer.java +++ b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreferenceInitializer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2010 IBM Corporation and others. + * Copyright (c) 2008, 2014 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 * Johannes Michler <orgler@gmail.com> - Bug 321568 - [ui] Preference for automatic-update-reminder doesn't work in multilanguage-environments + * Christian Georgi <christian.georgi@sap.com> - Bug 432887 - Setting to show update wizard w/o notification popup *******************************************************************************/ package org.eclipse.equinox.internal.p2.ui.sdk.scheduler; @@ -169,5 +170,6 @@ public class PreferenceInitializer extends AbstractPreferenceInitializer { node.putBoolean(PreferenceConstants.PREF_DOWNLOAD_ONLY, false); node.putBoolean(PreferenceConstants.PREF_REMIND_SCHEDULE, false); node.put(PreferenceConstants.PREF_REMIND_ELAPSED, PreferenceConstants.PREF_REMIND_30Minutes); + node.putBoolean(PreferenceConstants.PREF_SHOW_UPDATE_WIZARD, false); } } diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/messages.properties b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/messages.properties index 497a0e695..2d305546a 100644 --- a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/messages.properties +++ b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/messages.properties @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2007, 2010 IBM Corporation and others. +# Copyright (c) 2007, 2014 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 +# Christian Georgi <christian.georgi@sap.com> - Bug 432887 - Setting to show update wizard w/o notification popup ############################################################################### @@ -57,6 +58,7 @@ AutomaticUpdater_ClickToReviewUpdatesWithProblems=Updates are available, but the AutomaticUpdatesPreferencePage_UpdateSchedule=&Update schedule AutomaticUpdatesPreferencePage_findOnStart=Look for u&pdates each time {0} is started AutomaticUpdatesPreferencePage_findOnSchedule=Look for updates on the following &schedule: +AutomaticUpdatesPreferencePage_directlyShowUpdateWizard=&Directly show update wizard AutomaticUpdatesPreferencePage_downloadOptions=&Download options AutomaticUpdatesPreferencePage_searchAndNotify=Search for updates and ¬ify me when they are available AutomaticUpdatesPreferencePage_downloadAndNotify=Down&load new updates automatically and notify me when ready to install them |