Autopsy 4.22.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
EULADialog.java
Go to the documentation of this file.
1/*
2 * Autopsy Forensic Browser
3 *
4 * Copyright 2023 Basis Technology Corp.
5 * Contact: carrier <at> sleuthkit <dot> org
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 */
19package com.basistech.df.cybertriage.autopsy.ctoptions.ctcloud;
20
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;
35
39class EULADialog extends javax.swing.JDialog {
40
41 private static final Logger LOGGER = Logger.getLogger(EULADialog.class.getName());
42 private static final String EULA_RESOURCE = "EULA.htm";
43
44 private boolean acceptPressed = false;
45
49 public EULADialog(java.awt.Frame parent, boolean modal) throws IOException {
50 super(parent, modal);
51 initComponents();
52 loadEULA();
53 }
54
55 boolean isAcceptPressed() {
56 return acceptPressed;
57 }
58
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));
72 }
73 });
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);
78 });
79 }
80
86 @SuppressWarnings("unchecked")
87 // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
88 private void initComponents() {
89 java.awt.GridBagConstraints gridBagConstraints;
90
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();
95
96 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
97 setTitle(org.openide.util.NbBundle.getMessage(EULADialog.class, "EULADialog.title")); // NOI18N
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());
102
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);
113
114 paddingPanel.setMaximumSize(new java.awt.Dimension(32767, 0));
115
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)
121 );
122 paddingPanelLayout.setVerticalGroup(
123 paddingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
124 .addGap(0, 0, Short.MAX_VALUE)
125 );
126
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);
133
134 org.openide.awt.Mnemonics.setLocalizedText(acceptButton, org.openide.util.NbBundle.getMessage(EULADialog.class, "EULADialog.acceptButton.text")); // NOI18N
135 acceptButton.setEnabled(false);
136 acceptButton.addActionListener(new java.awt.event.ActionListener() {
137 public void actionPerformed(java.awt.event.ActionEvent evt) {
138 acceptButtonActionPerformed(evt);
139 }
140 });
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);
146
147 org.openide.awt.Mnemonics.setLocalizedText(cancelButton, org.openide.util.NbBundle.getMessage(EULADialog.class, "EULADialog.cancelButton.text")); // NOI18N
148 cancelButton.addActionListener(new java.awt.event.ActionListener() {
149 public void actionPerformed(java.awt.event.ActionEvent evt) {
150 cancelButtonActionPerformed(evt);
151 }
152 });
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);
158
159 pack();
160 }// </editor-fold>//GEN-END:initComponents
161
162 private void acceptButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_acceptButtonActionPerformed
163 acceptPressed = true;
164 dispose();
165 }//GEN-LAST:event_acceptButtonActionPerformed
166
167 private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
168 dispose();
169 }//GEN-LAST:event_cancelButtonActionPerformed
170
171 // Variables declaration - do not modify//GEN-BEGIN:variables
172 private javax.swing.JButton acceptButton;
173 private javax.swing.JPanel viewablePanel;
174 // End of variables declaration//GEN-END:variables
175}

Copyright © 2012-2024 Sleuth Kit Labs. Generated on:
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.