mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-20 11:26:53 +00:00
Merge pull request #3419 from millmanorama/cvt-953-message-for-empty-graph
Cvt 953 message for empty graph
This commit is contained in:
commit
6a858c1e4e
@ -23,6 +23,15 @@ CVTTopComponent.vizPanel.TabConstraints.tabTitle_1=Visualize
|
|||||||
VisualizationPanel.jButton6.text=Hierarchy
|
VisualizationPanel.jButton6.text=Hierarchy
|
||||||
VisualizationPanel.jButton7.text=Circle
|
VisualizationPanel.jButton7.text=Circle
|
||||||
VisualizationPanel.jButton8.text=Organic
|
VisualizationPanel.jButton8.text=Organic
|
||||||
VisualizationPanel.zoomOutButton.text=
|
|
||||||
VisualizationPanel.zoomInButton.text=
|
|
||||||
VisualizationPanel.fitGraphButton.text=
|
VisualizationPanel.fitGraphButton.text=
|
||||||
|
VisualizationPanel.statusLabel.text=
|
||||||
|
VisualizationPanel.jTextArea1.text=Right-click an account in the Browse Accounts table, and select 'Visualize' to begin.
|
||||||
|
VisualizationPanel.jLabel1.text=Layouts:
|
||||||
|
VisualizationPanel.fitZoomButton.text=
|
||||||
|
VisualizationPanel.zoomActualButton.text=
|
||||||
|
VisualizationPanel.zoomInButton.text=
|
||||||
|
VisualizationPanel.zoomOutButton.text=
|
||||||
|
VisualizationPanel.circleLayoutButton.text=Circle
|
||||||
|
VisualizationPanel.OrganicLayoutButton.text=Organic
|
||||||
|
VisualizationPanel.fastOrganicLayoutButton.text=Fast Organic
|
||||||
|
VisualizationPanel.hierarchyLayoutButton.text=Hierarchy
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||||
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,60,0,0,3,66"/>
|
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-7,0,0,3,-119"/>
|
||||||
</AuxValues>
|
</AuxValues>
|
||||||
|
|
||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
|
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
|
||||||
@ -38,68 +38,216 @@
|
|||||||
|
|
||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
|
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
|
||||||
<SubComponents>
|
<SubComponents>
|
||||||
<Container class="javax.swing.JToolBar" name="jToolBar1">
|
<Container class="javax.swing.JToolBar" name="jToolBar2">
|
||||||
<Properties>
|
<Properties>
|
||||||
|
<Property name="floatable" type="boolean" value="false"/>
|
||||||
<Property name="rollover" type="boolean" value="true"/>
|
<Property name="rollover" type="boolean" value="true"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Constraints>
|
<Constraints>
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
|
||||||
<BorderConstraints direction="North"/>
|
<BorderConstraints direction="Last"/>
|
||||||
</Constraint>
|
</Constraint>
|
||||||
</Constraints>
|
</Constraints>
|
||||||
|
|
||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/>
|
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/>
|
||||||
<SubComponents>
|
<SubComponents>
|
||||||
<Component class="javax.swing.JButton" name="jButton6">
|
<Component class="javax.swing.JLabel" name="statusLabel">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.jButton6.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.statusLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Container class="javax.swing.JPanel" name="progresPanel">
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="651" max="32767" attributes="0"/>
|
||||||
|
<Component id="progressBar" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
|
||||||
|
<Component id="progressBar" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JProgressBar" name="progressBar">
|
||||||
|
<Properties>
|
||||||
|
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[200, 14]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="stringPainted" type="boolean" value="true"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="jPanel1">
|
||||||
|
<Constraints>
|
||||||
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
|
||||||
|
<BorderConstraints direction="Center"/>
|
||||||
|
</Constraint>
|
||||||
|
</Constraints>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<EmptySpace pref="213" max="32767" attributes="0"/>
|
||||||
|
<Component id="jTextArea1" min="-2" pref="372" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace pref="214" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<EmptySpace pref="200" max="32767" attributes="0"/>
|
||||||
|
<Component id="jTextArea1" min="-2" pref="43" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace pref="200" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JTextArea" name="jTextArea1">
|
||||||
|
<Properties>
|
||||||
|
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
|
<Color blue="f0" green="f0" red="f0" type="rgb"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="columns" type="int" value="20"/>
|
||||||
|
<Property name="lineWrap" type="boolean" value="true"/>
|
||||||
|
<Property name="rows" type="int" value="5"/>
|
||||||
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.jTextArea1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="jPanel2">
|
||||||
|
<Constraints>
|
||||||
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
|
||||||
|
<BorderConstraints direction="First"/>
|
||||||
|
</Constraint>
|
||||||
|
</Constraints>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<EmptySpace min="-2" pref="3" max="-2" attributes="0"/>
|
||||||
|
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="fastOrganicLayoutButton" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="OrganicLayoutButton" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="hierarchyLayoutButton" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="circleLayoutButton" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="jSeparator1" min="-2" pref="10" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="zoomOutButton" min="-2" pref="32" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="zoomInButton" min="-2" pref="32" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="zoomActualButton" min="-2" pref="33" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="fitZoomButton" min="-2" pref="32" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace pref="214" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace min="-2" pref="3" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="2" attributes="0">
|
||||||
|
<Component id="jLabel1" alignment="2" min="-2" pref="25" max="-2" attributes="0"/>
|
||||||
|
<Component id="hierarchyLayoutButton" alignment="2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="fastOrganicLayoutButton" alignment="2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="OrganicLayoutButton" alignment="2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="circleLayoutButton" alignment="2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="jSeparator1" alignment="2" max="32767" attributes="0"/>
|
||||||
|
<Component id="zoomOutButton" alignment="2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="zoomInButton" alignment="2" max="32767" attributes="0"/>
|
||||||
|
<Component id="zoomActualButton" alignment="2" max="32767" attributes="0"/>
|
||||||
|
<Component id="fitZoomButton" alignment="2" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace min="-2" pref="3" max="-2" 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/communications/Bundle.properties" key="VisualizationPanel.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JButton" name="hierarchyLayoutButton">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.hierarchyLayoutButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="focusable" type="boolean" value="false"/>
|
<Property name="focusable" type="boolean" value="false"/>
|
||||||
<Property name="horizontalTextPosition" type="int" value="0"/>
|
<Property name="horizontalTextPosition" type="int" value="0"/>
|
||||||
<Property name="verticalTextPosition" type="int" value="3"/>
|
<Property name="verticalTextPosition" type="int" value="3"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Events>
|
<Events>
|
||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton6ActionPerformed"/>
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="hierarchyLayoutButtonActionPerformed"/>
|
||||||
</Events>
|
</Events>
|
||||||
</Component>
|
</Component>
|
||||||
<Component class="javax.swing.JButton" name="jButton1">
|
<Component class="javax.swing.JButton" name="fastOrganicLayoutButton">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.jButton1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.fastOrganicLayoutButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="focusable" type="boolean" value="false"/>
|
<Property name="focusable" type="boolean" value="false"/>
|
||||||
<Property name="horizontalTextPosition" type="int" value="0"/>
|
<Property name="horizontalTextPosition" type="int" value="0"/>
|
||||||
<Property name="verticalTextPosition" type="int" value="3"/>
|
<Property name="verticalTextPosition" type="int" value="3"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Events>
|
<Events>
|
||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="fastOrganicLayoutButtonActionPerformed"/>
|
||||||
</Events>
|
</Events>
|
||||||
</Component>
|
</Component>
|
||||||
<Component class="javax.swing.JButton" name="jButton8">
|
<Component class="javax.swing.JButton" name="OrganicLayoutButton">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.jButton8.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.OrganicLayoutButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="focusable" type="boolean" value="false"/>
|
<Property name="focusable" type="boolean" value="false"/>
|
||||||
<Property name="horizontalTextPosition" type="int" value="0"/>
|
<Property name="horizontalTextPosition" type="int" value="0"/>
|
||||||
<Property name="verticalTextPosition" type="int" value="3"/>
|
<Property name="verticalTextPosition" type="int" value="3"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Events>
|
<Events>
|
||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton8ActionPerformed"/>
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="OrganicLayoutButtonActionPerformed"/>
|
||||||
</Events>
|
</Events>
|
||||||
</Component>
|
</Component>
|
||||||
<Component class="javax.swing.JButton" name="jButton7">
|
<Component class="javax.swing.JButton" name="circleLayoutButton">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.jButton7.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.circleLayoutButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="focusable" type="boolean" value="false"/>
|
<Property name="focusable" type="boolean" value="false"/>
|
||||||
<Property name="horizontalTextPosition" type="int" value="0"/>
|
<Property name="horizontalTextPosition" type="int" value="0"/>
|
||||||
<Property name="verticalTextPosition" type="int" value="3"/>
|
<Property name="verticalTextPosition" type="int" value="3"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Events>
|
<Events>
|
||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton7ActionPerformed"/>
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="circleLayoutButtonActionPerformed"/>
|
||||||
</Events>
|
</Events>
|
||||||
</Component>
|
</Component>
|
||||||
<Component class="javax.swing.JToolBar$Separator" name="jSeparator1">
|
<Component class="javax.swing.JToolBar$Separator" name="jSeparator1">
|
||||||
@ -120,22 +268,6 @@
|
|||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="zoomOutButtonActionPerformed"/>
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="zoomOutButtonActionPerformed"/>
|
||||||
</Events>
|
</Events>
|
||||||
</Component>
|
</Component>
|
||||||
<Component class="javax.swing.JButton" name="fitGraphButton">
|
|
||||||
<Properties>
|
|
||||||
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
|
||||||
<Image iconType="3" name="/org/sleuthkit/autopsy/communications/images/magnifier-zoom-fit.png"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
|
||||||
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.fitGraphButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="focusable" type="boolean" value="false"/>
|
|
||||||
<Property name="horizontalTextPosition" type="int" value="0"/>
|
|
||||||
<Property name="verticalTextPosition" type="int" value="3"/>
|
|
||||||
</Properties>
|
|
||||||
<Events>
|
|
||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="fitGraphButtonActionPerformed"/>
|
|
||||||
</Events>
|
|
||||||
</Component>
|
|
||||||
<Component class="javax.swing.JButton" name="zoomInButton">
|
<Component class="javax.swing.JButton" name="zoomInButton">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||||
@ -152,43 +284,37 @@
|
|||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="zoomInButtonActionPerformed"/>
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="zoomInButtonActionPerformed"/>
|
||||||
</Events>
|
</Events>
|
||||||
</Component>
|
</Component>
|
||||||
</SubComponents>
|
<Component class="javax.swing.JButton" name="zoomActualButton">
|
||||||
</Container>
|
|
||||||
<Container class="javax.swing.JPanel" name="statusPanel">
|
|
||||||
<Constraints>
|
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
|
|
||||||
<BorderConstraints direction="South"/>
|
|
||||||
</Constraint>
|
|
||||||
</Constraints>
|
|
||||||
|
|
||||||
<Layout>
|
|
||||||
<DimensionLayout dim="0">
|
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
|
||||||
<Group type="102" alignment="1" attributes="0">
|
|
||||||
<EmptySpace pref="516" max="32767" attributes="0"/>
|
|
||||||
<Component id="progressBar" min="-2" pref="200" max="-2" attributes="0"/>
|
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
|
||||||
</Group>
|
|
||||||
</Group>
|
|
||||||
</DimensionLayout>
|
|
||||||
<DimensionLayout dim="1">
|
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
|
||||||
<Group type="102" alignment="1" attributes="0">
|
|
||||||
<EmptySpace min="-2" pref="3" max="-2" attributes="0"/>
|
|
||||||
<Component id="progressBar" min="-2" max="-2" attributes="0"/>
|
|
||||||
<EmptySpace min="-2" pref="3" max="-2" attributes="0"/>
|
|
||||||
</Group>
|
|
||||||
</Group>
|
|
||||||
</DimensionLayout>
|
|
||||||
</Layout>
|
|
||||||
<SubComponents>
|
|
||||||
<Component class="javax.swing.JProgressBar" name="progressBar">
|
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||||
<Dimension value="[200, 14]"/>
|
<Image iconType="3" name="/org/sleuthkit/autopsy/communications/images/magnifier-zoom-actual.png"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="stringPainted" type="boolean" value="true"/>
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.zoomActualButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="focusable" type="boolean" value="false"/>
|
||||||
|
<Property name="horizontalTextPosition" type="int" value="0"/>
|
||||||
|
<Property name="verticalTextPosition" type="int" value="3"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="zoomActualButtonActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JButton" name="fitZoomButton">
|
||||||
|
<Properties>
|
||||||
|
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||||
|
<Image iconType="3" name="/org/sleuthkit/autopsy/communications/images/magnifier-zoom-fit.png"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.fitZoomButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="focusable" type="boolean" value="false"/>
|
||||||
|
<Property name="horizontalTextPosition" type="int" value="0"/>
|
||||||
|
<Property name="verticalTextPosition" type="int" value="3"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="fitZoomButtonActionPerformed"/>
|
||||||
|
</Events>
|
||||||
</Component>
|
</Component>
|
||||||
</SubComponents>
|
</SubComponents>
|
||||||
</Container>
|
</Container>
|
||||||
|
@ -52,16 +52,19 @@ import java.util.logging.Level;
|
|||||||
import javax.swing.AbstractAction;
|
import javax.swing.AbstractAction;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
import javax.swing.JButton;
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JMenuItem;
|
import javax.swing.JMenuItem;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.JPopupMenu;
|
import javax.swing.JPopupMenu;
|
||||||
import javax.swing.JProgressBar;
|
import javax.swing.JProgressBar;
|
||||||
import javax.swing.JSplitPane;
|
import javax.swing.JSplitPane;
|
||||||
|
import javax.swing.JTextArea;
|
||||||
import javax.swing.JToolBar;
|
import javax.swing.JToolBar;
|
||||||
import javax.swing.SwingConstants;
|
import javax.swing.SwingConstants;
|
||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import javax.swing.SwingWorker;
|
import javax.swing.SwingWorker;
|
||||||
import org.jdesktop.layout.GroupLayout;
|
import org.jdesktop.layout.GroupLayout;
|
||||||
|
import org.jdesktop.layout.LayoutStyle;
|
||||||
import org.openide.explorer.ExplorerManager;
|
import org.openide.explorer.ExplorerManager;
|
||||||
import org.openide.explorer.ExplorerUtils;
|
import org.openide.explorer.ExplorerUtils;
|
||||||
import org.openide.nodes.Node;
|
import org.openide.nodes.Node;
|
||||||
@ -289,11 +292,15 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void rebuildGraph() throws TskCoreException {
|
private void rebuildGraph() throws TskCoreException {
|
||||||
|
if (graph.hasPinnedAccounts()) {
|
||||||
|
borderLayoutPanel.remove(jPanel1);
|
||||||
|
borderLayoutPanel.add(graphComponent, BorderLayout.CENTER);
|
||||||
SwingWorker<?, ?> rebuild = graph.rebuild(new ProgressIndicatorImpl(), commsManager, currentFilter);
|
SwingWorker<?, ?> rebuild = graph.rebuild(new ProgressIndicatorImpl(), commsManager, currentFilter);
|
||||||
|
|
||||||
rebuild.execute();
|
rebuild.execute();
|
||||||
|
} else {
|
||||||
|
borderLayoutPanel.remove(graphComponent);
|
||||||
|
borderLayoutPanel.add(jPanel1, BorderLayout.CENTER);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -348,17 +355,23 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
|
|||||||
|
|
||||||
splitPane = new JSplitPane();
|
splitPane = new JSplitPane();
|
||||||
borderLayoutPanel = new JPanel();
|
borderLayoutPanel = new JPanel();
|
||||||
jToolBar1 = new JToolBar();
|
jToolBar2 = new JToolBar();
|
||||||
jButton6 = new JButton();
|
statusLabel = new JLabel();
|
||||||
jButton1 = new JButton();
|
progresPanel = new JPanel();
|
||||||
jButton8 = new JButton();
|
progressBar = new JProgressBar();
|
||||||
jButton7 = new JButton();
|
jPanel1 = new JPanel();
|
||||||
|
jTextArea1 = new JTextArea();
|
||||||
|
jPanel2 = new JPanel();
|
||||||
|
jLabel1 = new JLabel();
|
||||||
|
hierarchyLayoutButton = new JButton();
|
||||||
|
fastOrganicLayoutButton = new JButton();
|
||||||
|
OrganicLayoutButton = new JButton();
|
||||||
|
circleLayoutButton = new JButton();
|
||||||
jSeparator1 = new JToolBar.Separator();
|
jSeparator1 = new JToolBar.Separator();
|
||||||
zoomOutButton = new JButton();
|
zoomOutButton = new JButton();
|
||||||
fitGraphButton = new JButton();
|
|
||||||
zoomInButton = new JButton();
|
zoomInButton = new JButton();
|
||||||
statusPanel = new JPanel();
|
zoomActualButton = new JButton();
|
||||||
progressBar = new JProgressBar();
|
fitZoomButton = new JButton();
|
||||||
|
|
||||||
setLayout(new BorderLayout());
|
setLayout(new BorderLayout());
|
||||||
|
|
||||||
@ -367,52 +380,96 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
|
|||||||
|
|
||||||
borderLayoutPanel.setLayout(new BorderLayout());
|
borderLayoutPanel.setLayout(new BorderLayout());
|
||||||
|
|
||||||
jToolBar1.setRollover(true);
|
jToolBar2.setFloatable(false);
|
||||||
|
jToolBar2.setRollover(true);
|
||||||
|
|
||||||
jButton6.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.jButton6.text")); // NOI18N
|
statusLabel.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.statusLabel.text")); // NOI18N
|
||||||
jButton6.setFocusable(false);
|
jToolBar2.add(statusLabel);
|
||||||
jButton6.setHorizontalTextPosition(SwingConstants.CENTER);
|
|
||||||
jButton6.setVerticalTextPosition(SwingConstants.BOTTOM);
|
progressBar.setMaximumSize(new Dimension(200, 14));
|
||||||
jButton6.addActionListener(new ActionListener() {
|
progressBar.setStringPainted(true);
|
||||||
|
|
||||||
|
GroupLayout progresPanelLayout = new GroupLayout(progresPanel);
|
||||||
|
progresPanel.setLayout(progresPanelLayout);
|
||||||
|
progresPanelLayout.setHorizontalGroup(progresPanelLayout.createParallelGroup(GroupLayout.LEADING)
|
||||||
|
.add(GroupLayout.TRAILING, progresPanelLayout.createSequentialGroup()
|
||||||
|
.add(0, 651, Short.MAX_VALUE)
|
||||||
|
.add(progressBar, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
|
||||||
|
);
|
||||||
|
progresPanelLayout.setVerticalGroup(progresPanelLayout.createParallelGroup(GroupLayout.LEADING)
|
||||||
|
.add(GroupLayout.TRAILING, progresPanelLayout.createSequentialGroup()
|
||||||
|
.add(0, 0, 0)
|
||||||
|
.add(progressBar, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
|
||||||
|
);
|
||||||
|
|
||||||
|
jToolBar2.add(progresPanel);
|
||||||
|
|
||||||
|
borderLayoutPanel.add(jToolBar2, BorderLayout.PAGE_END);
|
||||||
|
|
||||||
|
jTextArea1.setBackground(new Color(240, 240, 240));
|
||||||
|
jTextArea1.setColumns(20);
|
||||||
|
jTextArea1.setLineWrap(true);
|
||||||
|
jTextArea1.setRows(5);
|
||||||
|
jTextArea1.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.jTextArea1.text")); // NOI18N
|
||||||
|
|
||||||
|
GroupLayout jPanel1Layout = new GroupLayout(jPanel1);
|
||||||
|
jPanel1.setLayout(jPanel1Layout);
|
||||||
|
jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.LEADING)
|
||||||
|
.add(GroupLayout.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||||
|
.addContainerGap(213, Short.MAX_VALUE)
|
||||||
|
.add(jTextArea1, GroupLayout.PREFERRED_SIZE, 372, GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addContainerGap(214, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.LEADING)
|
||||||
|
.add(GroupLayout.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||||
|
.addContainerGap(200, Short.MAX_VALUE)
|
||||||
|
.add(jTextArea1, GroupLayout.PREFERRED_SIZE, 43, GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addContainerGap(200, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
|
||||||
|
borderLayoutPanel.add(jPanel1, BorderLayout.CENTER);
|
||||||
|
|
||||||
|
jLabel1.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.jLabel1.text")); // NOI18N
|
||||||
|
|
||||||
|
hierarchyLayoutButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.hierarchyLayoutButton.text")); // NOI18N
|
||||||
|
hierarchyLayoutButton.setFocusable(false);
|
||||||
|
hierarchyLayoutButton.setHorizontalTextPosition(SwingConstants.CENTER);
|
||||||
|
hierarchyLayoutButton.setVerticalTextPosition(SwingConstants.BOTTOM);
|
||||||
|
hierarchyLayoutButton.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
jButton6ActionPerformed(evt);
|
hierarchyLayoutButtonActionPerformed(evt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
jToolBar1.add(jButton6);
|
|
||||||
|
|
||||||
jButton1.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.jButton1.text")); // NOI18N
|
fastOrganicLayoutButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.fastOrganicLayoutButton.text")); // NOI18N
|
||||||
jButton1.setFocusable(false);
|
fastOrganicLayoutButton.setFocusable(false);
|
||||||
jButton1.setHorizontalTextPosition(SwingConstants.CENTER);
|
fastOrganicLayoutButton.setHorizontalTextPosition(SwingConstants.CENTER);
|
||||||
jButton1.setVerticalTextPosition(SwingConstants.BOTTOM);
|
fastOrganicLayoutButton.setVerticalTextPosition(SwingConstants.BOTTOM);
|
||||||
jButton1.addActionListener(new ActionListener() {
|
fastOrganicLayoutButton.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
jButton1ActionPerformed(evt);
|
fastOrganicLayoutButtonActionPerformed(evt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
jToolBar1.add(jButton1);
|
|
||||||
|
|
||||||
jButton8.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.jButton8.text")); // NOI18N
|
OrganicLayoutButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.OrganicLayoutButton.text")); // NOI18N
|
||||||
jButton8.setFocusable(false);
|
OrganicLayoutButton.setFocusable(false);
|
||||||
jButton8.setHorizontalTextPosition(SwingConstants.CENTER);
|
OrganicLayoutButton.setHorizontalTextPosition(SwingConstants.CENTER);
|
||||||
jButton8.setVerticalTextPosition(SwingConstants.BOTTOM);
|
OrganicLayoutButton.setVerticalTextPosition(SwingConstants.BOTTOM);
|
||||||
jButton8.addActionListener(new ActionListener() {
|
OrganicLayoutButton.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
jButton8ActionPerformed(evt);
|
OrganicLayoutButtonActionPerformed(evt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
jToolBar1.add(jButton8);
|
|
||||||
|
|
||||||
jButton7.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.jButton7.text")); // NOI18N
|
circleLayoutButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.circleLayoutButton.text")); // NOI18N
|
||||||
jButton7.setFocusable(false);
|
circleLayoutButton.setFocusable(false);
|
||||||
jButton7.setHorizontalTextPosition(SwingConstants.CENTER);
|
circleLayoutButton.setHorizontalTextPosition(SwingConstants.CENTER);
|
||||||
jButton7.setVerticalTextPosition(SwingConstants.BOTTOM);
|
circleLayoutButton.setVerticalTextPosition(SwingConstants.BOTTOM);
|
||||||
jButton7.addActionListener(new ActionListener() {
|
circleLayoutButton.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
jButton7ActionPerformed(evt);
|
circleLayoutButtonActionPerformed(evt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
jToolBar1.add(jButton7);
|
|
||||||
jToolBar1.add(jSeparator1);
|
|
||||||
|
|
||||||
zoomOutButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/communications/images/magnifier-zoom-out-red.png"))); // NOI18N
|
zoomOutButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/communications/images/magnifier-zoom-out-red.png"))); // NOI18N
|
||||||
zoomOutButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.zoomOutButton.text")); // NOI18N
|
zoomOutButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.zoomOutButton.text")); // NOI18N
|
||||||
@ -424,19 +481,6 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
|
|||||||
zoomOutButtonActionPerformed(evt);
|
zoomOutButtonActionPerformed(evt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
jToolBar1.add(zoomOutButton);
|
|
||||||
|
|
||||||
fitGraphButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/communications/images/magnifier-zoom-fit.png"))); // NOI18N
|
|
||||||
fitGraphButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.fitGraphButton.text")); // NOI18N
|
|
||||||
fitGraphButton.setFocusable(false);
|
|
||||||
fitGraphButton.setHorizontalTextPosition(SwingConstants.CENTER);
|
|
||||||
fitGraphButton.setVerticalTextPosition(SwingConstants.BOTTOM);
|
|
||||||
fitGraphButton.addActionListener(new ActionListener() {
|
|
||||||
public void actionPerformed(ActionEvent evt) {
|
|
||||||
fitGraphButtonActionPerformed(evt);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
jToolBar1.add(fitGraphButton);
|
|
||||||
|
|
||||||
zoomInButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/communications/images/magnifier-zoom-in-green.png"))); // NOI18N
|
zoomInButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/communications/images/magnifier-zoom-in-green.png"))); // NOI18N
|
||||||
zoomInButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.zoomInButton.text")); // NOI18N
|
zoomInButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.zoomInButton.text")); // NOI18N
|
||||||
@ -448,38 +492,86 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
|
|||||||
zoomInButtonActionPerformed(evt);
|
zoomInButtonActionPerformed(evt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
jToolBar1.add(zoomInButton);
|
|
||||||
|
|
||||||
borderLayoutPanel.add(jToolBar1, BorderLayout.NORTH);
|
zoomActualButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/communications/images/magnifier-zoom-actual.png"))); // NOI18N
|
||||||
|
zoomActualButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.zoomActualButton.text")); // NOI18N
|
||||||
|
zoomActualButton.setFocusable(false);
|
||||||
|
zoomActualButton.setHorizontalTextPosition(SwingConstants.CENTER);
|
||||||
|
zoomActualButton.setVerticalTextPosition(SwingConstants.BOTTOM);
|
||||||
|
zoomActualButton.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent evt) {
|
||||||
|
zoomActualButtonActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
progressBar.setMaximumSize(new Dimension(200, 14));
|
fitZoomButton.setIcon(new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/communications/images/magnifier-zoom-fit.png"))); // NOI18N
|
||||||
progressBar.setStringPainted(true);
|
fitZoomButton.setText(NbBundle.getMessage(VisualizationPanel.class, "VisualizationPanel.fitZoomButton.text")); // NOI18N
|
||||||
|
fitZoomButton.setFocusable(false);
|
||||||
|
fitZoomButton.setHorizontalTextPosition(SwingConstants.CENTER);
|
||||||
|
fitZoomButton.setVerticalTextPosition(SwingConstants.BOTTOM);
|
||||||
|
fitZoomButton.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent evt) {
|
||||||
|
fitZoomButtonActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
GroupLayout statusPanelLayout = new GroupLayout(statusPanel);
|
GroupLayout jPanel2Layout = new GroupLayout(jPanel2);
|
||||||
statusPanel.setLayout(statusPanelLayout);
|
jPanel2.setLayout(jPanel2Layout);
|
||||||
statusPanelLayout.setHorizontalGroup(statusPanelLayout.createParallelGroup(GroupLayout.LEADING)
|
jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(GroupLayout.LEADING)
|
||||||
.add(GroupLayout.TRAILING, statusPanelLayout.createSequentialGroup()
|
.add(jPanel2Layout.createSequentialGroup()
|
||||||
.addContainerGap(516, Short.MAX_VALUE)
|
|
||||||
.add(progressBar, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE)
|
|
||||||
.addContainerGap())
|
|
||||||
);
|
|
||||||
statusPanelLayout.setVerticalGroup(statusPanelLayout.createParallelGroup(GroupLayout.LEADING)
|
|
||||||
.add(GroupLayout.TRAILING, statusPanelLayout.createSequentialGroup()
|
|
||||||
.add(3, 3, 3)
|
.add(3, 3, 3)
|
||||||
.add(progressBar, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
|
.add(jLabel1)
|
||||||
|
.addPreferredGap(LayoutStyle.RELATED)
|
||||||
|
.add(fastOrganicLayoutButton)
|
||||||
|
.addPreferredGap(LayoutStyle.RELATED)
|
||||||
|
.add(OrganicLayoutButton)
|
||||||
|
.addPreferredGap(LayoutStyle.RELATED)
|
||||||
|
.add(hierarchyLayoutButton)
|
||||||
|
.addPreferredGap(LayoutStyle.RELATED)
|
||||||
|
.add(circleLayoutButton)
|
||||||
|
.addPreferredGap(LayoutStyle.RELATED)
|
||||||
|
.add(jSeparator1, GroupLayout.PREFERRED_SIZE, 10, GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(LayoutStyle.RELATED)
|
||||||
|
.add(zoomOutButton, GroupLayout.PREFERRED_SIZE, 32, GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(LayoutStyle.RELATED)
|
||||||
|
.add(zoomInButton, GroupLayout.PREFERRED_SIZE, 32, GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(LayoutStyle.RELATED)
|
||||||
|
.add(zoomActualButton, GroupLayout.PREFERRED_SIZE, 33, GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(LayoutStyle.RELATED)
|
||||||
|
.add(fitZoomButton, GroupLayout.PREFERRED_SIZE, 32, GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addContainerGap(214, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(GroupLayout.LEADING)
|
||||||
|
.add(jPanel2Layout.createSequentialGroup()
|
||||||
|
.add(3, 3, 3)
|
||||||
|
.add(jPanel2Layout.createParallelGroup(GroupLayout.CENTER)
|
||||||
|
.add(jLabel1, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
|
||||||
|
.add(hierarchyLayoutButton)
|
||||||
|
.add(fastOrganicLayoutButton)
|
||||||
|
.add(OrganicLayoutButton)
|
||||||
|
.add(circleLayoutButton)
|
||||||
|
.add(jSeparator1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.add(zoomOutButton)
|
||||||
|
.add(zoomInButton, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.add(zoomActualButton, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.add(fitZoomButton, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
.add(3, 3, 3))
|
.add(3, 3, 3))
|
||||||
);
|
);
|
||||||
|
|
||||||
borderLayoutPanel.add(statusPanel, BorderLayout.SOUTH);
|
borderLayoutPanel.add(jPanel2, BorderLayout.PAGE_START);
|
||||||
|
|
||||||
splitPane.setLeftComponent(borderLayoutPanel);
|
splitPane.setLeftComponent(borderLayoutPanel);
|
||||||
|
|
||||||
add(splitPane, BorderLayout.CENTER);
|
add(splitPane, BorderLayout.CENTER);
|
||||||
}// </editor-fold>//GEN-END:initComponents
|
}// </editor-fold>//GEN-END:initComponents
|
||||||
|
|
||||||
private void jButton1ActionPerformed(ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
|
private void fitZoomButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_fitZoomButtonActionPerformed
|
||||||
morph(new mxFastOrganicLayout(graph));
|
fitGraph();
|
||||||
}//GEN-LAST:event_jButton1ActionPerformed
|
}//GEN-LAST:event_fitZoomButtonActionPerformed
|
||||||
|
|
||||||
|
private void zoomActualButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_zoomActualButtonActionPerformed
|
||||||
|
graphComponent.zoomActual();
|
||||||
|
}//GEN-LAST:event_zoomActualButtonActionPerformed
|
||||||
|
|
||||||
private void zoomInButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_zoomInButtonActionPerformed
|
private void zoomInButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_zoomInButtonActionPerformed
|
||||||
graphComponent.zoomIn();
|
graphComponent.zoomIn();
|
||||||
@ -489,17 +581,21 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
|
|||||||
graphComponent.zoomOut();
|
graphComponent.zoomOut();
|
||||||
}//GEN-LAST:event_zoomOutButtonActionPerformed
|
}//GEN-LAST:event_zoomOutButtonActionPerformed
|
||||||
|
|
||||||
private void jButton6ActionPerformed(ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed
|
private void circleLayoutButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_circleLayoutButtonActionPerformed
|
||||||
morph(new mxHierarchicalLayout(graph));
|
|
||||||
}//GEN-LAST:event_jButton6ActionPerformed
|
|
||||||
|
|
||||||
private void jButton7ActionPerformed(ActionEvent evt) {//GEN-FIRST:event_jButton7ActionPerformed
|
|
||||||
morph(new mxCircleLayout(graph));
|
morph(new mxCircleLayout(graph));
|
||||||
}//GEN-LAST:event_jButton7ActionPerformed
|
}//GEN-LAST:event_circleLayoutButtonActionPerformed
|
||||||
|
|
||||||
private void jButton8ActionPerformed(ActionEvent evt) {//GEN-FIRST:event_jButton8ActionPerformed
|
private void OrganicLayoutButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_OrganicLayoutButtonActionPerformed
|
||||||
applyOrganicLayout(10);
|
applyOrganicLayout(10);
|
||||||
}//GEN-LAST:event_jButton8ActionPerformed
|
}//GEN-LAST:event_OrganicLayoutButtonActionPerformed
|
||||||
|
|
||||||
|
private void fastOrganicLayoutButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_fastOrganicLayoutButtonActionPerformed
|
||||||
|
morph(new mxFastOrganicLayout(graph));
|
||||||
|
}//GEN-LAST:event_fastOrganicLayoutButtonActionPerformed
|
||||||
|
|
||||||
|
private void hierarchyLayoutButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_hierarchyLayoutButtonActionPerformed
|
||||||
|
morph(new mxHierarchicalLayout(graph));
|
||||||
|
}//GEN-LAST:event_hierarchyLayoutButtonActionPerformed
|
||||||
|
|
||||||
private void applyOrganicLayout(int iterations) {
|
private void applyOrganicLayout(int iterations) {
|
||||||
mxOrganicLayout mxOrganicLayout = new mxOrganicLayout(graph) {
|
mxOrganicLayout mxOrganicLayout = new mxOrganicLayout(graph) {
|
||||||
@ -513,10 +609,6 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
|
|||||||
morph(mxOrganicLayout);
|
morph(mxOrganicLayout);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fitGraphButtonActionPerformed(ActionEvent evt) {//GEN-FIRST:event_fitGraphButtonActionPerformed
|
|
||||||
fitGraph();
|
|
||||||
}//GEN-LAST:event_fitGraphButtonActionPerformed
|
|
||||||
|
|
||||||
private void fitGraph() {
|
private void fitGraph() {
|
||||||
final Object[] childVertices = graph.getChildVertices(graph.getDefaultParent());
|
final Object[] childVertices = graph.getChildVertices(graph.getDefaultParent());
|
||||||
mxRectangle boundsForCells = graph.getBoundsForCells(childVertices, true, true, true);
|
mxRectangle boundsForCells = graph.getBoundsForCells(childVertices, true, true, true);
|
||||||
@ -529,10 +621,6 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
|
|||||||
}
|
}
|
||||||
|
|
||||||
graph.getView().setTranslate(new mxPoint(translate.getX() - boundsForCells.getX(), translate.getY() - boundsForCells.getY()));
|
graph.getView().setTranslate(new mxPoint(translate.getX() - boundsForCells.getX(), translate.getY() - boundsForCells.getY()));
|
||||||
|
|
||||||
// graphComponent.zoomActual();
|
|
||||||
// graphComponent.zoomAndCenter();
|
|
||||||
// graph.getGraphBounds().getWidth()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void morph(mxIGraphLayout layout) {
|
private void morph(mxIGraphLayout layout) {
|
||||||
@ -560,17 +648,23 @@ final public class VisualizationPanel extends JPanel implements Lookup.Provider
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||||
|
private JButton OrganicLayoutButton;
|
||||||
private JPanel borderLayoutPanel;
|
private JPanel borderLayoutPanel;
|
||||||
private JButton fitGraphButton;
|
private JButton circleLayoutButton;
|
||||||
private JButton jButton1;
|
private JButton fastOrganicLayoutButton;
|
||||||
private JButton jButton6;
|
private JButton fitZoomButton;
|
||||||
private JButton jButton7;
|
private JButton hierarchyLayoutButton;
|
||||||
private JButton jButton8;
|
private JLabel jLabel1;
|
||||||
|
private JPanel jPanel1;
|
||||||
|
private JPanel jPanel2;
|
||||||
private JToolBar.Separator jSeparator1;
|
private JToolBar.Separator jSeparator1;
|
||||||
private JToolBar jToolBar1;
|
private JTextArea jTextArea1;
|
||||||
|
private JToolBar jToolBar2;
|
||||||
|
private JPanel progresPanel;
|
||||||
private JProgressBar progressBar;
|
private JProgressBar progressBar;
|
||||||
private JSplitPane splitPane;
|
private JSplitPane splitPane;
|
||||||
private JPanel statusPanel;
|
private JLabel statusLabel;
|
||||||
|
private JButton zoomActualButton;
|
||||||
private JButton zoomInButton;
|
private JButton zoomInButton;
|
||||||
private JButton zoomOutButton;
|
private JButton zoomOutButton;
|
||||||
// End of variables declaration//GEN-END:variables
|
// End of variables declaration//GEN-END:variables
|
||||||
|
@ -30,7 +30,6 @@ import com.mxgraph.view.mxStylesheet;
|
|||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -77,6 +76,7 @@ final class mxGraphImpl extends mxGraph {
|
|||||||
|
|
||||||
public mxGraphImpl() {
|
public mxGraphImpl() {
|
||||||
super(mxStylesheet);
|
super(mxStylesheet);
|
||||||
|
setAutoSizeCells(true);
|
||||||
setCellsCloneable(false);
|
setCellsCloneable(false);
|
||||||
setDropEnabled(false);
|
setDropEnabled(false);
|
||||||
setCellsCloneable(false);
|
setCellsCloneable(false);
|
||||||
@ -167,38 +167,6 @@ final class mxGraphImpl extends mxGraph {
|
|||||||
lockedAccountDevices.clear();
|
lockedAccountDevices.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class RelationshipModel {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return adiKey1.getAccountDeviceInstance().getAccount().getTypeSpecificID()
|
|
||||||
+ "<-" + relationshipSources.size() + "->"
|
|
||||||
+ adiKey2.getAccountDeviceInstance().getAccount().getTypeSpecificID();
|
|
||||||
}
|
|
||||||
|
|
||||||
private final List<Content> relationshipSources;
|
|
||||||
private final AccountDeviceInstanceKey adiKey1;
|
|
||||||
private final AccountDeviceInstanceKey adiKey2;
|
|
||||||
|
|
||||||
private RelationshipModel(List<Content> relationships, AccountDeviceInstanceKey adiKey1, AccountDeviceInstanceKey adiKey2) {
|
|
||||||
this.relationshipSources = relationships;
|
|
||||||
this.adiKey1 = adiKey1;
|
|
||||||
this.adiKey2 = adiKey2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Content> getSources() {
|
|
||||||
return Collections.unmodifiableList(relationshipSources);
|
|
||||||
}
|
|
||||||
|
|
||||||
public AccountDeviceInstanceKey getAccount1() {
|
|
||||||
return adiKey1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public AccountDeviceInstanceKey getAccount2() {
|
|
||||||
return adiKey2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private mxCell getOrCreateVertex(AccountDeviceInstanceKey accountDeviceInstanceKey) {
|
private mxCell getOrCreateVertex(AccountDeviceInstanceKey accountDeviceInstanceKey) {
|
||||||
final AccountDeviceInstance accountDeviceInstance = accountDeviceInstanceKey.getAccountDeviceInstance();
|
final AccountDeviceInstance accountDeviceInstance = accountDeviceInstanceKey.getAccountDeviceInstance();
|
||||||
final String name =// accountDeviceInstance.getDeviceId() + ":" +
|
final String name =// accountDeviceInstance.getDeviceId() + ":" +
|
||||||
@ -245,7 +213,10 @@ final class mxGraphImpl extends mxGraph {
|
|||||||
return edge;
|
return edge;
|
||||||
}
|
}
|
||||||
|
|
||||||
class SwingWorkerImpl extends SwingWorker<Set<mxGraphImpl.RelationshipModel>, mxGraphImpl.RelationshipModel> {
|
boolean hasPinnedAccounts() {
|
||||||
|
return pinnedAccountDevices.isEmpty() == false; }
|
||||||
|
|
||||||
|
class SwingWorkerImpl extends SwingWorker<Void, Void> {
|
||||||
|
|
||||||
private final ProgressIndicator progress;
|
private final ProgressIndicator progress;
|
||||||
private final CommunicationsManager commsManager;
|
private final CommunicationsManager commsManager;
|
||||||
@ -258,11 +229,9 @@ final class mxGraphImpl extends mxGraph {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Set<mxGraphImpl.RelationshipModel> doInBackground() throws Exception {
|
protected Void doInBackground() throws Exception {
|
||||||
|
|
||||||
progress.start("Loading accounts", pinnedAccountDevices.size());
|
progress.start("Loading accounts", pinnedAccountDevices.size());
|
||||||
int i = 0;
|
int i = 0;
|
||||||
Set<mxGraphImpl.RelationshipModel> relationshipModels = new HashSet<>();
|
|
||||||
try {
|
try {
|
||||||
/**
|
/**
|
||||||
* set to keep track of accounts related to pinned accounts
|
* set to keep track of accounts related to pinned accounts
|
||||||
@ -296,9 +265,8 @@ final class mxGraphImpl extends mxGraph {
|
|||||||
adiKey2.getAccountDeviceInstance(),
|
adiKey2.getAccountDeviceInstance(),
|
||||||
currentFilter);
|
currentFilter);
|
||||||
if (relationships.size() > 0) {
|
if (relationships.size() > 0) {
|
||||||
mxGraphImpl.RelationshipModel relationshipModel = new RelationshipModel(relationships, adiKey1, adiKey2);
|
mxCell addEdge = addEdge(relationships, adiKey1, adiKey2);
|
||||||
publish(relationshipModel);
|
progress.progress(addEdge.getId());
|
||||||
progress.progress(relationshipModel.toString());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
progress.progress(i);
|
progress.progress(i);
|
||||||
@ -307,17 +275,7 @@ final class mxGraphImpl extends mxGraph {
|
|||||||
logger.log(Level.SEVERE, "Error", tskCoreException);
|
logger.log(Level.SEVERE, "Error", tskCoreException);
|
||||||
} finally {
|
} finally {
|
||||||
}
|
}
|
||||||
return relationshipModels;
|
return null;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void process(List<mxGraphImpl.RelationshipModel> chunks) {
|
|
||||||
super.process(chunks);
|
|
||||||
for (mxGraphImpl.RelationshipModel relationShipModel : chunks) {
|
|
||||||
mxCell addEdge = addEdge(relationShipModel.getSources(),
|
|
||||||
relationShipModel.getAccount1(),
|
|
||||||
relationShipModel.getAccount2());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user