/*
* Zed Attack Proxy (ZAP) and its related class files.
*
* ZAP is an HTTP/HTTPS proxy for assessing web application security.
*
* Copyright 2010 psiinon@gmail.com
*
* 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 org.zaproxy.zap.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;
import org.parosproxy.paros.Constant;
import org.parosproxy.paros.view.AbstractFrame;
public class LicenseFrame extends AbstractFrame {
private static final long serialVersionUID = 1L;
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;
private Runnable postTask;
public LicenseFrame() {
super();
initialize();
}
/**
* This method initializes this
*
*/
private void initialize() {
this.setDefaultCloseOperation(javax.swing.JFrame.DO_NOTHING_ON_CLOSE);
this.setContentPane(getJPanel());
this.setPreferredSize(new Dimension(550, 375));
this.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
btnDecline.doClick();
}
});
showLicense(currentPage);
}
public void setPostTask(Runnable postTask) {
this.postTask = postTask;
}
/**
* 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>ZAP : Licensed under the Apache License, Version 2.0.</p></font>" +
"<p></p>" +
"<p>For the other libraries included in ZAP, 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;
if (postTask != null) {
postTask.run();
}
}
});
}
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;
if (postTask != null) {
postTask.run();
}
}
});
}
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";
localUrl = "file:" + Constant.getZapInstall() + System.getProperty("file.separator") + "license/ApacheLicense-2.0.txt";
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;
}
}