diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/export/KeySelectionPage.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/export/KeySelectionPage.java | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/export/KeySelectionPage.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/export/KeySelectionPage.java deleted file mode 100644 index 604a208e6..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/export/KeySelectionPage.java +++ /dev/null @@ -1,268 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php - * - * 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.android.ide.eclipse.adt.internal.wizards.export; - -import com.android.ide.eclipse.adt.internal.project.ProjectHelper; -import com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.ExportWizardPage; - -import org.eclipse.core.resources.IProject; -import org.eclipse.jface.wizard.IWizardPage; -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.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; - -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.CertificateException; -import java.util.ArrayList; -import java.util.Enumeration; - -/** - * Key Selection Page. This is used when an existing keystore is used. - */ -final class KeySelectionPage extends ExportWizardPage { - - private final ExportWizard mWizard; - private Label mKeyAliasesLabel; - private Combo mKeyAliases; - private Label mKeyPasswordLabel; - private Text mKeyPassword; - private boolean mDisableOnChange = false; - private Button mUseExistingKey; - private Button mCreateKey; - - protected KeySelectionPage(ExportWizard wizard, String pageName) { - super(pageName); - mWizard = wizard; - - setTitle("Key alias selection"); - setDescription(""); // TODO - } - - @Override - public void createControl(Composite parent) { - Composite composite = new Composite(parent, SWT.NULL); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - GridLayout gl = new GridLayout(3, false); - composite.setLayout(gl); - - GridData gd; - - mUseExistingKey = new Button(composite, SWT.RADIO); - mUseExistingKey.setText("Use existing key"); - mUseExistingKey.setLayoutData(gd = new GridData(GridData.FILL_HORIZONTAL)); - gd.horizontalSpan = 3; - mUseExistingKey.setSelection(true); - - new Composite(composite, SWT.NONE).setLayoutData(gd = new GridData()); - gd.heightHint = 0; - gd.widthHint = 50; - mKeyAliasesLabel = new Label(composite, SWT.NONE); - mKeyAliasesLabel.setText("Alias:"); - mKeyAliases = new Combo(composite, SWT.READ_ONLY); - mKeyAliases.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - new Composite(composite, SWT.NONE).setLayoutData(gd = new GridData()); - gd.heightHint = 0; - gd.widthHint = 50; - mKeyPasswordLabel = new Label(composite, SWT.NONE); - mKeyPasswordLabel.setText("Password:"); - mKeyPassword = new Text(composite, SWT.BORDER | SWT.PASSWORD); - mKeyPassword.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - mCreateKey = new Button(composite, SWT.RADIO); - mCreateKey.setText("Create new key"); - mCreateKey.setLayoutData(gd = new GridData(GridData.FILL_HORIZONTAL)); - gd.horizontalSpan = 3; - - // Show description the first time - setErrorMessage(null); - setMessage(null); - setControl(composite); - - mUseExistingKey.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - mWizard.setKeyCreationMode(!mUseExistingKey.getSelection()); - enableWidgets(); - onChange(); - } - }); - - mKeyAliases.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - mWizard.setKeyAlias(mKeyAliases.getItem(mKeyAliases.getSelectionIndex())); - onChange(); - } - }); - - mKeyPassword.addModifyListener(new ModifyListener() { - @Override - public void modifyText(ModifyEvent e) { - mWizard.setKeyPassword(mKeyPassword.getText()); - onChange(); - } - }); - } - - @Override - void onShow() { - // fill the texts with information loaded from the project. - if ((mProjectDataChanged & (DATA_PROJECT | DATA_KEYSTORE)) != 0) { - // disable onChange for now. we'll call it once at the end. - mDisableOnChange = true; - - // reset the alias from the content of the project - try { - // reset to using a key - mWizard.setKeyCreationMode(false); - mUseExistingKey.setSelection(true); - mCreateKey.setSelection(false); - enableWidgets(); - - // remove the content of the alias combo always and first, in case the - // keystore password is wrong - mKeyAliases.removeAll(); - - // get the alias list (also used as a keystore password test) - KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); - FileInputStream fis = new FileInputStream(mWizard.getKeystore()); - keyStore.load(fis, mWizard.getKeystorePassword().toCharArray()); - fis.close(); - - Enumeration<String> aliases = keyStore.aliases(); - - // get the alias from the project previous export, and look for a match as - // we add the aliases to the combo. - IProject project = mWizard.getProject(); - - String keyAlias = ProjectHelper.loadStringProperty(project, - ExportWizard.PROPERTY_ALIAS); - - ArrayList<String> aliasList = new ArrayList<String>(); - - int selection = -1; - int count = 0; - while (aliases.hasMoreElements()) { - String alias = aliases.nextElement(); - mKeyAliases.add(alias); - aliasList.add(alias); - if (selection == -1 && alias.equalsIgnoreCase(keyAlias)) { - selection = count; - } - count++; - } - - mWizard.setExistingAliases(aliasList); - - if (selection != -1) { - mKeyAliases.select(selection); - - // since a match was found and is selected, we need to give it to - // the wizard as well - mWizard.setKeyAlias(keyAlias); - } else { - mKeyAliases.clearSelection(); - } - - // reset the password - mKeyPassword.setText(""); //$NON-NLS-1$ - - // enable onChange, and call it to display errors and enable/disable pageCompleted. - mDisableOnChange = false; - onChange(); - } catch (KeyStoreException e) { - onException(e); - } catch (FileNotFoundException e) { - onException(e); - } catch (NoSuchAlgorithmException e) { - onException(e); - } catch (CertificateException e) { - onException(e); - } catch (IOException e) { - onException(e); - } finally { - // in case we exit with an exception, we need to reset this - mDisableOnChange = false; - } - } - } - - @Override - public IWizardPage getPreviousPage() { - return mWizard.getKeystoreSelectionPage(); - } - - @Override - public IWizardPage getNextPage() { - if (mWizard.getKeyCreationMode()) { - return mWizard.getKeyCreationPage(); - } - - return mWizard.getKeyCheckPage(); - } - - /** - * Handles changes and update the error message and calls {@link #setPageComplete(boolean)}. - */ - private void onChange() { - if (mDisableOnChange) { - return; - } - - setErrorMessage(null); - setMessage(null); - - if (mWizard.getKeyCreationMode() == false) { - if (mKeyAliases.getSelectionIndex() == -1) { - setErrorMessage("Select a key alias."); - setPageComplete(false); - return; - } - - if (mKeyPassword.getText().trim().length() == 0) { - setErrorMessage("Enter key password."); - setPageComplete(false); - return; - } - } - - setPageComplete(true); - } - - private void enableWidgets() { - boolean useKey = !mWizard.getKeyCreationMode(); - mKeyAliasesLabel.setEnabled(useKey); - mKeyAliases.setEnabled(useKey); - mKeyPassword.setEnabled(useKey); - mKeyPasswordLabel.setEnabled(useKey); - } -} |