### Eclipse Workspace Patch 1.0 #P org.eclipse.equinox.security.ui Index: src/org/eclipse/equinox/internal/security/ui/storage/ChallengeResponseDialog.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/security/bundles/org.eclipse.equinox.security.ui/src/org/eclipse/equinox/internal/security/ui/storage/ChallengeResponseDialog.java,v retrieving revision 1.4 diff -u -r1.4 ChallengeResponseDialog.java --- src/org/eclipse/equinox/internal/security/ui/storage/ChallengeResponseDialog.java 18 Apr 2008 18:30:20 -0000 1.4 +++ src/org/eclipse/equinox/internal/security/ui/storage/ChallengeResponseDialog.java 30 Apr 2008 21:07:35 -0000 @@ -67,10 +67,6 @@ setMessage(SecUIMessages.passwordMsg, IMessageProvider.INFORMATION); - Label storyLabel = new Label(composite, SWT.LEFT); - storyLabel.setText(SecUIMessages.passwordRecoveryLabel); - storyLabel.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false)); - for (int i = 0; i < size; i++) { Group group = new Group(composite, SWT.NONE); group.setText(NLS.bind(SecUIMessages.passwordGroup, Integer.toString(i + 1))); @@ -96,6 +92,10 @@ }); } + Label storyLabel = new Label(composite, SWT.LEFT); + storyLabel.setText(SecUIMessages.passwordRecoveryLabel); + storyLabel.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false)); + composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); GridLayoutFactory.swtDefaults().generateLayout(composite); Index: src/org/eclipse/equinox/internal/security/ui/storage/TabContents.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/security/bundles/org.eclipse.equinox.security.ui/src/org/eclipse/equinox/internal/security/ui/storage/TabContents.java,v retrieving revision 1.3 diff -u -r1.3 TabContents.java --- src/org/eclipse/equinox/internal/security/ui/storage/TabContents.java 30 Apr 2008 16:37:26 -0000 1.3 +++ src/org/eclipse/equinox/internal/security/ui/storage/TabContents.java 30 Apr 2008 21:07:35 -0000 @@ -63,7 +63,7 @@ new Label(rightPane, SWT.NONE).setText(SecUIMessages.keysTable); - Table tableOfValues = new Table(rightPane, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); + Table tableOfValues = new Table(rightPane, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); tableOfValues.setLinesVisible(true); tableOfValues.setHeaderVisible(true); tableOfValues.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); Index: src/org/eclipse/equinox/internal/security/ui/storage/StoragePreferencePage.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/security/bundles/org.eclipse.equinox.security.ui/src/org/eclipse/equinox/internal/security/ui/storage/StoragePreferencePage.java,v retrieving revision 1.7 diff -u -r1.7 StoragePreferencePage.java --- src/org/eclipse/equinox/internal/security/ui/storage/StoragePreferencePage.java 25 Apr 2008 19:52:33 -0000 1.7 +++ src/org/eclipse/equinox/internal/security/ui/storage/StoragePreferencePage.java 30 Apr 2008 21:07:35 -0000 @@ -39,9 +39,11 @@ Composite pageArea = new Composite(parent, SWT.NONE); pageArea.setLayout(new RowLayout()); + int minButtonWidth = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH); + final TabFolder folder = new TabFolder(parent, SWT.TOP); - passwordTab = new TabPassword(folder, 0, getShell()); - contentsTab = new TabContents(folder, 1, getShell(), convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH)); + passwordTab = new TabPassword(folder, 0, getShell(), minButtonWidth); + contentsTab = new TabContents(folder, 1, getShell(), minButtonWidth); advancedTab = new TabAdvanced(folder, 2, getShell()); folder.setSelection(0); folder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); Index: src/org/eclipse/equinox/internal/security/ui/storage/TabPassword.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/security/bundles/org.eclipse.equinox.security.ui/src/org/eclipse/equinox/internal/security/ui/storage/TabPassword.java,v retrieving revision 1.4 diff -u -r1.4 TabPassword.java --- src/org/eclipse/equinox/internal/security/ui/storage/TabPassword.java 25 Apr 2008 19:52:33 -0000 1.4 +++ src/org/eclipse/equinox/internal/security/ui/storage/TabPassword.java 30 Apr 2008 21:07:35 -0000 @@ -18,10 +18,12 @@ import org.eclipse.equinox.internal.security.ui.nls.SecUIMessages; import org.eclipse.equinox.security.storage.ISecurePreferences; import org.eclipse.equinox.security.storage.SecurePreferencesFactory; +import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.layout.GridLayoutFactory; import org.eclipse.jface.layout.LayoutConstants; import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; +import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.*; @@ -41,12 +43,19 @@ protected boolean providerModified = false; - public TabPassword(TabFolder folder, int index, final Shell shell) { + public TabPassword(TabFolder folder, int index, final Shell shell, int minButtonWidth) { TabItem tab = new TabItem(folder, SWT.NONE, index); tab.setText(SecUIMessages.tabPassword); Composite page = new Composite(folder, SWT.NONE); tab.setControl(page); + Composite topPart = new Composite(page, SWT.NONE); + GridData topData = new GridData(GridData.FILL, GridData.FILL, true, false); + topData.horizontalSpan = 2; + topPart.setLayoutData(topData); + topPart.setLayout(new GridLayout(2, false)); + new Label(topPart, SWT.NONE).setText(SecUIMessages.providerDescription); + // Left side Composite leftPart = new Composite(page, SWT.NONE); leftPart.setLayout(new GridLayout()); @@ -106,6 +115,7 @@ enableLogout(); } }); + setButtonSize(buttonChangePassword, minButtonWidth); buttonRecoverPassword = new Button(rightPart, SWT.NONE); buttonRecoverPassword.setText(SecUIMessages.recoverPasswordButton); @@ -127,6 +137,7 @@ enableLogout(); } }); + setButtonSize(buttonRecoverPassword, minButtonWidth); enableButtons(); @@ -252,4 +263,12 @@ buttonClearPassword.setEnabled(InternalExchangeUtils.isLoggedIn()); } + protected void setButtonSize(Button button, int minButtonWidth) { + Dialog.applyDialogFont(button); + GridData data = new GridData(); + Point minButtonSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true); + data.widthHint = Math.max(minButtonWidth, minButtonSize.x); + button.setLayoutData(data); + } + } Index: src/org/eclipse/equinox/internal/security/ui/nls/SecUIMessages.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/security/bundles/org.eclipse.equinox.security.ui/src/org/eclipse/equinox/internal/security/ui/nls/SecUIMessages.java,v retrieving revision 1.16 diff -u -r1.16 SecUIMessages.java --- src/org/eclipse/equinox/internal/security/ui/nls/SecUIMessages.java 24 Apr 2008 16:02:09 -0000 1.16 +++ src/org/eclipse/equinox/internal/security/ui/nls/SecUIMessages.java 30 Apr 2008 21:07:35 -0000 @@ -67,6 +67,7 @@ public static String saveButton; public static String exportButton; public static String locationButton; + public static String providerDescription; // secure storage view public static String generalTitle; Index: src/org/eclipse/equinox/internal/security/ui/nls/messages.properties =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/security/bundles/org.eclipse.equinox.security.ui/src/org/eclipse/equinox/internal/security/ui/nls/messages.properties,v retrieving revision 1.20 diff -u -r1.20 messages.properties --- src/org/eclipse/equinox/internal/security/ui/nls/messages.properties 25 Apr 2008 19:52:33 -0000 1.20 +++ src/org/eclipse/equinox/internal/security/ui/nls/messages.properties 30 Apr 2008 21:07:35 -0000 @@ -28,10 +28,10 @@ messageNoMatch = Password and confirmation characters did not match labelPassword = &Password: labelConfirm = &Confirm password: -buttonLogin = Login +buttonLogin = OK buttonExit = Cancel dialogTitle = Please enter the secure storage password. -passwordChangeTitle = Please enter a new password for the secure storage. +passwordChangeTitle = Please enter a new master password for the secure storage. showPassword = &Show password noDigestPassword = The message digest algorithm \"{0}\" is not available. locationGroup = Storage location @@ -42,9 +42,9 @@ ## Properties pages selectCipher = &Select encryption algorithm to use in new storages: -changePasswordButton = &Change -recoverPasswordButton = &Recover -deleteButton = D&elete +changePasswordButton = &Change... +recoverPasswordButton = &Recover... +deleteButton = D&elete... logoutButton = &Logout All providersTable = Providers: enabledColumn = Enabled @@ -58,9 +58,10 @@ tabPassword = Password tabAdvanced = Advanced tabContents = Contents -saveButton = &Save... +saveButton = &Save exportButton = &Export... locationButton = S&torage location: +providerDescription = The provider modules supply \'master\' passwords used to encrypt information.\nThe provider is selected based on the priority from the list of enabled providers. ## Secure storage view generalTitle = Secure Storage @@ -142,8 +143,8 @@ pswdRecoveryOptionMsg = A new password has been set up for the secure storage. Would you like to enable recovery of a lost password (this is optional)? passwordRecoveryTitle = Password Recovery passwordRecoveryTitleMsg = Please enter Question/Answer pairs. -passwordMsg = Lost passwords can be recovered using \"Recover\" option on the Secure Storage preferences page. -passwordRecoveryLabel = To be able to recover lost password in future, enter questions and answers below.\nAnswers are case-sensitive; treat answers as secondary passwords.\n +passwordMsg = Lost passwords can be recovered using \'Recover\' option on the Secure Storage preference page. +passwordRecoveryLabel = To be able to recover lost password in future, enter questions and answers above.\nAnswers are case-sensitive; treat answers as secondary passwords.\n passwordErrMsg = Questions and answers can not be empty. passwordGroup = Question {0} passwordQuestion = &Question: