⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 j2mesigningpropertiespage.java

📁 配置文件
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		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 + -