mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 16:06:15 +00:00
Merge branch 'master' of https://github.com/tmciver-basis/autopsy into zipmodule
This commit is contained in:
commit
1777ad28bd
@ -1,2 +1,3 @@
|
||||
OpenIDE-Module-Name=Timeline
|
||||
CTL_MakeTimeline="Make Timeline (Beta)"
|
||||
TimelineProgressDialog.jLabel1.text=Computing timeline . . .
|
||||
|
@ -68,6 +68,7 @@ import javax.swing.BoxLayout;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JSplitPane;
|
||||
import javax.swing.SwingUtilities;
|
||||
import org.netbeans.api.progress.ProgressHandle;
|
||||
import org.netbeans.api.progress.ProgressHandleFactory;
|
||||
@ -137,6 +138,7 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar,
|
||||
private List<YearEpoch> data;
|
||||
private boolean listeningToAddImage = false;
|
||||
private long lastObjectId = -1;
|
||||
private TimelineProgressDialog dialog;
|
||||
|
||||
//Swing components and JavafX components don't play super well together
|
||||
//Swing components need to be initialized first, in the swing specific thread
|
||||
@ -174,8 +176,10 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar,
|
||||
|
||||
//ComboJPanel holds both of the above JPanels together,
|
||||
//aligned vertically (Y_AXIS)
|
||||
final JPanel comboJPanel = new JPanel();
|
||||
comboJPanel.setLayout(new BoxLayout(comboJPanel, BoxLayout.Y_AXIS));
|
||||
|
||||
// create a horizontal split pane
|
||||
final JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, chartJPanel, viewerJPanel);
|
||||
splitPane.setDividerLocation(450);
|
||||
|
||||
//JavaFX thread
|
||||
//JavaFX components MUST be run in the JavaFX thread, otherwise massive amounts of exceptions will be thrown and caught. Liable to freeze up and crash.
|
||||
@ -288,17 +292,19 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar,
|
||||
viewerJPanel.add(dataContentPanel);
|
||||
chartJPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
|
||||
viewerJPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
|
||||
comboJPanel.add(chartJPanel);
|
||||
comboJPanel.add(viewerJPanel);
|
||||
|
||||
chart_TopLevel = createYearChartWithDrill(data);
|
||||
chart_Events = chart_TopLevel;
|
||||
scroll_Events.setContent(chart_Events);
|
||||
jf.add(comboJPanel);
|
||||
|
||||
jf.add(splitPane);
|
||||
jf.setVisible(true);
|
||||
} finally {
|
||||
// stop the progress bar
|
||||
progress.finish();
|
||||
|
||||
// close the dialog
|
||||
dialog.doClose(0);
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -966,6 +972,11 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar,
|
||||
} else {
|
||||
logger.log(Level.INFO, "Beginning generation of timeline");
|
||||
|
||||
// if the timeline window is already open, do nothing
|
||||
if (jf != null && jf.isVisible()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Platform.setImplicitExit(false);
|
||||
|
||||
// listen for case changes (specifically images being added).
|
||||
@ -975,6 +986,15 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar,
|
||||
listeningToAddImage = true;
|
||||
}
|
||||
|
||||
// create the modal dialog
|
||||
SwingUtilities.invokeLater(new Runnable () {
|
||||
@Override
|
||||
public void run() {
|
||||
dialog = new TimelineProgressDialog(jf, true);
|
||||
dialog.setVisible(true);
|
||||
}
|
||||
});
|
||||
|
||||
// initialize mactimeFileName
|
||||
mactimeFileName = Case.getCurrentCase().getName() + "-MACTIME.txt";
|
||||
|
||||
@ -992,8 +1012,6 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar,
|
||||
} catch (TskCoreException ex) {
|
||||
Exceptions.printStackTrace(ex);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<Form version="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
|
||||
<SyntheticProperties>
|
||||
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
|
||||
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
|
||||
</SyntheticProperties>
|
||||
<Events>
|
||||
<EventHandler event="windowClosing" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="closeDialog"/>
|
||||
</Events>
|
||||
<AuxValues>
|
||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
|
||||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
|
||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||
</AuxValues>
|
||||
|
||||
<Layout>
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace min="-2" pref="51" max="-2" attributes="0"/>
|
||||
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace pref="121" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace min="-2" pref="37" max="-2" attributes="0"/>
|
||||
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace pref="64" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JLabel" name="jLabel1">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/timeline/Bundle.properties" key="TimelineProgressDialog.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Form>
|
@ -0,0 +1,114 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package org.sleuthkit.autopsy.timeline;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.ActionMap;
|
||||
import javax.swing.InputMap;
|
||||
import javax.swing.JComponent;
|
||||
import javax.swing.KeyStroke;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author mciver
|
||||
*/
|
||||
public class TimelineProgressDialog extends javax.swing.JDialog {
|
||||
|
||||
/**
|
||||
* A return status code - returned if Cancel button has been pressed
|
||||
*/
|
||||
public static final int RET_CANCEL = 0;
|
||||
/**
|
||||
* A return status code - returned if OK button has been pressed
|
||||
*/
|
||||
public static final int RET_OK = 1;
|
||||
|
||||
/**
|
||||
* Creates new form TimelineProgressDialog
|
||||
*/
|
||||
public TimelineProgressDialog(java.awt.Frame parent, boolean modal) {
|
||||
super(parent, modal);
|
||||
initComponents();
|
||||
|
||||
setLocationRelativeTo(null);
|
||||
|
||||
// Close the dialog when Esc is pressed
|
||||
String cancelName = "cancel";
|
||||
InputMap inputMap = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
|
||||
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), cancelName);
|
||||
ActionMap actionMap = getRootPane().getActionMap();
|
||||
actionMap.put(cancelName, new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
doClose(RET_CANCEL);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the return status of this dialog - one of RET_OK or RET_CANCEL
|
||||
*/
|
||||
public int getReturnStatus() {
|
||||
return returnStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called from within the constructor to initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is always
|
||||
* regenerated by the Form Editor.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
|
||||
addWindowListener(new java.awt.event.WindowAdapter() {
|
||||
public void windowClosing(java.awt.event.WindowEvent evt) {
|
||||
closeDialog(evt);
|
||||
}
|
||||
});
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(TimelineProgressDialog.class, "TimelineProgressDialog.jLabel1.text")); // NOI18N
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
|
||||
getContentPane().setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(51, 51, 51)
|
||||
.addComponent(jLabel1)
|
||||
.addContainerGap(121, Short.MAX_VALUE))
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(37, 37, 37)
|
||||
.addComponent(jLabel1)
|
||||
.addContainerGap(64, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
pack();
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
/**
|
||||
* Closes the dialog
|
||||
*/
|
||||
private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog
|
||||
doClose(RET_CANCEL);
|
||||
}//GEN-LAST:event_closeDialog
|
||||
|
||||
public void doClose(int retStatus) {
|
||||
returnStatus = retStatus;
|
||||
setVisible(false);
|
||||
dispose();
|
||||
}
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JLabel jLabel1;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
private int returnStatus = RET_CANCEL;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user