Merge pull request #3419 from millmanorama/cvt-953-message-for-empty-graph

Cvt 953 message for empty graph
This commit is contained in:
Richard Cordovano 2018-02-09 13:27:24 -05:00 committed by GitHub
commit 6a858c1e4e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 403 additions and 216 deletions

View File

@ -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

View File

@ -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, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.statusLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.fastOrganicLayoutButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.OrganicLayoutButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/communications/Bundle.properties" key="VisualizationPanel.circleLayoutButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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>

View File

@ -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

View File

@ -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