/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Copyright @ 2015 Atlassian Pty Ltd * * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0 * * 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 net.java.sip.communicator.plugin.desktoputil; import java.awt.*; import java.security.cert.*; import javax.swing.*; import org.jitsi.service.resources.*; /** * Frame for showing information about a certificate. */ public class ViewCertificateFrame extends SIPCommFrame { /** * Serial version UID. */ private static final long serialVersionUID = 0L; /** * The resource service. */ private final ResourceManagementService R = DesktopUtilActivator.getResources(); /** * The maximum width that we allow message dialogs to have. */ private static final int MAX_MSG_PANE_WIDTH = 600; /** * The maximum height that we allow message dialogs to have. */ private static final int MAX_MSG_PANE_HEIGHT = 800; /** * The certificates to show. */ Certificate[] certs; /** * A text that describes why the verification failed. */ String message; /** * The certificate panel. */ TransparentPanel certPanel; /** * This dialog content pane. */ TransparentPanel contentPane; /** * Creates the dialog. * * @param certs the certificates list * @param title The title of the dialog; when null the resource * <tt>service.gui.CERT_DIALOG_TITLE</tt> is loaded. * @param message A text that describes why the verification failed. */ public ViewCertificateFrame(Certificate[] certs, String title, String message) { super(false); setTitle(title != null ? title : R.getI18NString("service.gui.CERT_DIALOG_TITLE")); this.certs = certs; this.message = message; setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); init(); setLocationRelativeTo(getParent()); } /** * Inits the dialog initial display. */ private void init() { this.getContentPane().setLayout(new BorderLayout()); contentPane = new TransparentPanel(new BorderLayout(5, 5)); TransparentPanel northPanel = new TransparentPanel(new BorderLayout(5, 5)); northPanel.setBorder(BorderFactory.createEmptyBorder(10, 5, 5, 5)); JLabel imgLabel = new JLabel( R.getImage("service.gui.icons.CERTIFICATE_WARNING")); imgLabel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); northPanel.add(imgLabel, BorderLayout.WEST); StyledHTMLEditorPane descriptionPane = new StyledHTMLEditorPane(); descriptionPane.setOpaque(false); descriptionPane.setEditable(false); descriptionPane.setContentType("text/html"); descriptionPane.setText(message); descriptionPane.setSize( new Dimension(MAX_MSG_PANE_WIDTH, MAX_MSG_PANE_HEIGHT)); int height = descriptionPane.getPreferredSize().height; descriptionPane.setPreferredSize( new Dimension(MAX_MSG_PANE_WIDTH, height)); northPanel.add(descriptionPane, BorderLayout.CENTER); contentPane.add(northPanel, BorderLayout.NORTH); certPanel = new TransparentPanel(new BorderLayout()); contentPane.add(certPanel, BorderLayout.CENTER); this.getContentPane().add(contentPane, BorderLayout.CENTER); certPanel.add(new X509CertificatePanel(certs), BorderLayout.CENTER); setPreferredSize(null); pack(); } }