📄 j2mesigningpropertiespage.java
字号:
String value = convertEmptyToNull(aliasText.getText());
if (value == null)
{
errorLabel.setText(ERROR_MISSING_ALIAS);
return(false);
}
sigProps.setKeyAlias(value);
if (savePasswordsInKeyringRadio.getSelection())
{
sigProps.setPasswordStorageMethod(ISignatureProperties.PASSMETHOD_IN_KEYRING);
value = convertEmptyToNull(keystorePassText.getText());
if (value == null)
{
errorLabel.setText(ERROR_MISSING_STOREPASS);
return(false);
}
sigProps.setKeyStorePassword(value);
value = convertEmptyToNull(keyPassText.getText());
if (value == null)
{
errorLabel.setText(ERROR_MISSING_KEYPASS);
return(false);
}
sigProps.setKeyPassword(value);
}
else if (savePasswordsInProjectRadio.getSelection())
{
sigProps.setPasswordStorageMethod(ISignatureProperties.PASSMETHOD_IN_PROJECT);
value = convertEmptyToNull(keystorePassText.getText());
if (value == null)
{
errorLabel.setText(ERROR_MISSING_STOREPASS);
return(false);
}
sigProps.setKeyStorePassword(value);
value = convertEmptyToNull(keyPassText.getText());
if (value == null)
{
errorLabel.setText(ERROR_MISSING_KEYPASS);
return(false);
}
sigProps.setKeyPassword(value);
}
else
{
sigProps.setPasswordStorageMethod(ISignatureProperties.PASSMETHOD_PROMPT);
sigProps.setKeyStorePassword(null);
sigProps.setKeyPassword(null);
}
sigProps.setKeyStoreProvider(convertEmptyToNull(providerText.getText()));
sigProps.setKeyStoreType(convertEmptyToNull(keystoreTypeText.getText()));
errorLabel.setText(""); //$NON-NLS-1$
testButton.setEnabled(true);
return(true);
}
/*
* This routine checks to see if the path specified for the keystore
* exists, and is a file (not a directory). Beyond this, we can't
* do more checking until they actually test the settings.
*/
private boolean isKeystorePathValid()
{
String value;
value = convertEmptyToNull(keyfilePath.getText());
if (value == null)
{
errorLabel.setText(ERROR_MISSING_KEYSTORE);
return(false);
}
if (!isKeyfileExternal)
{
try {
value = SignatureProperties.toAbsolute(value, getProject());
} catch (CoreException e) {
EclipseMECorePlugin.log(IStatus.ERROR, e);
return false;
}
}
File f = new File(value);
if (!f.exists())
{
errorLabel.setText(ERROR_NOSUCH_KEYSTORE);
return(false);
}
if (!f.isFile())
{
errorLabel.setText(ERROR_INVALID_KEYSTORE);
return(false);
}
return(true);
}
/*
* This routine is called in response to the "Browse" button to allow
* the user to choose a keystore file using a File Open dialog.
*/
private void browseExternalForKeystore()
{
FileDialog dlg = new FileDialog(getShell(), SWT.OPEN);
dlg.setText(BROWSE_DIALOG_TITLE);
dlg.setFilterNames(BROWSE_FILTER_NAMES);
dlg.setFilterExtensions(BROWSE_FILTER_EXTENSIONS);
String path = dlg.open();
if (path == null)
{
return;
}
keyfilePath.setText(path);
isKeyfileExternal = true;
}
/*
* This routine is called in response to the "Browse" button to allow
* the user to choose a keystore file using a File Open dialog.
*/
private void browseProjectForKeystore()
{
ElementTreeSelectionDialog dialog =
new ElementTreeSelectionDialog(getShell(),
new WorkbenchLabelProvider(),
new WorkbenchContentProvider());
dialog.setTitle(BROWSE_DIALOG_TITLE);
dialog.setMessage(BROWSE_DIALOG_MESSAGE); //$NON-NLS-1$
dialog.setInput(getProject());
dialog.setAllowMultiple(false);
dialog.setEmptyListMessage(BROWSE_NEED_FILE);
dialog.setStatusLineAboveButtons(true);
dialog.setValidator(
new ISelectionStatusValidator()
{
public IStatus validate(Object [] selection)
{
if (selection.length == 0)
{
return new Status(IStatus.ERROR, IEclipseMEUIConstants.PLUGIN_ID, 1, BROWSE_NEED_FILE, null);
}
if (!(selection[0] instanceof IFile))
{
return new Status(IStatus.ERROR, IEclipseMEUIConstants.PLUGIN_ID, 1, BROWSE_NEED_FILE, null);
}
return new Status(IStatus.OK, IEclipseMEUIConstants.PLUGIN_ID, IStatus.OK, ((IFile)selection[0]).getName(), null);
}
}
);
if (dialog.open() != ElementTreeSelectionDialog.OK)
{
return;
}
Object[] result = dialog.getResult();
if (result.length == 0 || !(result[0] instanceof IFile))
{
return;
}
IFile theFile = (IFile)result[0];
IPath fullPath = theFile.getFullPath();
/*
* The full path comes back with the name of the project in the
* first segment. Removing the first segment gives us a path that's
* really (from a file system point of view) relative to the
* project home directory.
*/
IPath relativePath = fullPath.removeFirstSegments(1);
String filePath = relativePath.toString();
/*
* "toRelative" in this sense means prepending the prefix
* to put the string into its "relative display form".
*/
String displayPath = SignatureProperties.toRelative(filePath);
keyfilePath.setText(displayPath);
isKeyfileExternal = false;
}
/*
* This routine is called in response to the user pushing the "test settings"
* button. It tries to load up the key from the keystore and check to make
* sure it's acceptable to the JadSignature class. If necessary, it will
* prompt for the passwords.
*/
private void testSettings()
{
if (!updateSigningFields())
{
return;
}
IMidletSuiteProject project = getMidletSuiteProject();
try
{
IJadSignature sig = SignatureUtils.getSignatureObject(project, sigProps);
if (sig != null)
{
MessageDialog.openInformation( getShell(),
EclipseMEUIStrings.getString("common.success"), //$NON-NLS-1$
TEST_SUCCESS);
}
}
catch(CoreException ce)
{
EclipseMEUIErrors.displayError( getShell(),
null, // use default
"J2MEProjectPropertiesPage.VerificationFailed", //$NON-NLS-1$
ce.getStatus());
}
}
/**
* Get the midlet suite project for this project.
*
* @return
*/
private IMidletSuiteProject getMidletSuiteProject() {
IJavaProject javaProject = JavaCore.create(getProject());
IMidletSuiteProject midletProject =
MidletSuiteFactory.getMidletSuiteProject(javaProject);
return midletProject;
}
/**
* Get the selected project or <code>null</code>
* if a project is not selected.
*
* @return
*/
private IProject getProject() {
IProject project = null;
IAdaptable adaptable = getElement();
if (adaptable instanceof IProject) {
project = (IProject) adaptable;
} else if (adaptable instanceof IJavaProject) {
project = ((IJavaProject) adaptable).getProject();
}
return project;
}
/**
* Return a boolean indicating whether the selected
* element is a J2ME project.
*
* @return
*/
private boolean isJ2MEProject(IProject project) {
boolean j2meProject = false;
if (project != null) {
try {
IProjectNature nature =
project.getNature(IEclipseMECoreConstants.J2ME_NATURE_ID);
j2meProject = (nature != null);
} catch (CoreException e) {
}
}
return j2meProject;
}
private static final String SIGNING_GROUP_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.SigningProperties"); //$NON-NLS-1$
private static final String SIGN_PROJECT_CHECK_BUTTON_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.SignProject"); //$NON-NLS-1$
private static final String KEYSTORE_LABEL_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.KeystoreFile"); //$NON-NLS-1$
private static final String EXTERNAL_BROWSE_BUTTON_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.BrowseExternal"); //$NON-NLS-1$
private static final String INTERNAL_BROWSE_BUTTON_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.BrowseInternal"); //$NON-NLS-1$
private static final String ALIAS_LABEL_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.KeyAlias"); //$NON-NLS-1$
private static final String PROMPT_FOR_PWD_LABEL_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.PromptForPasswords"); //$NON-NLS-1$
private static final String STORE_PWD_KEYRING_LABEL_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.SavePasswordsInKeyring"); //$NON-NLS-1$
private static final String STORE_PWD_PROJECT_LABEL_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.SavePasswordsInProject"); //$NON-NLS-1$
private static final String KEYSTORE_PWD_LABEL_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.KeystorePassword"); //$NON-NLS-1$
private static final String KEY_PWD_LABEL_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.KeyPassword"); //$NON-NLS-1$
private static final String TEST_BUTTON_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.VerifySettings"); //$NON-NLS-1$
private static final String ADVANCED_GROUP_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.AdvancedSettings"); //$NON-NLS-1$
private static final String ADVANCED_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.LeaveEmptyForDefaults"); //$NON-NLS-1$
private static final String PROVIDER_LABEL_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.CryptoProvider"); //$NON-NLS-1$
private static final String KEYSTORE_TYPE_LABEL_TEXT = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.KeystoreType"); //$NON-NLS-1$
private static final String ERROR_MISSING_KEYSTORE = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.ErrKeystoreFileRequired"); //$NON-NLS-1$
private static final String ERROR_NOSUCH_KEYSTORE = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.ErrKeystoreDoesntExist"); //$NON-NLS-1$
private static final String ERROR_INVALID_KEYSTORE = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.ErrInvalidKeystore"); //$NON-NLS-1$
private static final String ERROR_MISSING_ALIAS = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.ErrAliasRequired"); //$NON-NLS-1$
private static final String ERROR_MISSING_STOREPASS = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.KeystorePassRequired"); //$NON-NLS-1$
private static final String ERROR_MISSING_KEYPASS = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.KeyPassRequired"); //$NON-NLS-1$
private static final String TEST_SUCCESS = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.SettingsVerified"); //$NON-NLS-1$
private static final String BROWSE_DIALOG_TITLE = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.BrowseForKeystore"); //$NON-NLS-1$
private static final String BROWSE_DIALOG_MESSAGE = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.BrowseForKeystoreMsg"); //$NON-NLS-1$
private static final String BROWSE_NEED_FILE = EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.BrowseForKeystoreNeedFile"); //$NON-NLS-1$
private static final String[] BROWSE_FILTER_NAMES =
{
EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.FilterNameKeystores"), //$NON-NLS-1$
EclipseMEUIStrings.getString("J2MEProjectPropertiesPage.FilterNameAllFiles") //$NON-NLS-1$
};
private static final String[] BROWSE_FILTER_EXTENSIONS =
{
"*.ks", //$NON-NLS-1$
"*.*" //$NON-NLS-1$
};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -