summaryrefslogtreecommitdiff
path: root/src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/wizards/SelectExistentKeystorePage.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/wizards/SelectExistentKeystorePage.java')
-rw-r--r--src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/wizards/SelectExistentKeystorePage.java200
1 files changed, 200 insertions, 0 deletions
diff --git a/src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/wizards/SelectExistentKeystorePage.java b/src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/wizards/SelectExistentKeystorePage.java
new file mode 100644
index 0000000..71ecaef
--- /dev/null
+++ b/src/plugins/certmanager/src/com/motorolamobility/studio/android/certmanager/ui/wizards/SelectExistentKeystorePage.java
@@ -0,0 +1,200 @@
+/*
+ * 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.wizards;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
+
+import com.motorolamobility.studio.android.certmanager.CertificateManagerActivator;
+import com.motorolamobility.studio.android.certmanager.i18n.CertificateManagerNLS;
+
+/**
+ * Enables selection of a keystore (similar to {@link ImportKeystorePage} functionality.
+ * It adds a checkbox button that enables user to add the imported keystore into Signing and Keys view.
+ */
+public class SelectExistentKeystorePage extends ImportKeystorePage
+{
+ private static final int SMALL_TEXT_SIZE = 64;
+
+ public static final String SELECT_KEYSTORE_HELP_ID = CertificateManagerActivator.PLUGIN_ID
+ + ".select_keystore"; //$NON-NLS-1$
+
+ private Button alsoImportIntoView = null;
+
+ private boolean importIntoView = true;
+
+ private Label keystorePasswordLabel;
+
+ private Text keystorePassword;
+
+ private Button savePasswordCheckBox;
+
+ private boolean canSavePassword = false;
+
+ private String password = null;
+
+ private SelectionListener selectionListener = new SelectionAdapter()
+ {
+
+ @Override
+ public void widgetSelected(SelectionEvent e)
+ {
+ validatePage();
+ }
+ };
+
+ protected SelectExistentKeystorePage(String pageName)
+ {
+ super(pageName);
+ }
+
+ @Override
+ public void createControl(Composite parent)
+ {
+ super.createControl(parent);
+ setTitle(CertificateManagerNLS.SelectExistentKeystorePage_WizardPageTitle);
+ setMessage(CertificateManagerNLS.SelectExistentKeystorePage_WizardPageMessage);
+
+ //KEYSTORE PASSWORD SECTION
+ keystorePasswordLabel = new Label(getMainComposite(), SWT.NONE);
+ keystorePasswordLabel
+ .setText(CertificateManagerNLS.SelectExistentKeystorePage_KeystorePasswordLabel); //$NON-NLS-2$
+
+ keystorePassword = new Text(getMainComposite(), SWT.SINGLE | SWT.BORDER | SWT.PASSWORD);
+ keystorePassword.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
+ keystorePassword.setTextLimit(SMALL_TEXT_SIZE);
+ keystorePassword.addSelectionListener(selectionListener);
+ keystorePassword.addModifyListener(new ModifyListener()
+ {
+
+ @Override
+ public void modifyText(ModifyEvent e)
+ {
+ password = keystorePassword.getText();
+ validatePage();
+ }
+ });
+
+ //Creates the save password checkbox
+ savePasswordCheckBox = new Button(getMainComposite(), SWT.CHECK);
+ savePasswordCheckBox.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
+ savePasswordCheckBox.setText(CertificateManagerNLS.PasswordProvider_SaveThisPassword);
+ savePasswordCheckBox.setSelection(false);
+ savePasswordCheckBox.setVisible(importIntoView);
+ savePasswordCheckBox.addSelectionListener(new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected(SelectionEvent e)
+ {
+ //update according to check status
+ canSavePassword = savePasswordCheckBox.getSelection();
+ }
+
+ });
+
+ alsoImportIntoView = new Button(getMainComposite(), SWT.CHECK);
+ alsoImportIntoView.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
+ alsoImportIntoView
+ .setText(CertificateManagerNLS.SelectExistentKeystorePage_CheckboxText_AlsoImportIntoSigningView);
+ alsoImportIntoView.setSelection(importIntoView);
+ alsoImportIntoView.addSelectionListener(new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected(SelectionEvent e)
+ {
+ //update according to check status
+ importIntoView = alsoImportIntoView.getSelection();
+ savePasswordCheckBox.setEnabled(importIntoView);
+ canSavePassword = importIntoView && savePasswordCheckBox.getSelection();
+ }
+
+ });
+
+ //set help id for this page
+ PlatformUI.getWorkbench().getHelpSystem()
+ .setHelp(getMainComposite(), SELECT_KEYSTORE_HELP_ID);
+ }
+
+ /**
+ * @return the importIntoView
+ */
+ public boolean needToImportIntoView()
+ {
+ return importIntoView;
+ }
+
+ /**
+ * @return the password
+ */
+ protected String getPassword()
+ {
+ return password;
+ }
+
+ @Override
+ protected boolean validatePage()
+ {
+ boolean pageComplete = super.validatePage();
+
+ String infoMessage = CertificateManagerNLS.SelectExistentKeystorePage_WizardPageMessage;
+ String errorMessage = null;
+
+ if (pageComplete)
+ {
+ if (!keystoreAlreadyMapped)
+ {
+ if (keystorePassword.getText().isEmpty())
+ {
+ pageComplete = false;
+ errorMessage = CertificateManagerNLS.CertificateBlock_EnterPassword_InfoMessage;
+ }
+ setMessage(infoMessage);
+ setErrorMessage(errorMessage);
+ setPageComplete(pageComplete);
+ }
+ }
+
+ return pageComplete;
+ }
+
+ /**
+ * @return the canSavePassword
+ */
+ protected boolean canSavePassword()
+ {
+ return canSavePassword;
+ }
+
+ /* (non-Javadoc)
+ * @see com.motorolamobility.studio.android.certmanager.ui.wizards.ImportKeystorePage#importKeystore()
+ */
+ @Override
+ public boolean importKeystore()
+ {
+ return importKeystore(getPassword(), canSavePassword());
+ }
+}