Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMickael Istria2022-01-11 15:58:53 +0000
committerMickael Istria2022-01-11 22:17:48 +0000
commitbcc7488f0d8c02b4a6e2f8dd4910fb6f629f8a82 (patch)
tree5ac53496152714521d2e6e0f3b5be79ca96b8f13
parente4c17a210631e7961d5574174128bd5dbc8ce192 (diff)
downloadrt.equinox.p2-bcc7488f0d8c02b4a6e2f8dd4910fb6f629f8a82.tar.gz
rt.equinox.p2-bcc7488f0d8c02b4a6e2f8dd4910fb6f629f8a82.tar.xz
rt.equinox.p2-bcc7488f0d8c02b4a6e2f8dd4910fb6f629f8a82.zip
Add helpContext and shows expiration date. Change-Id: Ie8b3c737669655e34060496f7b25468fc36fc1d6 Reviewed-on: https://git.eclipse.org/r/c/equinox/rt.equinox.p2/+/189481 Tested-by: Equinox Bot <equinox-bot@eclipse.org> Reviewed-by: Mickael Istria <mistria@redhat.com>
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/IProvHelpContextIds.java22
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/TrustCertificateDialog.java37
2 files changed, 42 insertions, 17 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/IProvHelpContextIds.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/IProvHelpContextIds.java
index cba53aa52..3c75aa5e9 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/IProvHelpContextIds.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/IProvHelpContextIds.java
@@ -13,35 +13,37 @@
*******************************************************************************/
package org.eclipse.equinox.internal.p2.ui;
-
/**
* Help context ids for the P2 UI
* <p>
* This interface contains constants only; it is not intended to be implemented
* or extended.
* </p>
+ *
* @since 3.4
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface IProvHelpContextIds {
- public static final String PREFIX = ProvUIActivator.PLUGIN_ID + "."; //$NON-NLS-1$
+ String PREFIX = ProvUIActivator.PLUGIN_ID + "."; //$NON-NLS-1$
+
+ String REVERT_CONFIGURATION_WIZARD = PREFIX + "revert_configuration_wizard_context"; //$NON-NLS-1$
- public static final String REVERT_CONFIGURATION_WIZARD = PREFIX + "revert_configuration_wizard_context"; //$NON-NLS-1$
+ String UNINSTALL_WIZARD = PREFIX + "uinstall_wizard_context"; //$NON-NLS-1$
- public static final String UNINSTALL_WIZARD = PREFIX + "uinstall_wizard_context"; //$NON-NLS-1$
+ String UPDATE_WIZARD = PREFIX + "update_wizard_context"; //$NON-NLS-1$
- public static final String UPDATE_WIZARD = PREFIX + "update_wizard_context"; //$NON-NLS-1$
+ String ADD_REPOSITORY_DIALOG = PREFIX + "add_repository_dialog_context"; //$NON-NLS-1$
- public static final String ADD_REPOSITORY_DIALOG = PREFIX + "add_repository_dialog_context"; //$NON-NLS-1$
+ String INSTALL_WIZARD = PREFIX + "install_wizard_context"; //$NON-NLS-1$
- public static final String INSTALL_WIZARD = PREFIX + "install_wizard_context"; //$NON-NLS-1$
+ String REPOSITORY_MANIPULATION_DIALOG = PREFIX + "repository_manipulation_dialog_context"; //$NON-NLS-1$
- public static final String REPOSITORY_MANIPULATION_DIALOG = PREFIX + "repository_manipulation_dialog_context"; //$NON-NLS-1$
+ String INSTALLED_SOFTWARE = PREFIX + "installed_software_context"; //$NON-NLS-1$
- public static final String INSTALLED_SOFTWARE = PREFIX + "installed_software_context"; //$NON-NLS-1$
+ String AVAILABLE_SOFTWARE = PREFIX + "available_software_context"; //$NON-NLS-1$
- public static final String AVAILABLE_SOFTWARE = PREFIX + "available_software_context"; //$NON-NLS-1$
+ String TRUST_DIALOG = PREFIX + "trust_dialog_context"; //$NON-NLS-1$
}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/TrustCertificateDialog.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/TrustCertificateDialog.java
index 5ffad2efc..23fcf9b35 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/TrustCertificateDialog.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/TrustCertificateDialog.java
@@ -17,29 +17,30 @@ package org.eclipse.equinox.internal.p2.ui.dialogs;
import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter;
import java.io.*;
-import java.security.cert.CertificateEncodingException;
-import java.security.cert.X509Certificate;
-import java.util.ArrayList;
-import java.util.Iterator;
+import java.security.cert.*;
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+import java.util.*;
import java.util.function.Function;
import org.bouncycastle.bcpg.ArmoredOutputStream;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.ui.ProvUIActivator;
-import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
+import org.eclipse.equinox.internal.p2.ui.*;
import org.eclipse.equinox.internal.p2.ui.viewers.CertificateLabelProvider;
import org.eclipse.equinox.internal.provisional.security.ui.X500PrincipalHelper;
import org.eclipse.equinox.internal.provisional.security.ui.X509CertificateViewDialog;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.viewers.*;
+import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.*;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.SelectionDialog;
/**
@@ -69,6 +70,7 @@ public class TrustCertificateDialog extends SelectionDialog {
setMessage(containsPGPKeys(inputElement) ? ProvUIMessages.TrustCertificateDialog_MessageWithPGP
: ProvUIMessages.TrustCertificateDialog_Message);
setShellStyle(SWT.DIALOG_TRIM | SWT.MODELESS | SWT.RESIZE | getDefaultOrientation());
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(parentShell, IProvHelpContextIds.TRUST_DIALOG);
}
private static boolean containsPGPKeys(Object inputElement) {
@@ -245,6 +247,7 @@ public class TrustCertificateDialog extends SelectionDialog {
data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
data.widthHint = SIZING_SELECTION_WIDGET_WIDTH;
listViewer.getTable().setLayoutData(data);
+ listViewer.getTable().setHeaderVisible(true);
listViewer.setContentProvider(contentProvider);
TableViewerColumn typeColumn = new TableViewerColumn(listViewer, SWT.NONE);
@@ -268,7 +271,27 @@ public class TrustCertificateDialog extends SelectionDialog {
return principalHelper.getCN() + "; " + principalHelper.getOU() + "; " //$NON-NLS-1$ //$NON-NLS-2$
+ principalHelper.getO();
}));
- listViewer.getTable().setHeaderVisible(true);
+ TableViewerColumn validColumn = new TableViewerColumn(listViewer, SWT.NONE);
+ validColumn.getColumn().setText(ProvUIMessages.TrustCertificateDialog_dates);
+ validColumn.getColumn().setWidth(100);
+ validColumn.setLabelProvider(new PGPOrX509ColumnLabelProvider(pgp -> {
+ if (pgp.getCreationTime().after(Date.from(Instant.now()))) {
+ return NLS.bind(ProvUIMessages.TrustCertificateDialog_NotYetValidStartDate, pgp.getCreationTime());
+ }
+ Instant expires = pgp.getCreationTime().toInstant().plus(pgp.getValidSeconds(), ChronoUnit.SECONDS);
+ return expires.isBefore(Instant.now())
+ ? NLS.bind(ProvUIMessages.TrustCertificateDialog_expiredSince, expires)
+ : NLS.bind(ProvUIMessages.TrustCertificateDialog_validExpires, expires);
+ }, x509 -> {
+ try {
+ x509.checkValidity();
+ return ProvUIMessages.TrustCertificateDialog_valid;
+ } catch (CertificateExpiredException expired) {
+ return ProvUIMessages.TrustCertificateDialog_expired;
+ } catch (CertificateNotYetValidException notYetValid) {
+ return ProvUIMessages.TrustCertificateDialog_notYetValid;
+ }
+ }));
Menu menu = new Menu(listViewer.getTable());
listViewer.getTable().setMenu(menu);

Back to the top