/hg/icedtea-web: All security dialogs moved to appropriate package
jvanek at icedtea.classpath.org
jvanek at icedtea.classpath.org
Wed Mar 5 15:33:06 UTC 2014
changeset 0a36108ce4b9 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=0a36108ce4b9
author: Jiri Vanek <jvanek at redhat.com>
date: Wed Mar 05 16:41:06 2014 +0100
All security dialogs moved to appropriate package
diffstat:
ChangeLog | 40 +
netx/net/sourceforge/jnlp/security/AccessWarningPane.java | 213 ------
netx/net/sourceforge/jnlp/security/AppTrustWarningDialog.java | 68 -
netx/net/sourceforge/jnlp/security/AppTrustWarningPanel.java | 338 ---------
netx/net/sourceforge/jnlp/security/AppletWarningPane.java | 114 ---
netx/net/sourceforge/jnlp/security/CertWarningPane.java | 319 ---------
netx/net/sourceforge/jnlp/security/CertificateUtils.java | 5 -
netx/net/sourceforge/jnlp/security/CertsInfoPane.java | 347 ---------
netx/net/sourceforge/jnlp/security/HttpsCertVerifier.java | 1 +
netx/net/sourceforge/jnlp/security/KeyStores.java | 2 +-
netx/net/sourceforge/jnlp/security/MoreInfoPane.java | 125 ---
netx/net/sourceforge/jnlp/security/NotAllSignedWarningPane.java | 114 ---
netx/net/sourceforge/jnlp/security/PasswordAuthenticationPane.java | 182 -----
netx/net/sourceforge/jnlp/security/SecurityDialog.java | 14 +-
netx/net/sourceforge/jnlp/security/SecurityDialogMessageHandler.java | 1 -
netx/net/sourceforge/jnlp/security/SecurityDialogPanel.java | 119 ---
netx/net/sourceforge/jnlp/security/SecurityDialogs.java | 2 +-
netx/net/sourceforge/jnlp/security/SingleCertInfoPane.java | 76 --
netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java | 63 -
netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java | 106 ---
netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java | 2 +-
netx/net/sourceforge/jnlp/security/dialogs/AccessWarningPane.java | 216 ++++++
netx/net/sourceforge/jnlp/security/dialogs/AppletWarningPane.java | 116 +++
netx/net/sourceforge/jnlp/security/dialogs/CertWarningPane.java | 325 +++++++++
netx/net/sourceforge/jnlp/security/dialogs/CertsInfoPane.java | 350 ++++++++++
netx/net/sourceforge/jnlp/security/dialogs/MoreInfoPane.java | 128 +++
netx/net/sourceforge/jnlp/security/dialogs/NotAllSignedWarningPane.java | 115 +++
netx/net/sourceforge/jnlp/security/dialogs/PasswordAuthenticationPane.java | 185 +++++
netx/net/sourceforge/jnlp/security/dialogs/SecurityDialogPanel.java | 121 +++
netx/net/sourceforge/jnlp/security/dialogs/SingleCertInfoPane.java | 81 ++
netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/AppTrustWarningDialog.java | 70 ++
netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/AppTrustWarningPanel.java | 339 +++++++++
netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/UnsignedAppletTrustWarningDialog.java | 65 +
netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/UnsignedAppletTrustWarningPanel.java | 106 +++
tests/netx/unit/net/sourceforge/jnlp/security/AppTrustWarningPanelTest.java | 123 ---
tests/netx/unit/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/AppTrustWarningPanelTest.java | 125 +++
tests/netx/unit/net/sourceforge/jnlp/util/ClasspathMatcherTest.java | 16 +-
37 files changed, 2405 insertions(+), 2327 deletions(-)
diffs (truncated from 4956 to 500 lines):
diff -r 907fe0c8a3fa -r 0a36108ce4b9 ChangeLog
--- a/ChangeLog Wed Mar 05 15:43:03 2014 +0100
+++ b/ChangeLog Wed Mar 05 16:41:06 2014 +0100
@@ -1,3 +1,43 @@
+2014-03-05 Jiri Vanek <jvanek at redhat.com>
+
+ All security dialogs moved to appropriate package
+ * netx/net/sourceforge/jnlp/security/AccessWarningPane.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/AccessWarningPane.java:
+ * netx/net/sourceforge/jnlp/security/AppletWarningPane.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/AppletWarningPane.java:
+ * netx/net/sourceforge/jnlp/security/CertWarningPane.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/CertWarningPane.java
+ * netx/net/sourceforge/jnlp/security/CertsInfoPane.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/CertsInfoPane.java:
+ * netx/net/sourceforge/jnlp/security/MoreInfoPane.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/MoreInfoPane.java:
+ * netx/net/sourceforge/jnlp/security/NotAllSignedWarningPane.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/NotAllSignedWarningPane.java:
+ * netx/net/sourceforge/jnlp/security/PasswordAuthenticationPane.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/PasswordAuthenticationPane.java:
+ * netx/net/sourceforge/jnlp/security/SecurityDialogPanel.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/SecurityDialogPanel.java:
+ * netx/net/sourceforge/jnlp/security/SingleCertInfoPane.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/SingleCertInfoPane.java:
+ * netx/net/sourceforge/jnlp/security/AppTrustWarningDialog.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/AppTrustWarningDialog.java:
+ * netx/net/sourceforge/jnlp/security/AppTrustWarningPanel.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/AppTrustWarningPanel.java:
+ * netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/UnsignedAppletTrustWarningDialog.java:
+ * netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java: to
+ * netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/UnsignedAppletTrustWarningPanel.java:
+ * tests/netx/unit/net/sourceforge/jnlp/security/AppTrustWarningPanelTest.java: to
+ * tests/netx/unit/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/AppTrustWarningPanelTest.java:
+ * tests/netx/unit/net/sourceforge/jnlp/util/ClasspathMatcherTest.java: necessary changes
+ * netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java: necessary changes
+ * netx/net/sourceforge/jnlp/security/SecurityDialogs.java: necessary changes
+ * netx/net/sourceforge/jnlp/security/SecurityDialogMessageHandler.java: necessary changes
+ * netx/net/sourceforge/jnlp/security/SecurityDialog.java: necessary changes
+ * netx/net/sourceforge/jnlp/security/KeyStores.java: necessary changes
+ * netx/net/sourceforge/jnlp/security/HttpsCertVerifier.java: necessary changes
+ * netx/net/sourceforge/jnlp/security/CertificateUtils.java: necessary changes
+
2014-03-05 Jiri Vanek <jvanek at redhat.com>
* netx/net/sourceforge/jnlp/security/AppTrustWarningPanel.java: fixed
diff -r 907fe0c8a3fa -r 0a36108ce4b9 netx/net/sourceforge/jnlp/security/AccessWarningPane.java
--- a/netx/net/sourceforge/jnlp/security/AccessWarningPane.java Wed Mar 05 15:43:03 2014 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-/* AccessWarningPane.java
- Copyright (C) 2008 Red Hat, Inc.
-
-This file is part of IcedTea.
-
-IcedTea is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License as published by
-the Free Software Foundation, version 2.
-
-IcedTea is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with IcedTea; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version.
-*/
-
-package net.sourceforge.jnlp.security;
-
-import static net.sourceforge.jnlp.runtime.Translator.R;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.BorderFactory;
-import javax.swing.BoxLayout;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.SwingConstants;
-
-import net.sourceforge.jnlp.JNLPFile;
-import net.sourceforge.jnlp.security.SecurityDialogs.AccessType;
-import net.sourceforge.jnlp.util.FileUtils;
-
-/**
- * Provides a panel to show inside a SecurityDialog. These dialogs are
- * used to warn the user when either signed code (with or without signing
- * issues) is going to be run, or when service permission (file, clipboard,
- * printer, etc) is needed with unsigned code.
- *
- * @author <a href="mailto:jsumali at redhat.com">Joshua Sumali</a>
- */
-public class AccessWarningPane extends SecurityDialogPanel {
-
- JCheckBox alwaysAllow;
- Object[] extras;
-
- public AccessWarningPane(SecurityDialog x, CertVerifier certVerifier) {
- super(x, certVerifier);
- addComponents();
- }
-
- public AccessWarningPane(SecurityDialog x, Object[] extras, CertVerifier certVerifier) {
- super(x, certVerifier);
- this.extras = extras;
- addComponents();
- }
-
- /**
- * Creates the actual GUI components, and adds it to this panel
- */
- private void addComponents() {
- AccessType type = parent.getAccessType();
- JNLPFile file = parent.getFile();
-
- String name = "";
- String publisher = "";
- String from = "";
-
- //We don't worry about exceptions when trying to fill in
- //these strings -- we just want to fill in as many as possible.
- try {
- name = file.getInformation().getTitle() != null ? file.getInformation().getTitle() : R("SNoAssociatedCertificate");
- } catch (Exception e) {
- }
-
- try {
- publisher = file.getInformation().getVendor() != null ?
- file.getInformation().getVendor() + " " + R("SUnverified") :
- R("SNoAssociatedCertificate");
- } catch (Exception e) {
- }
-
- try {
- from = !file.getInformation().getHomepage().toString().equals("") ? file.getInformation().getHomepage().toString() : file.getSourceLocation().getAuthority();
- } catch (Exception e) {
- from = file.getSourceLocation().getAuthority();
- }
-
- //Top label
- String topLabelText = "";
- switch (type) {
- case READ_FILE:
- if (extras != null && extras.length > 0 && extras[0] instanceof String) {
- topLabelText = R("SFileReadAccess", FileUtils.displayablePath((String) extras[0]));
- } else {
- topLabelText = R("SFileReadAccess", R("AFileOnTheMachine"));
- }
- break;
- case WRITE_FILE:
- if (extras != null && extras.length > 0 && extras[0] instanceof String) {
- topLabelText = R("SFileWriteAccess", FileUtils.displayablePath((String) extras[0]));
- } else {
- topLabelText = R("SFileWriteAccess", R("AFileOnTheMachine"));
- }
- break;
- case CREATE_DESTKOP_SHORTCUT:
- topLabelText = R("SDesktopShortcut");
- break;
- case CLIPBOARD_READ:
- topLabelText = R("SClipboardReadAccess");
- break;
- case CLIPBOARD_WRITE:
- topLabelText = R("SClipboardWriteAccess");
- break;
- case PRINTER:
- topLabelText = R("SPrinterAccess");
- break;
- case NETWORK:
- if (extras != null && extras.length >= 0)
- topLabelText = R("SNetworkAccess", extras[0]);
- else
- topLabelText = R("SNetworkAccess", "(address here)");
- }
-
- ImageIcon icon = new ImageIcon((new sun.misc.Launcher()).getClassLoader().getResource("net/sourceforge/jnlp/resources/question.png"));
- JLabel topLabel = new JLabel(htmlWrap(topLabelText), icon, SwingConstants.LEFT);
- topLabel.setFont(new Font(topLabel.getFont().toString(),
- Font.BOLD, 12));
- JPanel topPanel = new JPanel(new BorderLayout());
- topPanel.setBackground(Color.WHITE);
- topPanel.add(topLabel, BorderLayout.CENTER);
- topPanel.setPreferredSize(new Dimension(450, 100));
- topPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
-
- //application info
- JLabel nameLabel = new JLabel(R("Name") + ": " + name);
- nameLabel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
- JLabel publisherLabel = new JLabel(R("Publisher") + ": " + publisher);
- publisherLabel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
- JLabel fromLabel = new JLabel(R("From") + ": " + from);
- fromLabel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
-
- alwaysAllow = new JCheckBox(R("AlwaysAllowAction"));
- alwaysAllow.setEnabled(false);
-
- JPanel infoPanel = new JPanel(new GridLayout(4, 1));
- infoPanel.add(nameLabel);
- infoPanel.add(publisherLabel);
- infoPanel.add(fromLabel);
- infoPanel.add(alwaysAllow);
- infoPanel.setBorder(BorderFactory.createEmptyBorder(25, 25, 25, 25));
-
- //run and cancel buttons
- JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
-
- JButton run = new JButton(R("ButAllow"));
- JButton cancel = new JButton(R("ButCancel"));
- run.addActionListener(createSetValueListener(parent, 0));
- run.addActionListener(new CheckBoxListener());
- cancel.addActionListener(createSetValueListener(parent, 1));
- initialFocusComponent = cancel;
- buttonPanel.add(run);
- buttonPanel.add(cancel);
- buttonPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
-
- //all of the above
- setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
- add(topPanel);
- add(infoPanel);
- add(buttonPanel);
-
- }
-
- private class CheckBoxListener implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- if (alwaysAllow != null && alwaysAllow.isSelected()) {
- // TODO: somehow tell the ApplicationInstance
- // to stop asking for permission
- }
- }
- }
-
-}
diff -r 907fe0c8a3fa -r 0a36108ce4b9 netx/net/sourceforge/jnlp/security/AppTrustWarningDialog.java
--- a/netx/net/sourceforge/jnlp/security/AppTrustWarningDialog.java Wed Mar 05 15:43:03 2014 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/* Copyright (C) 2013 Red Hat, Inc.
-
-This file is part of IcedTea.
-
-IcedTea is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License as published by
-the Free Software Foundation, version 2.
-
-IcedTea is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with IcedTea; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version.
- */
-
-package net.sourceforge.jnlp.security;
-
-import net.sourceforge.jnlp.JNLPFile;
-import net.sourceforge.jnlp.security.AppTrustWarningPanel.ActionChoiceListener;
-import net.sourceforge.jnlp.security.AppTrustWarningPanel.AppSigningWarningAction;
-
-/**
- * A panel that confirms that the user is OK with unsigned code running.
- */
-public class AppTrustWarningDialog extends SecurityDialogPanel {
-
- private AppTrustWarningDialog(final SecurityDialog dialog) {
- super(dialog);
- }
-
- public static AppTrustWarningDialog unsigned(final SecurityDialog dialog, final JNLPFile file) {
- final AppTrustWarningDialog warningDialog = new AppTrustWarningDialog(dialog);
- warningDialog.add(new UnsignedAppletTrustWarningPanel(file, warningDialog.getActionChoiceListener()));
- return warningDialog;
- }
-
- private ActionChoiceListener getActionChoiceListener() {
- return new ActionChoiceListener() {
- @Override
- public void actionChosen(final AppSigningWarningAction action) {
- parent.setValue(action);
- parent.dispose();
- }
- };
- }
-
-}
diff -r 907fe0c8a3fa -r 0a36108ce4b9 netx/net/sourceforge/jnlp/security/AppTrustWarningPanel.java
--- a/netx/net/sourceforge/jnlp/security/AppTrustWarningPanel.java Wed Mar 05 15:43:03 2014 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,338 +0,0 @@
-/* Copyright (C) 2013 Red Hat, Inc.
-
-This file is part of IcedTea.
-
-IcedTea is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License as published by
-the Free Software Foundation, version 2.
-
-IcedTea is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with IcedTea; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version.
- */
-
-package net.sourceforge.jnlp.security;
-
-import static net.sourceforge.jnlp.runtime.Translator.R;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.BorderFactory;
-import javax.swing.BoxLayout;
-import javax.swing.ButtonGroup;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JRadioButton;
-import javax.swing.SwingConstants;
-
-import net.sourceforge.jnlp.JNLPFile;
-import net.sourceforge.jnlp.security.appletextendedsecurity.ExecuteAppletAction;
-import net.sourceforge.jnlp.security.appletextendedsecurity.ExtendedAppletSecurityHelp;
-import net.sourceforge.jnlp.util.ScreenFinder;
-
-/*
- * This class is meant to provide a common layout and functionality for warning dialogs
- * that appear when the user needs to confirm the running of applets/applications.
- * Subclasses include UnsignedAppletTrustWarningPanel, for unsigned plugin applets, and
- * PartiallySignedAppTrustWarningPanel, for partially signed JNLP applications as well as
- * plugin applets. New implementations should be added to the unit test at
- * unit/net/sourceforge/jnlp/security/AppTrustWarningPanelTest
- */
-public abstract class AppTrustWarningPanel extends JPanel {
-
- /*
- * Details of decided action.
- */
- public static class AppSigningWarningAction {
- private ExecuteAppletAction action;
- private boolean applyToCodeBase;
-
- public AppSigningWarningAction(ExecuteAppletAction action,
- boolean applyToCodeBase) {
- this.action = action;
- this.applyToCodeBase = applyToCodeBase;
- }
-
- public ExecuteAppletAction getAction() {
- return action;
- }
-
- public boolean rememberForCodeBase() {
- return applyToCodeBase;
- }
- }
-
- /*
- * Callback for when action is decided.
- */
- public static interface ActionChoiceListener {
- void actionChosen(AppSigningWarningAction action);
- }
-
- protected int PANE_WIDTH = 500;
-
- protected int TOP_PANEL_HEIGHT = 60;
- protected int INFO_PANEL_HEIGHT = 140;
- protected int INFO_PANEL_HINT_HEIGHT = 25;
- protected int QUESTION_PANEL_HEIGHT = 35;
-
- protected List<JButton> buttons;
- protected JButton allowButton;
- protected JButton rejectButton;
- protected JButton helpButton;
- protected JCheckBox permanencyCheckBox;
- protected JRadioButton applyToAppletButton;
- protected JRadioButton applyToCodeBaseButton;
-
- protected JNLPFile file;
-
- protected ActionChoiceListener actionChoiceListener;
-
- /*
- * Subclasses should call addComponents() IMMEDIATELY after calling the super() constructor!
- */
- public AppTrustWarningPanel(JNLPFile file, ActionChoiceListener actionChoiceListener) {
- this.file = file;
- this.actionChoiceListener = actionChoiceListener;
- this.buttons = new ArrayList<JButton>();
-
- allowButton = new JButton(R("ButProceed"));
- rejectButton = new JButton(R("ButCancel"));
- helpButton = new JButton(R("APPEXTSECguiPanelHelpButton"));
-
- allowButton.addActionListener(chosenActionSetter(true));
- rejectButton.addActionListener(chosenActionSetter(false));
-
- helpButton.addActionListener(getHelpButtonAction());
-
- buttons.add(allowButton);
- buttons.add(rejectButton);
- buttons.add(helpButton);
- }
-
- /*
- * Provides an image to be displayed near the upper left corner of the dialog.
- */
- protected abstract ImageIcon getInfoImage();
-
- /*
- * Provides a short description of why the dialog is appearing. The message is expected to be HTML-formatted.
- */
- protected abstract String getTopPanelText();
-
- /*
- * Provides in-depth information on why the dialog is appearing. The message is expected to be HTML-formatted.
More information about the distro-pkg-dev
mailing list