diff --git a/Example/build.xml b/Example/build.xml new file mode 100644 index 0000000000..066cace4ee --- /dev/null +++ b/Example/build.xml @@ -0,0 +1,8 @@ + + + + + + Builds, tests, and runs the project org.sleuthkit.autopsy.example. + + diff --git a/Example/build/classes/META-INF/services/org.sleuthkit.autopsy.corecomponentinterfaces.DataExplorer b/Example/build/classes/META-INF/services/org.sleuthkit.autopsy.corecomponentinterfaces.DataExplorer new file mode 100644 index 0000000000..82bea797ae --- /dev/null +++ b/Example/build/classes/META-INF/services/org.sleuthkit.autopsy.corecomponentinterfaces.DataExplorer @@ -0,0 +1 @@ +org.sleuthkit.autopsy.example.ExampleDataExplorer diff --git a/Example/build/classes/org/sleuthkit/autopsy/example/Bundle.properties b/Example/build/classes/org/sleuthkit/autopsy/example/Bundle.properties new file mode 100644 index 0000000000..3bba77cab7 --- /dev/null +++ b/Example/build/classes/org/sleuthkit/autopsy/example/Bundle.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Name=Example +ExampleTopComponent.makeNodesButton.text=Make Nodes diff --git a/Example/build/classes/org/sleuthkit/autopsy/example/ExampleDataExplorer.class b/Example/build/classes/org/sleuthkit/autopsy/example/ExampleDataExplorer.class new file mode 100644 index 0000000000..96b9c07cf0 Binary files /dev/null and b/Example/build/classes/org/sleuthkit/autopsy/example/ExampleDataExplorer.class differ diff --git a/Example/build/classes/org/sleuthkit/autopsy/example/ExampleKeyValueChildFactory.class b/Example/build/classes/org/sleuthkit/autopsy/example/ExampleKeyValueChildFactory.class new file mode 100644 index 0000000000..6efdcf2936 Binary files /dev/null and b/Example/build/classes/org/sleuthkit/autopsy/example/ExampleKeyValueChildFactory.class differ diff --git a/Example/build/classes/org/sleuthkit/autopsy/example/ExampleModel.class b/Example/build/classes/org/sleuthkit/autopsy/example/ExampleModel.class new file mode 100644 index 0000000000..207e180d44 Binary files /dev/null and b/Example/build/classes/org/sleuthkit/autopsy/example/ExampleModel.class differ diff --git a/Example/build/classes/org/sleuthkit/autopsy/example/ExampleTopComponent$1.class b/Example/build/classes/org/sleuthkit/autopsy/example/ExampleTopComponent$1.class new file mode 100644 index 0000000000..b1b74e1999 Binary files /dev/null and b/Example/build/classes/org/sleuthkit/autopsy/example/ExampleTopComponent$1.class differ diff --git a/Example/build/classes/org/sleuthkit/autopsy/example/ExampleTopComponent.class b/Example/build/classes/org/sleuthkit/autopsy/example/ExampleTopComponent.class new file mode 100644 index 0000000000..808349eab9 Binary files /dev/null and b/Example/build/classes/org/sleuthkit/autopsy/example/ExampleTopComponent.class differ diff --git a/Example/build/no-license.txt b/Example/build/no-license.txt new file mode 100644 index 0000000000..201dea1e15 --- /dev/null +++ b/Example/build/no-license.txt @@ -0,0 +1 @@ +[NO LICENSE SPECIFIED] \ No newline at end of file diff --git a/Example/manifest.mf b/Example/manifest.mf new file mode 100644 index 0000000000..140ad66bd3 --- /dev/null +++ b/Example/manifest.mf @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +OpenIDE-Module: org.sleuthkit.autopsy.example +OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/example/Bundle.properties +OpenIDE-Module-Specification-Version: 1.0 + diff --git a/Example/nbproject/build-impl.xml b/Example/nbproject/build-impl.xml new file mode 100644 index 0000000000..e4ea4bdebf --- /dev/null +++ b/Example/nbproject/build-impl.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + You must set 'suite.dir' to point to your containing module suite + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/nbproject/genfiles.properties b/Example/nbproject/genfiles.properties new file mode 100644 index 0000000000..ec4f808a44 --- /dev/null +++ b/Example/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=9a4a6521 +build.xml.script.CRC32=8c5f554c +build.xml.stylesheet.CRC32=a56c6a5b@1.46.2 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=9a4a6521 +nbproject/build-impl.xml.script.CRC32=ae819cf0 +nbproject/build-impl.xml.stylesheet.CRC32=238281d1@1.46.2 diff --git a/Example/nbproject/platform.properties b/Example/nbproject/platform.properties new file mode 100644 index 0000000000..38ecd5a92e --- /dev/null +++ b/Example/nbproject/platform.properties @@ -0,0 +1,99 @@ +cluster.path=\ + ${nbplatform.active.dir}/java:\ + ${nbplatform.active.dir}/platform +disabled.modules=\ + org.apache.tools.ant.module,\ + org.netbeans.api.debugger.jpda,\ + org.netbeans.api.java,\ + org.netbeans.libs.cglib,\ + org.netbeans.libs.javacapi,\ + org.netbeans.libs.javacimpl,\ + org.netbeans.libs.jsr223,\ + org.netbeans.libs.springframework,\ + org.netbeans.modules.ant.browsetask,\ + org.netbeans.modules.ant.debugger,\ + org.netbeans.modules.ant.freeform,\ + org.netbeans.modules.ant.grammar,\ + org.netbeans.modules.ant.kit,\ + org.netbeans.modules.beans,\ + org.netbeans.modules.classfile,\ + org.netbeans.modules.dbschema,\ + org.netbeans.modules.debugger.jpda,\ + org.netbeans.modules.debugger.jpda.ant,\ + org.netbeans.modules.debugger.jpda.projects,\ + org.netbeans.modules.debugger.jpda.ui,\ + org.netbeans.modules.form,\ + org.netbeans.modules.form.j2ee,\ + org.netbeans.modules.form.kit,\ + org.netbeans.modules.hibernate,\ + org.netbeans.modules.hibernatelib,\ + org.netbeans.modules.hudson.ant,\ + org.netbeans.modules.hudson.maven,\ + org.netbeans.modules.i18n,\ + org.netbeans.modules.i18n.form,\ + org.netbeans.modules.j2ee.core.utilities,\ + org.netbeans.modules.j2ee.eclipselink,\ + org.netbeans.modules.j2ee.eclipselinkmodelgen,\ + org.netbeans.modules.j2ee.jpa.refactoring,\ + org.netbeans.modules.j2ee.jpa.verification,\ + org.netbeans.modules.j2ee.metadata,\ + org.netbeans.modules.j2ee.metadata.model.support,\ + org.netbeans.modules.j2ee.persistence,\ + org.netbeans.modules.j2ee.persistence.kit,\ + org.netbeans.modules.j2ee.persistenceapi,\ + org.netbeans.modules.j2ee.toplinklib,\ + org.netbeans.modules.java.api.common,\ + org.netbeans.modules.java.debug,\ + org.netbeans.modules.java.editor,\ + org.netbeans.modules.java.editor.lib,\ + org.netbeans.modules.java.examples,\ + org.netbeans.modules.java.freeform,\ + org.netbeans.modules.java.guards,\ + org.netbeans.modules.java.helpset,\ + org.netbeans.modules.java.hints,\ + org.netbeans.modules.java.hints.processor,\ + org.netbeans.modules.java.j2seplatform,\ + org.netbeans.modules.java.j2seproject,\ + org.netbeans.modules.java.kit,\ + org.netbeans.modules.java.lexer,\ + org.netbeans.modules.java.navigation,\ + org.netbeans.modules.java.platform,\ + org.netbeans.modules.java.preprocessorbridge,\ + org.netbeans.modules.java.project,\ + org.netbeans.modules.java.source,\ + org.netbeans.modules.java.source.ant,\ + org.netbeans.modules.java.sourceui,\ + org.netbeans.modules.javadoc,\ + org.netbeans.modules.javawebstart,\ + org.netbeans.modules.jellytools,\ + org.netbeans.modules.jellytools.java,\ + org.netbeans.modules.junit,\ + org.netbeans.modules.maven,\ + org.netbeans.modules.maven.coverage,\ + org.netbeans.modules.maven.embedder,\ + org.netbeans.modules.maven.grammar,\ + org.netbeans.modules.maven.graph,\ + org.netbeans.modules.maven.hints,\ + org.netbeans.modules.maven.indexer,\ + org.netbeans.modules.maven.junit,\ + org.netbeans.modules.maven.kit,\ + org.netbeans.modules.maven.model,\ + org.netbeans.modules.maven.osgi,\ + org.netbeans.modules.maven.persistence,\ + org.netbeans.modules.maven.repository,\ + org.netbeans.modules.maven.search,\ + org.netbeans.modules.maven.spring,\ + org.netbeans.modules.projectimport.eclipse.core,\ + org.netbeans.modules.projectimport.eclipse.j2se,\ + org.netbeans.modules.refactoring.java,\ + org.netbeans.modules.spellchecker.bindings.java,\ + org.netbeans.modules.spring.beans,\ + org.netbeans.modules.swingapp,\ + org.netbeans.modules.websvc.jaxws21,\ + org.netbeans.modules.websvc.jaxws21api,\ + org.netbeans.modules.websvc.saas.codegen.java,\ + org.netbeans.modules.xml.jaxb,\ + org.netbeans.modules.xml.tools.java,\ + org.openide.compat,\ + org.openide.util.enumerations +nbplatform.active=default diff --git a/Example/nbproject/project.properties b/Example/nbproject/project.properties new file mode 100644 index 0000000000..17255bac6b --- /dev/null +++ b/Example/nbproject/project.properties @@ -0,0 +1,2 @@ +javac.source=1.6 +javac.compilerargs=-Xlint -Xlint:-serial diff --git a/Example/nbproject/project.xml b/Example/nbproject/project.xml new file mode 100644 index 0000000000..05fc6646ef --- /dev/null +++ b/Example/nbproject/project.xml @@ -0,0 +1,72 @@ + + + org.netbeans.modules.apisupport.project + + + org.sleuthkit.autopsy.example + + + + org.openide.nodes + + + + 7.21.1 + + + + org.openide.util + + + + 8.15.1 + + + + org.openide.util.lookup + + + + 8.8.1 + + + + org.openide.windows + + + + 6.40.1 + + + + org.sleuthkit.autopsy.corecomponentinterfaces + + + + 1 + 1.0 + + + + org.sleuthkit.autopsy.corecomponents + + + + 1 + 1.0 + + + + org.sleuthkit.autopsy.datamodel + + + + 1 + 1.0 + + + + + + + diff --git a/Example/nbproject/suite.properties b/Example/nbproject/suite.properties new file mode 100644 index 0000000000..29d7cc9bd6 --- /dev/null +++ b/Example/nbproject/suite.properties @@ -0,0 +1 @@ +suite.dir=${basedir}/.. diff --git a/Example/src/org/sleuthkit/autopsy/example/Bundle.properties b/Example/src/org/sleuthkit/autopsy/example/Bundle.properties new file mode 100644 index 0000000000..3bba77cab7 --- /dev/null +++ b/Example/src/org/sleuthkit/autopsy/example/Bundle.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Name=Example +ExampleTopComponent.makeNodesButton.text=Make Nodes diff --git a/Example/src/org/sleuthkit/autopsy/example/ExampleDataExplorer.java b/Example/src/org/sleuthkit/autopsy/example/ExampleDataExplorer.java new file mode 100644 index 0000000000..5797470aea --- /dev/null +++ b/Example/src/org/sleuthkit/autopsy/example/ExampleDataExplorer.java @@ -0,0 +1,71 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package org.sleuthkit.autopsy.example; + +import java.beans.PropertyChangeEvent; +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; +import org.openide.nodes.AbstractNode; +import org.openide.nodes.Children; +import org.openide.nodes.Node; +import org.openide.util.lookup.ServiceProvider; +import org.openide.windows.TopComponent; +import org.sleuthkit.autopsy.corecomponentinterfaces.DataExplorer; +import org.sleuthkit.autopsy.corecomponents.DataResultTopComponent; +import org.sleuthkit.autopsy.datamodel.KeyValueThing; + + +@ServiceProvider(service = DataExplorer.class) +public class ExampleDataExplorer implements DataExplorer { + + ExampleTopComponent tc; + + public ExampleDataExplorer() { + tc = new ExampleTopComponent(this); + tc.setName("Example"); + } + + @Override + public org.openide.windows.TopComponent getTopComponent() { + return tc; + } + + @Override + public void propertyChange(PropertyChangeEvent evt) { + // nothing to do in simple example + } + + static final int NUMBER_THING_ID = 41234; + + void makeNodes() { + Collection things = new ArrayList(); + + for (int i = 1; i <= 10; i++) { + for (int j = 1; j <= 10; j++) { + Map kvs = new LinkedHashMap(); + kvs.put("x", i); + kvs.put("y", j); + kvs.put("sum", i+j); + kvs.put("product", i*j); + + things.add(new KeyValueThing(i + " and " + j, kvs, + NUMBER_THING_ID)); + } + } + + Children childThingNodes = + Children.create(new ExampleKeyValueChildFactory(things), true); + + Node rootNode = new AbstractNode(childThingNodes); + String pathText = "foo"; + + TopComponent searchResultWin = + DataResultTopComponent.createInstance("Keyword search", + pathText, rootNode, things.size()); + searchResultWin.requestActive(); // make it the active top component + } +} diff --git a/Example/src/org/sleuthkit/autopsy/example/ExampleKeyValueChildFactory.java b/Example/src/org/sleuthkit/autopsy/example/ExampleKeyValueChildFactory.java new file mode 100644 index 0000000000..5dab6d6139 --- /dev/null +++ b/Example/src/org/sleuthkit/autopsy/example/ExampleKeyValueChildFactory.java @@ -0,0 +1,28 @@ +package org.sleuthkit.autopsy.example; + +import java.util.Collection; +import java.util.List; +import org.openide.nodes.ChildFactory; +import org.openide.nodes.Children; +import org.openide.nodes.Node; +import org.sleuthkit.autopsy.datamodel.KeyValueNode; +import org.sleuthkit.autopsy.datamodel.KeyValueThing; + +public class ExampleKeyValueChildFactory extends ChildFactory { + + private Collection things; + + public ExampleKeyValueChildFactory(Collection things) { + this.things = things; + } + + @Override + protected boolean createKeys(List toPopulate) { + return toPopulate.addAll(things); + } + + @Override + protected Node createNodeForKey(KeyValueThing thing) { + return new KeyValueNode(thing, Children.LEAF); + } +} diff --git a/Example/src/org/sleuthkit/autopsy/example/ExampleModel.java b/Example/src/org/sleuthkit/autopsy/example/ExampleModel.java new file mode 100644 index 0000000000..e9c1af3c89 --- /dev/null +++ b/Example/src/org/sleuthkit/autopsy/example/ExampleModel.java @@ -0,0 +1,15 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package org.sleuthkit.autopsy.example; + +public class ExampleModel { + + int x; + + ExampleModel(int x) { + this.x = x; + } + +} diff --git a/Example/src/org/sleuthkit/autopsy/example/ExampleTopComponent.form b/Example/src/org/sleuthkit/autopsy/example/ExampleTopComponent.form new file mode 100644 index 0000000000..63d3073671 --- /dev/null +++ b/Example/src/org/sleuthkit/autopsy/example/ExampleTopComponent.form @@ -0,0 +1,48 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/Example/src/org/sleuthkit/autopsy/example/ExampleTopComponent.java b/Example/src/org/sleuthkit/autopsy/example/ExampleTopComponent.java new file mode 100644 index 0000000000..73a4304b8c --- /dev/null +++ b/Example/src/org/sleuthkit/autopsy/example/ExampleTopComponent.java @@ -0,0 +1,72 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +/* + * ExampleTopComponent.java + * + * Created on Dec 12, 2011, 1:55:46 PM + */ +package org.sleuthkit.autopsy.example; + +import org.openide.windows.TopComponent; + +/** + * + * @author pmartel + */ +public class ExampleTopComponent extends TopComponent { + + ExampleDataExplorer edx; + + /** Creates new form ExampleTopComponent */ + public ExampleTopComponent(ExampleDataExplorer edx) { + this.edx = edx; + initComponents(); + } + + /** This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + makeNodesButton = new javax.swing.JButton(); + + makeNodesButton.setText(org.openide.util.NbBundle.getMessage(ExampleTopComponent.class, "ExampleTopComponent.makeNodesButton.text")); // NOI18N + makeNodesButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + makeNodesButtonActionPerformed(evt); + } + }); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(makeNodesButton) + .addContainerGap(299, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(makeNodesButton) + .addContainerGap(266, Short.MAX_VALUE)) + ); + }// //GEN-END:initComponents + + private void makeNodesButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_makeNodesButtonActionPerformed + edx.makeNodes(); + }//GEN-LAST:event_makeNodesButtonActionPerformed + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton makeNodesButton; + // End of variables declaration//GEN-END:variables +} diff --git a/nbproject/project.properties b/nbproject/project.properties index d78ab488e8..7bd51a49ed 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -17,11 +17,13 @@ modules=\ ${project.org.sleuthkit.autopsy.filesearch}:\ ${project.org.sleuthkit.autopsy.datamodel}:\ ${project.org.sleuthkit.autopsy.logging}:\ - ${project.org.sleuthkit.autopsy.casemodule} + ${project.org.sleuthkit.autopsy.casemodule}:\ + ${project.org.sleuthkit.autopsy.example} project.org.sleuthkit.autopsy.casemodule=Case project.org.sleuthkit.autopsy.corecomponentinterfaces=CoreComponentInterfaces project.org.sleuthkit.autopsy.corecomponents=CoreComponents project.org.sleuthkit.autopsy.directorytree=DirectoryTree +project.org.sleuthkit.autopsy.example=Example project.org.sleuthkit.autopsy.filesearch=FileSearch project.org.sleuthkit.autopsy.logging=Logging project.org.sleuthkit.autopsy.menuactions=MenuActions