19package com.basistech.df.cybertriage.autopsy.ctoptions.ctcloud;
21import java.awt.BorderLayout;
22import java.io.IOException;
23import java.io.InputStream;
24import java.nio.charset.StandardCharsets;
25import javafx.application.Platform;
26import javafx.concurrent.Worker.State;
27import javafx.embed.swing.JFXPanel;
28import javafx.scene.Scene;
29import javafx.scene.layout.VBox;
30import javafx.scene.paint.Color;
31import javafx.scene.web.WebView;
32import javax.swing.SwingUtilities;
33import org.apache.commons.io.IOUtils;
34import org.sleuthkit.autopsy.coreutils.Logger;
39class EULADialog
extends javax.swing.JDialog {
41 private static final Logger LOGGER = Logger.getLogger(EULADialog.class.getName());
42 private static final String EULA_RESOURCE =
"EULA.htm";
44 private boolean acceptPressed =
false;
49 public EULADialog(java.awt.Frame parent,
boolean modal)
throws IOException {
55 boolean isAcceptPressed() {
59 private void loadEULA() throws IOException {
60 InputStream eulaInputStream = EULADialog.class.getResourceAsStream(EULA_RESOURCE);
61 final String htmlString = IOUtils.toString(eulaInputStream, StandardCharsets.UTF_8);
62 final JFXPanel fxPanel =
new JFXPanel();
63 this.viewablePanel.add(fxPanel, BorderLayout.CENTER);
64 Platform.runLater(() -> {
65 WebView webView =
new WebView();
66 webView.setMaxSize(Short.MAX_VALUE, Short.MAX_VALUE);
67 webView.setPrefSize(Short.MAX_VALUE, Short.MAX_VALUE);
68 webView.setMinSize(100, 100);
69 webView.getEngine().getLoadWorker().stateProperty().addListener((ov, oldState, newState) -> {
70 if (newState == State.SUCCEEDED) {
71 SwingUtilities.invokeLater(() -> EULADialog.this.acceptButton.setEnabled(
true));
74 webView.getEngine().loadContent(htmlString,
"text/html");
75 VBox root =
new VBox(webView);
76 Scene scene =
new Scene(root, Color.RED);
77 fxPanel.setScene(scene);
86 @SuppressWarnings(
"unchecked")
88 private
void initComponents() {
89 java.awt.GridBagConstraints gridBagConstraints;
91 viewablePanel =
new javax.swing.JPanel();
92 javax.swing.JPanel paddingPanel =
new javax.swing.JPanel();
93 acceptButton =
new javax.swing.JButton();
94 javax.swing.JButton cancelButton =
new javax.swing.JButton();
96 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
97 setTitle(org.openide.util.NbBundle.getMessage(EULADialog.class,
"EULADialog.title"));
98 setMaximumSize(
new java.awt.Dimension(32767, 32767));
99 setPreferredSize(
new java.awt.Dimension(550, 550));
100 setSize(
new java.awt.Dimension(550, 550));
101 getContentPane().setLayout(
new java.awt.GridBagLayout());
103 viewablePanel.setLayout(
new java.awt.BorderLayout());
104 gridBagConstraints =
new java.awt.GridBagConstraints();
105 gridBagConstraints.gridx = 0;
106 gridBagConstraints.gridy = 0;
107 gridBagConstraints.gridwidth = 3;
108 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
109 gridBagConstraints.weightx = 1.0;
110 gridBagConstraints.weighty = 1.0;
111 gridBagConstraints.insets =
new java.awt.Insets(5, 5, 5, 5);
112 getContentPane().add(viewablePanel, gridBagConstraints);
114 paddingPanel.setMaximumSize(
new java.awt.Dimension(32767, 0));
116 javax.swing.GroupLayout paddingPanelLayout =
new javax.swing.GroupLayout(paddingPanel);
117 paddingPanel.setLayout(paddingPanelLayout);
118 paddingPanelLayout.setHorizontalGroup(
119 paddingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
120 .addGap(0, 0, Short.MAX_VALUE)
122 paddingPanelLayout.setVerticalGroup(
123 paddingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
124 .addGap(0, 0, Short.MAX_VALUE)
127 gridBagConstraints =
new java.awt.GridBagConstraints();
128 gridBagConstraints.gridx = 0;
129 gridBagConstraints.gridy = 1;
130 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
131 gridBagConstraints.weightx = 1.0;
132 getContentPane().add(paddingPanel, gridBagConstraints);
134 org.openide.awt.Mnemonics.setLocalizedText(acceptButton, org.openide.util.NbBundle.getMessage(EULADialog.class,
"EULADialog.acceptButton.text"));
135 acceptButton.setEnabled(
false);
136 acceptButton.addActionListener(
new java.awt.event.ActionListener() {
137 public void actionPerformed(java.awt.event.ActionEvent evt) {
138 acceptButtonActionPerformed(evt);
141 gridBagConstraints =
new java.awt.GridBagConstraints();
142 gridBagConstraints.gridx = 2;
143 gridBagConstraints.gridy = 1;
144 gridBagConstraints.insets =
new java.awt.Insets(0, 0, 5, 5);
145 getContentPane().add(acceptButton, gridBagConstraints);
147 org.openide.awt.Mnemonics.setLocalizedText(cancelButton, org.openide.util.NbBundle.getMessage(EULADialog.class,
"EULADialog.cancelButton.text"));
148 cancelButton.addActionListener(
new java.awt.event.ActionListener() {
149 public void actionPerformed(java.awt.event.ActionEvent evt) {
150 cancelButtonActionPerformed(evt);
153 gridBagConstraints =
new java.awt.GridBagConstraints();
154 gridBagConstraints.gridx = 1;
155 gridBagConstraints.gridy = 1;
156 gridBagConstraints.insets =
new java.awt.Insets(0, 5, 5, 5);
157 getContentPane().add(cancelButton, gridBagConstraints);
162 private void acceptButtonActionPerformed(java.awt.event.ActionEvent evt) {
163 acceptPressed =
true;
167 private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {
172 private javax.swing.JButton acceptButton;
173 private javax.swing.JPanel viewablePanel;