Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.equinox.security.ui/src/org/eclipse/equinox/internal/security/ui/storage/UICallbackProvider.java')
-rw-r--r--bundles/org.eclipse.equinox.security.ui/src/org/eclipse/equinox/internal/security/ui/storage/UICallbackProvider.java146
1 files changed, 0 insertions, 146 deletions
diff --git a/bundles/org.eclipse.equinox.security.ui/src/org/eclipse/equinox/internal/security/ui/storage/UICallbackProvider.java b/bundles/org.eclipse.equinox.security.ui/src/org/eclipse/equinox/internal/security/ui/storage/UICallbackProvider.java
deleted file mode 100644
index b1d259826..000000000
--- a/bundles/org.eclipse.equinox.security.ui/src/org/eclipse/equinox/internal/security/ui/storage/UICallbackProvider.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * 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.equinox.internal.security.ui.storage;
-
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.equinox.internal.security.storage.friends.*;
-import org.eclipse.equinox.internal.security.ui.nls.SecUIMessages;
-import org.eclipse.equinox.security.storage.StorageException;
-import org.eclipse.equinox.security.storage.provider.IPreferencesContainer;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressService;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * Methods on this class could be called from non-UI thread so need
- * to wrap into Display.syncExec().
- */
-public class UICallbackProvider implements IUICallbacks {
-
- private class InitWithProgress implements IRunnableWithProgress {
-
- private IStorageTask callback;
- private StorageException exception = null;
-
- public InitWithProgress(IStorageTask callback) {
- this.callback = callback;
- }
-
- public StorageException getException() {
- return exception;
- }
-
- public void run(IProgressMonitor monitor) {
- monitor.beginTask(SecUIMessages.initializing, IProgressMonitor.UNKNOWN);
- try {
- callback.execute();
- } catch (StorageException e) {
- exception = e;
- }
- monitor.done();
- }
- }
-
- public void setupPasswordRecovery(final int size, final String moduleID, final IPreferencesContainer container) {
- if (!StorageUtils.showUI(container))
- return;
-
- UIJob reciverySetupJob = new UIJob(SecUIMessages.pswJobName) {
- public IStatus runInUIThread(IProgressMonitor monitor) {
- boolean reply = MessageDialog.openQuestion(StorageUtils.getShell(), SecUIMessages.pswdRecoveryOptionTitle, SecUIMessages.pswdRecoveryOptionMsg);
- if (!reply)
- return Status.OK_STATUS;
- ChallengeResponseDialog dialog = new ChallengeResponseDialog(size, StorageUtils.getShell());
- dialog.open();
- String[][] result = dialog.getResult();
- if (result != null)
- InternalExchangeUtils.setupRecovery(result, moduleID, container);
- return Status.OK_STATUS;
- }
- };
- reciverySetupJob.setUser(false);
- reciverySetupJob.schedule();
- }
-
- public void execute(final IStorageTask callback) throws StorageException {
- if (!StorageUtils.showUI(null)) {
- callback.execute();
- return;
- }
-
- final StorageException[] exception = new StorageException[1];
- exception[0] = null; // keep exception and throw it on the original thread
-
- Display display = PlatformUI.getWorkbench().getDisplay();
- if (!display.isDisposed() && (display.getThread() == Thread.currentThread())) { // we are running in a UI thread
-
- PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() { // syncExec not really necessary but kept for safety
- public void run() {
- IProgressService progressService = PlatformUI.getWorkbench().getProgressService();
- InitWithProgress task = new InitWithProgress(callback);
- try {
- progressService.busyCursorWhile(task);
- } catch (InvocationTargetException e) {
- exception[0] = new StorageException(StorageException.INTERNAL_ERROR, e);
- return;
- } catch (InterruptedException e) {
- exception[0] = new StorageException(StorageException.INTERNAL_ERROR, SecUIMessages.initCancelled);
- return;
- }
- exception[0] = task.getException();
- }
- });
- } else { // we are running in non-UI thread, use Job to show small progress indicator on the status bar
- Job job = new Job(SecUIMessages.secureStorageInitialization) {
- protected IStatus run(IProgressMonitor monitor) {
- try {
- callback.execute();
- } catch (StorageException e) {
- exception[0] = e;
- }
- return Status.OK_STATUS;
- }
- };
- job.schedule();
- try {
- job.join();
- } catch (InterruptedException e) {
- exception[0] = new StorageException(StorageException.INTERNAL_ERROR, SecUIMessages.initCancelled);
- }
- }
- if (exception[0] != null)
- throw exception[0];
- }
-
- public Boolean ask(final String msg) {
- if (!StorageUtils.showUI(null)) // container-independent operation
- return null;
-
- final Boolean[] result = new Boolean[1];
- PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
- public void run() {
- boolean reply = MessageDialog.openConfirm(StorageUtils.getShell(), SecUIMessages.generalDialogTitle, msg);
- result[0] = new Boolean(reply);
- }
- });
- return result[0];
- }
-
- public boolean runningUI() {
- return StorageUtils.runningUI();
- }
-
-}

Back to the top