/*
*
* Paros and its related class files.
*
* Paros is an HTTP/HTTPS proxy for assessing web application security.
* Copyright (C) 2003-2004 Chinotec Technologies Company
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the Clarified Artistic License
* as published by the Free Software Foundation.
*
* This program 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
* Clarified Artistic License for more details.
*
* You should have received a copy of the Clarified Artistic License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.parosproxy.paros.view;
import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.ScrollPaneConstants;
public class LicenseFrame extends AbstractFrame {
private static final long serialVersionUID = -8463527680384145499L;
private JPanel jPanel = null;
private JTextPane txtLicense = null;
private JPanel jPanel1 = null;
private JButton btnAccept = null;
private JButton btnDecline = null;
private JScrollPane jScrollPane = null;
private int currentPage = 0;
private boolean accepted = false;
private JPanel jPanel2 = null;
public LicenseFrame() {
super();
initialize();
}
/**
* This method initializes this
*/
private void initialize() {
this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
this.setContentPane(getJPanel());
this.setPreferredSize(new Dimension(500, 375));
this.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
btnDecline.doClick();
}
});
showLicense(currentPage);
}
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
final java.awt.GridBagConstraints gridBagConstraints12 = new GridBagConstraints();
final java.awt.GridBagConstraints gridBagConstraints11 = new GridBagConstraints();
final javax.swing.JLabel jLabel = new JLabel();
final java.awt.GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
jPanel = new JPanel();
jPanel.setLayout(new GridBagLayout());
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 1;
gridBagConstraints1.insets = new java.awt.Insets(2,2,2,2);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints1.gridwidth = 1;
gridBagConstraints1.weightx = 1.0D;
gridBagConstraints1.weighty = 1.0D;
jLabel.setText("<html><body><font size=+1><p>Paros License Agreement - the Clarified Artistic License. </p></font><p></p><p>For the other libraries included in Paros, please refer to respective licenses of the libraries enclosed with this package.</p></body></html>");
gridBagConstraints11.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints11.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints11.gridx = 0;
gridBagConstraints11.gridy = 0;
gridBagConstraints11.weightx = 1.0D;
gridBagConstraints11.gridwidth = 1;
gridBagConstraints11.insets = new java.awt.Insets(2,2,2,2);
gridBagConstraints12.gridx = 0;
gridBagConstraints12.gridy = 2;
jPanel.add(jLabel, gridBagConstraints11);
jPanel.add(getJPanel1(), gridBagConstraints1);
jPanel.add(getJPanel2(), gridBagConstraints12);
}
return jPanel;
}
/**
* This method initializes txtLicense
*
* @return javax.swing.JTextPane
*/
private JTextPane getTxtLicense() {
if (txtLicense == null) {
txtLicense = new JTextPane();
txtLicense.setName("txtLicense");
txtLicense.setEditable(false);
}
return txtLicense;
}
/**
* This method initializes jPanel1
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel1() {
if (jPanel1 == null) {
jPanel1 = new JPanel();
jPanel1.setLayout(new CardLayout());
jPanel1.add(getJScrollPane(), getJScrollPane().getName());
}
return jPanel1;
}
/**
* This method initializes btnAccept
*
* @return javax.swing.JButton
*/
private JButton getBtnAccept() {
if (btnAccept == null) {
btnAccept = new JButton();
btnAccept.setText("Accept");
btnAccept.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent e) {
accepted = true;
LicenseFrame.this.dispose();
}
});
}
return btnAccept;
}
/**
* This method initializes btnDecline
*
* @return javax.swing.JButton
*/
private JButton getBtnDecline() {
if (btnDecline == null) {
btnDecline = new JButton();
btnDecline.setText("Decline");
btnDecline.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent e) {
accepted = false;
System.exit(1);
}
});
}
return btnDecline;
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setViewportView(getTxtLicense());
jScrollPane.setName("jScrollPane");
jScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
}
return jScrollPane;
}
private void showLicense(int page) {
String localUrl = null;
switch (page) {
//String remoteUrl = "http://www.statistica.unimib.it/utenti/dellavedova/software/artistic2.html";
case 0:
localUrl = "file:" + System.getProperty("user.dir") + System.getProperty("file.separator") + "license/TheClarifiedArtisticLicense.htm";
break;
}
try{
txtLicense.setPage(localUrl);
} catch (final IOException e){
e.printStackTrace();
JOptionPane.showMessageDialog(new JFrame(), "Error: setting file is missing. Program will exit.");
System.exit(0);
}
}
@Override
public void setVisible(boolean show) {
centerFrame();
super.setVisible(show);
}
public boolean isAccepted() {
return accepted;
}
/**
* This method initializes jPanel2
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel2() {
if (jPanel2 == null) {
jPanel2 = new JPanel();
jPanel2.add(getBtnAccept(), null);
jPanel2.add(getBtnDecline(), null);
}
return jPanel2;
}
}