summaryrefslogtreecommitdiff
path: root/src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/action/PopupMenuActionDelegate.java
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-08-17 09:37:18 -0700
committerandroid code review <noreply-gerritcodereview@google.com>2012-08-17 09:37:18 -0700
commitdd37e1328b736a11354a5847ad82c5f2551defa5 (patch)
tree10b2a4be4590c35e0f8027f3773fbcc61e05fd08 /src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/action/PopupMenuActionDelegate.java
parent1fc2254217371e1bae3c9373d2474b1053c869f9 (diff)
parentb613ddc1cf740750ab9dc20f1b051a2f04f5dbef (diff)
downloadmotodev-dd37e1328b736a11354a5847ad82c5f2551defa5.tar.gz
Merge "Initial contribution of Motorola MOTODEV tools code"
Diffstat (limited to 'src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/action/PopupMenuActionDelegate.java')
-rw-r--r--src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/action/PopupMenuActionDelegate.java224
1 files changed, 224 insertions, 0 deletions
diff --git a/src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/action/PopupMenuActionDelegate.java b/src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/action/PopupMenuActionDelegate.java
new file mode 100644
index 0000000..ad2c4d2
--- /dev/null
+++ b/src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/action/PopupMenuActionDelegate.java
@@ -0,0 +1,224 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.motorolamobility.studio.android.certmanager.ui.action;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+import com.motorola.studio.android.common.log.StudioLogger;
+import com.motorola.studio.android.common.utilities.EclipseUtils;
+import com.motorolamobility.studio.android.certmanager.command.BackupHandler;
+import com.motorolamobility.studio.android.certmanager.command.CertificatePropertiesHandler;
+import com.motorolamobility.studio.android.certmanager.command.ChangeKeyStoreTypeHandler;
+import com.motorolamobility.studio.android.certmanager.command.ChangePasswordKeyHandler;
+import com.motorolamobility.studio.android.certmanager.command.ChangePasswordKeystoreHandler;
+import com.motorolamobility.studio.android.certmanager.command.CreateKeyHandler;
+import com.motorolamobility.studio.android.certmanager.command.DeleteKeyHandler;
+import com.motorolamobility.studio.android.certmanager.command.DeleteKeystoreHandler;
+import com.motorolamobility.studio.android.certmanager.command.ImportKeyStoreEntriesHandler;
+import com.motorolamobility.studio.android.certmanager.command.RefreshHandler;
+import com.motorolamobility.studio.android.certmanager.command.SignExternalPackagesHandler;
+
+public class PopupMenuActionDelegate implements IObjectActionDelegate
+{
+
+ /**
+ * Enum type for ActionHandlers. If you need to add a new ActionHandler, just include
+ * a new type to this enum with the action id that you defined on your action extension point
+ */
+ enum ActionHandlers
+ {
+ SIGN_PACKAGE("com.motorolamobility.studio.android.certmanager.core.ui.action.addSignature") //$NON-NLS-1$
+ {
+ @Override
+ public IHandler getHandler()
+ {
+ return new SignExternalPackagesHandler();
+ }
+ },
+ BACKUP_KEYSTORE(
+ "com.motorolamobility.studio.android.certmanager.core.ui.action.backupKeystore") //$NON-NLS-1$
+ {
+ @Override
+ public IHandler getHandler()
+ {
+ //this handler will delegate the operation to another action that, in turn,
+ //will retrieve the current selection
+ //therefore, the parameter treeNode is not used here.
+ return new BackupHandler();
+ }
+
+ },
+ DELETE_KEYSTORE(
+ "com.motorolamobility.studio.android.certmanager.core.ui.action.deleteKeystore") //$NON-NLS-1$
+ {
+ @Override
+ public IHandler getHandler()
+ {
+ return new DeleteKeystoreHandler();
+ }
+
+ },
+ PROPERTIES_KEYSTORE(
+ "com.motorolamobility.studio.android.certmanager.core.ui.action.certificateProperties") //$NON-NLS-1$
+ {
+ @Override
+ public IHandler getHandler()
+ {
+ return new CertificatePropertiesHandler();
+ }
+
+ },
+ CHANGE_KEYSTORE_PASSWORD(
+ "com.motorolamobility.studio.android.certmanager.core.ui.action.changeKeystorePassword") //$NON-NLS-1$
+ {
+ @Override
+ public IHandler getHandler()
+ {
+ return new ChangePasswordKeystoreHandler();
+ }
+
+ },
+ CHANGE_KEY_PASSWORD(
+ "com.motorolamobility.studio.android.certmanager.core.ui.action.changeKeyPassword") //$NON-NLS-1$
+ {
+ @Override
+ public IHandler getHandler()
+ {
+ return new ChangePasswordKeyHandler();
+ }
+
+ },
+ CREATE_KEY("com.motorolamobility.studio.android.certmanager.core.ui.action.createKey") //$NON-NLS-1$
+ {
+ @Override
+ public IHandler getHandler()
+ {
+ return new CreateKeyHandler();
+ }
+
+ },
+ DELETE_KEY("com.motorolamobility.studio.android.certmanager.core.ui.action.deleteEntry") //$NON-NLS-1$
+ {
+ @Override
+ public IHandler getHandler()
+ {
+ return new DeleteKeyHandler();
+ }
+
+ },
+ REFRESH("com.motorolamobility.studio.android.certmanager.core.ui.action.refresh") //$NON-NLS-1$
+ {
+ @Override
+ public IHandler getHandler()
+ {
+ return new RefreshHandler();
+ }
+
+ },
+ CHANGE_KEYSTORE_TYPE(
+ "com.motorolamobility.studio.android.certmanager.core.ui.action.changeKeystoreType")
+ {
+ @Override
+ public IHandler getHandler()
+ {
+ return new ChangeKeyStoreTypeHandler();
+ }
+ },
+ IMPORT_KEYSTORE_ENTRIES(
+ "com.motorolamobility.studio.android.certmanager.core.ui.action.importKeystoreEntries")
+ {
+ @Override
+ public IHandler getHandler()
+ {
+ return new ImportKeyStoreEntriesHandler();
+ }
+ };
+
+ private final String actionId;
+
+ private ActionHandlers(String actionId)
+ {
+ this.actionId = actionId;
+ }
+
+ public abstract IHandler getHandler();
+
+ public static ActionHandlers getActionHandlerbyId(String id)
+ {
+
+ Object ret = null;
+ for (ActionHandlers h : ActionHandlers.values())
+ {
+ if (h.actionId.equals(id))
+ {
+ ret = h;
+ break;
+ }
+ }
+
+ return (ActionHandlers) ret;
+ }
+ }
+
+ @Override
+ public void run(IAction action)
+ {
+
+ ActionHandlers type = ActionHandlers.getActionHandlerbyId(action.getId());
+
+ IHandler handler = null;
+
+ if (type != null)
+ {
+ handler = type.getHandler();
+ }
+
+ if (handler != null)
+ {
+ ExecutionEvent event = new ExecutionEvent();
+ try
+ {
+ handler.execute(event);
+ }
+ catch (ExecutionException e)
+ {
+ StudioLogger.error(PopupMenuActionDelegate.class, e.getMessage(), e);
+ EclipseUtils.showErrorDialog("Execution error", e.getMessage());
+ }
+ }
+
+ }
+
+ @Override
+ public void selectionChanged(IAction action, ISelection selection)
+ {
+ //selection is retrieved by the handlers
+ }
+
+ @Override
+ public void setActivePart(IAction action, IWorkbenchPart targetPart)
+ {
+ //do nothing
+ }
+
+}