mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-19 19:14:55 +00:00
Merge pull request #460 from mrtizmo/develop
KeywordSearch Module Japanese Localization
This commit is contained in:
commit
c5ef9523d6
1
.gitignore
vendored
1
.gitignore
vendored
@ -36,7 +36,6 @@
|
|||||||
!/Ingest/nbproject/project.properties
|
!/Ingest/nbproject/project.properties
|
||||||
/branding_spear
|
/branding_spear
|
||||||
/installer_spear
|
/installer_spear
|
||||||
Bundle_*.properties
|
|
||||||
*/genfiles.properties
|
*/genfiles.properties
|
||||||
genfiles.properties
|
genfiles.properties
|
||||||
/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties
|
/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties
|
||||||
|
@ -26,7 +26,7 @@ import org.sleuthkit.datamodel.BlackboardArtifact;
|
|||||||
/**
|
/**
|
||||||
* Abstract base class for Actions involving tags.
|
* Abstract base class for Actions involving tags.
|
||||||
*/
|
*/
|
||||||
public abstract class TagAction extends AbstractAction {
|
abstract class TagAction extends AbstractAction {
|
||||||
public TagAction(String menuText) {
|
public TagAction(String menuText) {
|
||||||
super(menuText);
|
super(menuText);
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ package org.sleuthkit.autopsy.casemodule;
|
|||||||
/**
|
/**
|
||||||
* Dialog to show add image error messages
|
* Dialog to show add image error messages
|
||||||
*/
|
*/
|
||||||
public class AddImageErrorsDialog extends javax.swing.JDialog {
|
class AddImageErrorsDialog extends javax.swing.JDialog {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates new form AddImageErrorsDialog
|
* Creates new form AddImageErrorsDialog
|
||||||
|
@ -43,7 +43,7 @@ import org.sleuthkit.datamodel.TskException;
|
|||||||
* It updates the given ProgressMonitor as it works through adding the image,
|
* It updates the given ProgressMonitor as it works through adding the image,
|
||||||
* and et the end, calls the specified Callback.
|
* and et the end, calls the specified Callback.
|
||||||
*/
|
*/
|
||||||
public class AddImageTask implements Runnable {
|
class AddImageTask implements Runnable {
|
||||||
|
|
||||||
private Logger logger = Logger.getLogger(AddImageTask.class.getName());
|
private Logger logger = Logger.getLogger(AddImageTask.class.getName());
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ import org.openide.WizardDescriptor;
|
|||||||
* visual component to display progress bar and status updates while adding an
|
* visual component to display progress bar and status updates while adding an
|
||||||
* image in the wizard
|
* image in the wizard
|
||||||
*/
|
*/
|
||||||
public class AddImageWizardAddingProgressVisual extends javax.swing.JPanel {
|
class AddImageWizardAddingProgressVisual extends javax.swing.JPanel {
|
||||||
|
|
||||||
private static final String ADDING_DATA_SOURCE_COMPLETE = "Adding Data Source - Complete";
|
private static final String ADDING_DATA_SOURCE_COMPLETE = "Adding Data Source - Complete";
|
||||||
private String errorLog = "";
|
private String errorLog = "";
|
||||||
|
@ -27,7 +27,7 @@ import javax.swing.JPanel;
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class AddImageWizardIngestConfigVisual extends javax.swing.JPanel {
|
class AddImageWizardIngestConfigVisual extends javax.swing.JPanel {
|
||||||
|
|
||||||
//could this be something more specific than JPanel? - jm
|
//could this be something more specific than JPanel? - jm
|
||||||
private JPanel ingestPanel = null;
|
private JPanel ingestPanel = null;
|
||||||
|
@ -40,7 +40,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
|||||||
* manager methods acquire the locks for each transaction when adding
|
* manager methods acquire the locks for each transaction when adding
|
||||||
* logical files.
|
* logical files.
|
||||||
*/
|
*/
|
||||||
public class AddLocalFilesTask implements Runnable {
|
class AddLocalFilesTask implements Runnable {
|
||||||
|
|
||||||
private Logger logger = Logger.getLogger(AddLocalFilesTask.class.getName());
|
private Logger logger = Logger.getLogger(AddLocalFilesTask.class.getName());
|
||||||
|
|
||||||
|
@ -19,7 +19,8 @@
|
|||||||
package org.sleuthkit.autopsy.casemodule;
|
package org.sleuthkit.autopsy.casemodule;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Exception thrown when case action (such as open, close, create) resulted in an error
|
* Exception thrown when case action (such as open, close, create) resulted in
|
||||||
|
* an error
|
||||||
*/
|
*/
|
||||||
public class CaseActionException extends Exception {
|
public class CaseActionException extends Exception {
|
||||||
|
|
||||||
@ -30,6 +31,4 @@ public class CaseActionException extends Exception {
|
|||||||
public CaseActionException(String message, Throwable cause) {
|
public CaseActionException(String message, Throwable cause) {
|
||||||
super(message, cause);
|
super(message, cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,7 @@ import org.openide.util.actions.Presenter;
|
|||||||
* The action to close the current Case. This class should be disabled on
|
* The action to close the current Case. This class should be disabled on
|
||||||
* creation and it will be enabled on new case creation or case opened.
|
* creation and it will be enabled on new case creation or case opened.
|
||||||
*/
|
*/
|
||||||
public final class CaseCloseAction extends CallableSystemAction implements Presenter.Toolbar{
|
final class CaseCloseAction extends CallableSystemAction implements Presenter.Toolbar{
|
||||||
|
|
||||||
JButton toolbarButton = new JButton();
|
JButton toolbarButton = new JButton();
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ import org.openide.util.actions.CallableSystemAction;
|
|||||||
* The action to delete the current Case. This class should be disabled on
|
* The action to delete the current Case. This class should be disabled on
|
||||||
* creation and it will be enabled on new case creation or case opened.
|
* creation and it will be enabled on new case creation or case opened.
|
||||||
*/
|
*/
|
||||||
public final class CaseDeleteAction extends CallableSystemAction {
|
final class CaseDeleteAction extends CallableSystemAction {
|
||||||
|
|
||||||
private JPanel caller; // for error handling
|
private JPanel caller; // for error handling
|
||||||
|
|
||||||
|
@ -25,6 +25,6 @@ import java.awt.event.ActionListener;
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public interface CaseNewActionInterface extends ActionListener {
|
interface CaseNewActionInterface extends ActionListener {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
|||||||
*
|
*
|
||||||
* @author jantonius
|
* @author jantonius
|
||||||
*/
|
*/
|
||||||
public final class CasePropertiesAction extends CallableSystemAction {
|
final class CasePropertiesAction extends CallableSystemAction {
|
||||||
|
|
||||||
private static JDialog popUpWindow;
|
private static JDialog popUpWindow;
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ import org.openide.util.Lookup;
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class CueBannerPanel extends javax.swing.JPanel {
|
class CueBannerPanel extends javax.swing.JPanel {
|
||||||
|
|
||||||
final private static String title = "Open Recent Case";
|
final private static String title = "Open Recent Case";
|
||||||
final private static JFrame frame = new JFrame(title);
|
final private static JFrame frame = new JFrame(title);
|
||||||
|
@ -47,7 +47,7 @@ import org.sleuthkit.autopsy.coreutils.PlatformUtil;
|
|||||||
/**
|
/**
|
||||||
* ImageTypePanel for adding a local disk or partition such as PhysicalDrive0 or C:.
|
* ImageTypePanel for adding a local disk or partition such as PhysicalDrive0 or C:.
|
||||||
*/
|
*/
|
||||||
public class LocalDiskPanel extends JPanel {
|
class LocalDiskPanel extends JPanel {
|
||||||
private static final Logger logger = Logger.getLogger(LocalDiskPanel.class.getName());
|
private static final Logger logger = Logger.getLogger(LocalDiskPanel.class.getName());
|
||||||
|
|
||||||
private static LocalDiskPanel instance;
|
private static LocalDiskPanel instance;
|
||||||
|
@ -30,7 +30,7 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor;
|
|||||||
/**
|
/**
|
||||||
* Add input wizard subpanel for adding local files / dirs to the case
|
* Add input wizard subpanel for adding local files / dirs to the case
|
||||||
*/
|
*/
|
||||||
public class LocalFilesPanel extends JPanel {
|
class LocalFilesPanel extends JPanel {
|
||||||
|
|
||||||
private PropertyChangeSupport pcs = null;
|
private PropertyChangeSupport pcs = null;
|
||||||
private Set<File> currentFiles = new TreeSet<File>(); //keep currents in a set to disallow duplicates per add
|
private Set<File> currentFiles = new TreeSet<File>(); //keep currents in a set to disallow duplicates per add
|
||||||
|
@ -39,7 +39,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class MissingImageDialog extends javax.swing.JDialog {
|
class MissingImageDialog extends javax.swing.JDialog {
|
||||||
private static final Logger logger = Logger.getLogger(MissingImageDialog.class.getName());
|
private static final Logger logger = Logger.getLogger(MissingImageDialog.class.getName());
|
||||||
long obj_id;
|
long obj_id;
|
||||||
SleuthkitCase db;
|
SleuthkitCase db;
|
||||||
|
@ -28,7 +28,7 @@ package org.sleuthkit.autopsy.casemodule;
|
|||||||
*
|
*
|
||||||
* @author dfickling
|
* @author dfickling
|
||||||
*/
|
*/
|
||||||
public class NewCaseVisualPanel2 extends javax.swing.JPanel {
|
class NewCaseVisualPanel2 extends javax.swing.JPanel {
|
||||||
|
|
||||||
/** Creates new form NewCaseVisualPanel2 */
|
/** Creates new form NewCaseVisualPanel2 */
|
||||||
public NewCaseVisualPanel2() {
|
public NewCaseVisualPanel2() {
|
||||||
|
@ -38,7 +38,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
|||||||
/**
|
/**
|
||||||
* Action to open the New Case wizard.
|
* Action to open the New Case wizard.
|
||||||
*/
|
*/
|
||||||
public final class NewCaseWizardAction extends CallableSystemAction {
|
final class NewCaseWizardAction extends CallableSystemAction {
|
||||||
|
|
||||||
private WizardDescriptor.Panel<WizardDescriptor>[] panels;
|
private WizardDescriptor.Panel<WizardDescriptor>[] panels;
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
|||||||
* The constructor is called when the autopsy is running.
|
* The constructor is called when the autopsy is running.
|
||||||
* All the method to create and modify the properties file are within this class
|
* All the method to create and modify the properties file are within this class
|
||||||
*/
|
*/
|
||||||
public final class RecentCases extends CallableSystemAction implements Presenter.Menu {
|
final class RecentCases extends CallableSystemAction implements Presenter.Menu {
|
||||||
|
|
||||||
static final int LENGTH = 5;
|
static final int LENGTH = 5;
|
||||||
static final String NAME_PROP_KEY = "LBL_RecentCase_Name";
|
static final String NAME_PROP_KEY = "LBL_RecentCase_Name";
|
||||||
|
@ -21,7 +21,7 @@ package org.sleuthkit.autopsy.casemodule;
|
|||||||
/**
|
/**
|
||||||
* Interface for startup window implementations
|
* Interface for startup window implementations
|
||||||
*/
|
*/
|
||||||
public interface StartupWindowInterface {
|
interface StartupWindowInterface {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shows and makes active the startup window
|
* Shows and makes active the startup window
|
||||||
|
@ -32,7 +32,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
|||||||
* is to implement StartupWindowInterface and register it with lookup as a ServiceProvider.
|
* is to implement StartupWindowInterface and register it with lookup as a ServiceProvider.
|
||||||
* The custom startup window is automatically chosen over the default one, given it is the only external module custom startup window.
|
* The custom startup window is automatically chosen over the default one, given it is the only external module custom startup window.
|
||||||
*/
|
*/
|
||||||
public class StartupWindowProvider implements StartupWindowInterface {
|
class StartupWindowProvider implements StartupWindowInterface {
|
||||||
|
|
||||||
private static volatile StartupWindowProvider instance;
|
private static volatile StartupWindowProvider instance;
|
||||||
private static final Logger logger = Logger.getLogger(StartupWindowProvider.class.getName());
|
private static final Logger logger = Logger.getLogger(StartupWindowProvider.class.getName());
|
||||||
|
@ -28,7 +28,7 @@ import org.openide.util.actions.SystemAction;
|
|||||||
/**
|
/**
|
||||||
* This class is used to change / update the list of recent cases dynamically.
|
* This class is used to change / update the list of recent cases dynamically.
|
||||||
*/
|
*/
|
||||||
public class UpdateRecentCases extends JMenuItem implements DynamicMenuContent {
|
class UpdateRecentCases extends JMenuItem implements DynamicMenuContent {
|
||||||
|
|
||||||
int length;
|
int length;
|
||||||
static boolean hasRecentCase = false;
|
static boolean hasRecentCase = false;
|
||||||
|
@ -45,7 +45,7 @@ import org.xml.sax.SAXException;
|
|||||||
*
|
*
|
||||||
* @author jantonius
|
* @author jantonius
|
||||||
*/
|
*/
|
||||||
public class XMLCaseManagement implements CaseConfigFileInterface {
|
class XMLCaseManagement implements CaseConfigFileInterface {
|
||||||
|
|
||||||
final static String XSDFILE = "CaseSchema.xsd";
|
final static String XSDFILE = "CaseSchema.xsd";
|
||||||
final static String TOP_ROOT_NAME = "AutopsyCase";
|
final static String TOP_ROOT_NAME = "AutopsyCase";
|
||||||
|
@ -36,7 +36,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
|||||||
* Additionally, the ExplorerManager.Provider interface is implemented to
|
* Additionally, the ExplorerManager.Provider interface is implemented to
|
||||||
* supply an ExplorerManager to derived classes and their child components.
|
* supply an ExplorerManager to derived classes and their child components.
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractDataResultViewer extends JPanel implements DataResultViewer, Provider {
|
abstract class AbstractDataResultViewer extends JPanel implements DataResultViewer, Provider {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(AbstractDataResultViewer.class.getName());
|
private static final Logger logger = Logger.getLogger(AbstractDataResultViewer.class.getName());
|
||||||
protected transient ExplorerManager em;
|
protected transient ExplorerManager em;
|
||||||
|
@ -15,7 +15,7 @@ import javax.swing.JPanel;
|
|||||||
* but the panel given to it. No additional buttons or features, except
|
* but the panel given to it. No additional buttons or features, except
|
||||||
* the default close operation, which is set to dispose.
|
* the default close operation, which is set to dispose.
|
||||||
*/
|
*/
|
||||||
public class AdvancedConfigurationCleanDialog extends javax.swing.JDialog {
|
public class AdvancedConfigurationCleanDialog extends javax.swing.JDialog {
|
||||||
|
|
||||||
/** Creates new form AdvancedConfigurationDialog */
|
/** Creates new form AdvancedConfigurationDialog */
|
||||||
public AdvancedConfigurationCleanDialog() {
|
public AdvancedConfigurationCleanDialog() {
|
||||||
|
@ -28,7 +28,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
|||||||
/**
|
/**
|
||||||
* Action to open custom implementation of the "About" window from the Help menu.
|
* Action to open custom implementation of the "About" window from the Help menu.
|
||||||
*/
|
*/
|
||||||
public class CustomAboutAction extends AboutAction {
|
class CustomAboutAction extends AboutAction {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void performAction() {
|
public void performAction() {
|
||||||
|
@ -27,7 +27,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class DataContentPanel extends javax.swing.JPanel implements DataContent, ChangeListener {
|
public class DataContentPanel extends javax.swing.JPanel implements DataContent, ChangeListener {
|
||||||
|
|
||||||
private static Logger logger = Logger.getLogger(DataContentPanel.class.getName());
|
private static Logger logger = Logger.getLogger(DataContentPanel.class.getName());
|
||||||
private final List<UpdateWrapper> viewers = new ArrayList<>();;
|
private final List<UpdateWrapper> viewers = new ArrayList<>();;
|
||||||
|
@ -55,7 +55,7 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer;
|
|||||||
// service provider when DataResultViewers can be made compatible with node
|
// service provider when DataResultViewers can be made compatible with node
|
||||||
// multiple selection actions.
|
// multiple selection actions.
|
||||||
//@ServiceProvider(service = DataResultViewer.class)
|
//@ServiceProvider(service = DataResultViewer.class)
|
||||||
public class DataResultViewerTable extends AbstractDataResultViewer {
|
class DataResultViewerTable extends AbstractDataResultViewer {
|
||||||
|
|
||||||
private String firstColumnLabel = "Name";
|
private String firstColumnLabel = "Name";
|
||||||
private Set<Property> propertiesAcc = new LinkedHashSet<>();
|
private Set<Property> propertiesAcc = new LinkedHashSet<>();
|
||||||
|
@ -57,7 +57,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
|||||||
// service provider when DataResultViewers can be made compatible with node
|
// service provider when DataResultViewers can be made compatible with node
|
||||||
// multi-selection actions.
|
// multi-selection actions.
|
||||||
//@ServiceProvider(service = DataResultViewer.class)
|
//@ServiceProvider(service = DataResultViewer.class)
|
||||||
public final class DataResultViewerThumbnail extends AbstractDataResultViewer {
|
final class DataResultViewerThumbnail extends AbstractDataResultViewer {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(DataResultViewerThumbnail.class.getName());
|
private static final Logger logger = Logger.getLogger(DataResultViewerThumbnail.class.getName());
|
||||||
//flag to keep track if images are being loaded
|
//flag to keep track if images are being loaded
|
||||||
|
@ -6,7 +6,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Interface used to capture frames from a video file.
|
* Interface used to capture frames from a video file.
|
||||||
*/
|
*/
|
||||||
public interface FrameCapture {
|
interface FrameCapture {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param file the video file to use
|
* @param file the video file to use
|
||||||
|
@ -44,7 +44,7 @@ import org.sleuthkit.datamodel.ReadContentInputStream;
|
|||||||
* Container for the image viewer part of media view, on a layered pane. To be
|
* Container for the image viewer part of media view, on a layered pane. To be
|
||||||
* used with JavaFx image viewer only.
|
* used with JavaFx image viewer only.
|
||||||
*/
|
*/
|
||||||
public class MediaViewImagePanel extends javax.swing.JPanel {
|
public class MediaViewImagePanel extends javax.swing.JPanel {
|
||||||
|
|
||||||
private JFXPanel fxPanel;
|
private JFXPanel fxPanel;
|
||||||
private ImageView fxImageView;
|
private ImageView fxImageView;
|
||||||
|
@ -43,7 +43,7 @@ import org.sleuthkit.datamodel.SleuthkitJNI;
|
|||||||
/**
|
/**
|
||||||
* Custom "About" window panel.
|
* Custom "About" window panel.
|
||||||
*/
|
*/
|
||||||
public class ProductInformationPanel extends JPanel implements HyperlinkListener {
|
class ProductInformationPanel extends JPanel implements HyperlinkListener {
|
||||||
|
|
||||||
private URL url = null;
|
private URL url = null;
|
||||||
private Icon about;
|
private Icon about;
|
||||||
|
@ -5,7 +5,7 @@ import java.awt.Image;
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class VideoFrame {
|
class VideoFrame {
|
||||||
|
|
||||||
private Image frame;
|
private Image frame;
|
||||||
private long timeMillis;
|
private long timeMillis;
|
||||||
|
@ -30,7 +30,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
|||||||
* Takes care of forking a process and reading output / error streams to either a
|
* Takes care of forking a process and reading output / error streams to either a
|
||||||
* string buffer or directly to a file writer
|
* string buffer or directly to a file writer
|
||||||
*/
|
*/
|
||||||
public final class ExecUtil {
|
public final class ExecUtil {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(ExecUtil.class.getName());
|
private static final Logger logger = Logger.getLogger(ExecUtil.class.getName());
|
||||||
private Process proc = null;
|
private Process proc = null;
|
||||||
|
@ -27,7 +27,7 @@ import org.openide.filesystems.FileObject;
|
|||||||
/**
|
/**
|
||||||
* File and dir utilities
|
* File and dir utilities
|
||||||
*/
|
*/
|
||||||
public class FileUtil {
|
public class FileUtil {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(FileUtil.class.getName());
|
private static final Logger logger = Logger.getLogger(FileUtil.class.getName());
|
||||||
|
|
||||||
|
@ -27,15 +27,19 @@ import java.awt.image.BufferedImage;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
|
import org.openide.util.Exceptions;
|
||||||
import org.sleuthkit.autopsy.casemodule.Case;
|
import org.sleuthkit.autopsy.casemodule.Case;
|
||||||
import org.sleuthkit.autopsy.contentviewers.Utilities;
|
|
||||||
import org.sleuthkit.autopsy.corelibs.ScalrWrapper;
|
import org.sleuthkit.autopsy.corelibs.ScalrWrapper;
|
||||||
import org.sleuthkit.datamodel.AbstractFile;
|
import org.sleuthkit.datamodel.AbstractFile;
|
||||||
|
import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||||
|
import org.sleuthkit.datamodel.BlackboardAttribute;
|
||||||
|
import org.sleuthkit.datamodel.BlackboardAttribute.ATTRIBUTE_TYPE;
|
||||||
import org.sleuthkit.datamodel.Content;
|
import org.sleuthkit.datamodel.Content;
|
||||||
import org.sleuthkit.datamodel.ReadContentInputStream;
|
import org.sleuthkit.datamodel.ReadContentInputStream;
|
||||||
import org.sleuthkit.datamodel.TskCoreException;
|
import org.sleuthkit.datamodel.TskCoreException;
|
||||||
@ -51,7 +55,7 @@ public class ImageUtils {
|
|||||||
private static final Logger logger = Logger.getLogger(ImageUtils.class.getName());
|
private static final Logger logger = Logger.getLogger(ImageUtils.class.getName());
|
||||||
private static final Image DEFAULT_ICON = new ImageIcon("/org/sleuthkit/autopsy/images/file-icon.png").getImage();
|
private static final Image DEFAULT_ICON = new ImageIcon("/org/sleuthkit/autopsy/images/file-icon.png").getImage();
|
||||||
private static final List<String> SUPP_EXTENSIONS = Arrays.asList(ImageIO.getReaderFileSuffixes());
|
private static final List<String> SUPP_EXTENSIONS = Arrays.asList(ImageIO.getReaderFileSuffixes());
|
||||||
|
private static final List<String> SUPP_MIME_TYPES = Arrays.asList(ImageIO.getReaderMIMETypes());
|
||||||
/**
|
/**
|
||||||
* Get the default Icon, which is the icon for a file.
|
* Get the default Icon, which is the icon for a file.
|
||||||
* @return
|
* @return
|
||||||
@ -72,19 +76,38 @@ public class ImageUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AbstractFile f = (AbstractFile) content;
|
AbstractFile f = (AbstractFile) content;
|
||||||
final String fName = f.getName();
|
if (f.getSize() == 0) {
|
||||||
final int dotIdx = fName.lastIndexOf('.');
|
return false;
|
||||||
if (dotIdx == -1 || dotIdx == (fName.length() - 1)) {
|
|
||||||
return isJpegFileHeader(f);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final String ext = fName.substring(dotIdx + 1).toLowerCase();
|
// check the blackboard for a file type attribute
|
||||||
|
try {
|
||||||
|
ArrayList <BlackboardAttribute> attributes = f.getGenInfoAttributes(ATTRIBUTE_TYPE.TSK_FILE_TYPE_SIG);
|
||||||
|
for (BlackboardAttribute attribute : attributes) {
|
||||||
|
if (SUPP_MIME_TYPES.contains(attribute.getValueString())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (TskCoreException ex) {
|
||||||
|
logger.log(Level.WARNING, "Error while getting file signature from blackboard.", ex);
|
||||||
|
}
|
||||||
|
|
||||||
// Note: thumbnail generator only supports JPG, GIF, and PNG for now
|
final String extension = f.getNameExtension();
|
||||||
return (f.getSize() > 0
|
|
||||||
&& SUPP_EXTENSIONS.contains(ext));
|
// if we have an extension, check it
|
||||||
|
if (extension.equals("") == false) {
|
||||||
|
// Note: thumbnail generator only supports JPG, GIF, and PNG for now
|
||||||
|
if (SUPP_EXTENSIONS.contains(extension)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// if no extension or one that is not for an image, then read the content
|
||||||
|
return isJpegFileHeader(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get an icon of a specified size.
|
* Get an icon of a specified size.
|
||||||
*
|
*
|
||||||
|
@ -31,7 +31,7 @@ import org.sleuthkit.autopsy.coreutils.LnkEnums.NetworkProviderType;
|
|||||||
*
|
*
|
||||||
* @author dick
|
* @author dick
|
||||||
*/
|
*/
|
||||||
public class JLNK {
|
public class JLNK {
|
||||||
private int header;
|
private int header;
|
||||||
private byte[] linkClassIdentifier;
|
private byte[] linkClassIdentifier;
|
||||||
private List<LinkFlags> linkFlags;
|
private List<LinkFlags> linkFlags;
|
||||||
|
@ -38,7 +38,7 @@ import org.sleuthkit.autopsy.coreutils.LnkEnums.NetworkProviderType;
|
|||||||
* http://msdn.microsoft.com/en-us/library/windows/desktop/cc144090(v=vs.85).aspx#unknown_74413
|
* http://msdn.microsoft.com/en-us/library/windows/desktop/cc144090(v=vs.85).aspx#unknown_74413
|
||||||
* http://blog.0x01000000.org/2010/08/10/lnk-parsing-youre-doing-it-wrong-i/
|
* http://blog.0x01000000.org/2010/08/10/lnk-parsing-youre-doing-it-wrong-i/
|
||||||
*/
|
*/
|
||||||
public class JLnkParser {
|
public class JLnkParser {
|
||||||
|
|
||||||
private byte[] content;
|
private byte[] content;
|
||||||
private static final Logger logger = Logger.getLogger(JLnkParser.class.getName());
|
private static final Logger logger = Logger.getLogger(JLnkParser.class.getName());
|
||||||
|
@ -22,7 +22,7 @@ package org.sleuthkit.autopsy.coreutils;
|
|||||||
*
|
*
|
||||||
* @author jwallace
|
* @author jwallace
|
||||||
*/
|
*/
|
||||||
public class JLnkParserException extends Exception {
|
public class JLnkParserException extends Exception {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs an instance of
|
* Constructs an instance of
|
||||||
|
@ -22,7 +22,7 @@ package org.sleuthkit.autopsy.coreutils;
|
|||||||
*
|
*
|
||||||
* @author dick
|
* @author dick
|
||||||
*/
|
*/
|
||||||
public class LnkEnums {
|
class LnkEnums {
|
||||||
|
|
||||||
private static final byte[] CDRIVES = new byte[] { (byte)0xe0, 0x4f, (byte)0xd0, 0x20,
|
private static final byte[] CDRIVES = new byte[] { (byte)0xe0, 0x4f, (byte)0xd0, 0x20,
|
||||||
(byte)0xea, 0x3a, 0x69, 0x10, (byte)0xa2, (byte)0xd8, 0x08, 0x00, 0x2b, 0x30, 0x30, (byte)0x9d };
|
(byte)0xea, 0x3a, 0x69, 0x10, (byte)0xa2, (byte)0xd8, 0x08, 0x00, 0x2b, 0x30, 0x30, (byte)0x9d };
|
||||||
|
@ -28,7 +28,7 @@ import java.util.logging.Level;
|
|||||||
/*
|
/*
|
||||||
* Toolbar button for testing logging. Not a normal part of application.
|
* Toolbar button for testing logging. Not a normal part of application.
|
||||||
*/
|
*/
|
||||||
public final class TestLogger implements ActionListener {
|
final class TestLogger implements ActionListener {
|
||||||
|
|
||||||
static final Logger logger = Logger.getLogger(TestLogger.class.getName());
|
static final Logger logger = Logger.getLogger(TestLogger.class.getName());
|
||||||
Formatter fmt;
|
Formatter fmt;
|
||||||
|
@ -23,7 +23,7 @@ import java.awt.ComponentOrientation;
|
|||||||
/**
|
/**
|
||||||
* Text utilities
|
* Text utilities
|
||||||
*/
|
*/
|
||||||
public class TextUtil {
|
public class TextUtil {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine and return text orientation
|
* Determine and return text orientation
|
||||||
|
@ -30,7 +30,7 @@ import java.util.logging.LogRecord;
|
|||||||
* Formatter to wrap another formatter and prepend a timestampe to each formatted string
|
* Formatter to wrap another formatter and prepend a timestampe to each formatted string
|
||||||
* Not currently used.
|
* Not currently used.
|
||||||
*/
|
*/
|
||||||
public class TimestampingFormatter extends Formatter {
|
class TimestampingFormatter extends Formatter {
|
||||||
|
|
||||||
Formatter original;
|
Formatter original;
|
||||||
DateFormat timestampFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.US);
|
DateFormat timestampFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.US);
|
||||||
|
@ -22,7 +22,7 @@ package org.sleuthkit.autopsy.datamodel;
|
|||||||
*
|
*
|
||||||
* @author dfickling
|
* @author dfickling
|
||||||
*/
|
*/
|
||||||
public interface AutopsyItemVisitor<T> {
|
interface AutopsyItemVisitor<T> {
|
||||||
|
|
||||||
T visit(ExtractedContent ec);
|
T visit(ExtractedContent ec);
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ package org.sleuthkit.autopsy.datamodel;
|
|||||||
/**
|
/**
|
||||||
* Abstraction for certain top level items displayed in the GUI
|
* Abstraction for certain top level items displayed in the GUI
|
||||||
*/
|
*/
|
||||||
public interface AutopsyVisitableItem {
|
interface AutopsyVisitableItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* visitor pattern support
|
* visitor pattern support
|
||||||
|
@ -38,7 +38,7 @@ import org.sleuthkit.datamodel.VolumeSystem;
|
|||||||
* past subclasses that aren't part of the exposed hierarchy (VolumeSystem,
|
* past subclasses that aren't part of the exposed hierarchy (VolumeSystem,
|
||||||
* FileSystem, and root Directories)
|
* FileSystem, and root Directories)
|
||||||
*/
|
*/
|
||||||
public class ContentHierarchyVisitor extends ContentVisitor.Default<List<? extends Content>> {
|
class ContentHierarchyVisitor extends ContentVisitor.Default<List<? extends Content>> {
|
||||||
private static final Logger logger = Logger.getLogger(ContentHierarchyVisitor.class.getName());
|
private static final Logger logger = Logger.getLogger(ContentHierarchyVisitor.class.getName());
|
||||||
private static final ContentHierarchyVisitor INSTANCE = new ContentHierarchyVisitor();
|
private static final ContentHierarchyVisitor INSTANCE = new ContentHierarchyVisitor();
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ import org.sleuthkit.datamodel.VolumeSystem;
|
|||||||
* past subclasses that aren't part of the exposed hierarchy (VolumeSystem,
|
* past subclasses that aren't part of the exposed hierarchy (VolumeSystem,
|
||||||
* FileSystem, and root Directories)
|
* FileSystem, and root Directories)
|
||||||
*/
|
*/
|
||||||
public class ContentIdHierarchyVisitor extends ContentVisitor.Default<List<? extends Long>> {
|
class ContentIdHierarchyVisitor extends ContentVisitor.Default<List<? extends Long>> {
|
||||||
private static final Logger logger = Logger.getLogger(ContentHierarchyVisitor.class.getName());
|
private static final Logger logger = Logger.getLogger(ContentHierarchyVisitor.class.getName());
|
||||||
private static final ContentIdHierarchyVisitor INSTANCE = new ContentIdHierarchyVisitor();
|
private static final ContentIdHierarchyVisitor INSTANCE = new ContentIdHierarchyVisitor();
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ import org.openide.util.Lookup;
|
|||||||
* Provides basic information such as ID, parent ID, etc.
|
* Provides basic information such as ID, parent ID, etc.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public abstract class ContentNode extends DisplayableItemNode{
|
abstract class ContentNode extends DisplayableItemNode{
|
||||||
|
|
||||||
public ContentNode(Children children) {
|
public ContentNode(Children children) {
|
||||||
super(children);
|
super(children);
|
||||||
|
@ -22,7 +22,7 @@ package org.sleuthkit.autopsy.datamodel;
|
|||||||
* Interface for visitor pattern on ContentNodes
|
* Interface for visitor pattern on ContentNodes
|
||||||
* @param <T> visit method return type
|
* @param <T> visit method return type
|
||||||
*/
|
*/
|
||||||
public interface ContentNodeVisitor<T> {
|
interface ContentNodeVisitor<T> {
|
||||||
|
|
||||||
T visit(DirectoryNode dn);
|
T visit(DirectoryNode dn);
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
|||||||
* consisting of content and blackboard artifact tags, grouped first by tag
|
* consisting of content and blackboard artifact tags, grouped first by tag
|
||||||
* type, then by tag name.
|
* type, then by tag name.
|
||||||
*/
|
*/
|
||||||
public class ContentTagNode extends DisplayableItemNode {
|
class ContentTagNode extends DisplayableItemNode {
|
||||||
private static final String ICON_PATH = "org/sleuthkit/autopsy/images/blue-tag-icon-16.png";
|
private static final String ICON_PATH = "org/sleuthkit/autopsy/images/blue-tag-icon-16.png";
|
||||||
private final ContentTag tag;
|
private final ContentTag tag;
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ import org.sleuthkit.datamodel.SleuthkitCase;
|
|||||||
* Parent of the "extracted content" artifacts to be displayed in the tree. Other
|
* Parent of the "extracted content" artifacts to be displayed in the tree. Other
|
||||||
* artifacts are displayed under other more specific parents.
|
* artifacts are displayed under other more specific parents.
|
||||||
*/
|
*/
|
||||||
public class ExtractedContent implements AutopsyVisitableItem{
|
class ExtractedContent implements AutopsyVisitableItem{
|
||||||
|
|
||||||
SleuthkitCase skCase;
|
SleuthkitCase skCase;
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
|||||||
* has all of the blackboard artifacts that are not displayed in a more specific form elsewhere
|
* has all of the blackboard artifacts that are not displayed in a more specific form elsewhere
|
||||||
* in the tree.
|
* in the tree.
|
||||||
*/
|
*/
|
||||||
public class ExtractedContentChildren extends ChildFactory<BlackboardArtifact.ARTIFACT_TYPE> {
|
class ExtractedContentChildren extends ChildFactory<BlackboardArtifact.ARTIFACT_TYPE> {
|
||||||
private SleuthkitCase skCase;
|
private SleuthkitCase skCase;
|
||||||
private final ArrayList<BlackboardArtifact.ARTIFACT_TYPE> doNotShow;
|
private final ArrayList<BlackboardArtifact.ARTIFACT_TYPE> doNotShow;
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ import org.sleuthkit.datamodel.SleuthkitCase;
|
|||||||
/**
|
/**
|
||||||
* Filters database results by file extension.
|
* Filters database results by file extension.
|
||||||
*/
|
*/
|
||||||
public class FileTypeExtensionFilters implements AutopsyVisitableItem {
|
class FileTypeExtensionFilters implements AutopsyVisitableItem {
|
||||||
|
|
||||||
private SleuthkitCase skCase;
|
private SleuthkitCase skCase;
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ import java.util.List;
|
|||||||
* Contains Lists of commonly known and used file type extensions
|
* Contains Lists of commonly known and used file type extensions
|
||||||
* and 'getters' to obtain them.
|
* and 'getters' to obtain them.
|
||||||
*/
|
*/
|
||||||
public class FileTypeExtensions {
|
class FileTypeExtensions {
|
||||||
private final static List<String> IMAGE_EXTENSIONS = Arrays.asList(".jpg", ".jpeg", ".png", ".psd", ".nef", ".tiff", ".bmp");
|
private final static List<String> IMAGE_EXTENSIONS = Arrays.asList(".jpg", ".jpeg", ".png", ".psd", ".nef", ".tiff", ".bmp");
|
||||||
private final static List<String> VIDEO_EXTENSIONS = Arrays.asList(".aaf", ".3gp", ".asf", ".avi", ".m1v", ".m2v",
|
private final static List<String> VIDEO_EXTENSIONS = Arrays.asList(".aaf", ".3gp", ".asf", ".avi", ".m1v", ".m2v",
|
||||||
".m4v", ".mp4", ".mov", ".mpeg", ".mpg", ".mpe", ".mp4", ".rm", ".wmv", ".mpv", ".flv", ".swf");
|
".m4v", ".mp4", ".mov", ".mpeg", ".mpg", ".mpe", ".mp4", ".rm", ".wmv", ".mpv", ".flv", ".swf");
|
||||||
|
@ -24,7 +24,7 @@ import org.openide.nodes.Node;
|
|||||||
/**
|
/**
|
||||||
* AbstractFile filter node that filters out the children
|
* AbstractFile filter node that filters out the children
|
||||||
*/
|
*/
|
||||||
public class FilterNodeLeaf extends FilterNode {
|
public class FilterNodeLeaf extends FilterNode {
|
||||||
|
|
||||||
public FilterNodeLeaf(Node node) {
|
public FilterNodeLeaf(Node node) {
|
||||||
super(node, Children.LEAF);
|
super(node, Children.LEAF);
|
||||||
|
@ -29,6 +29,6 @@ import org.sleuthkit.datamodel.Content;
|
|||||||
* @param isRegex whether the original query was a regex query
|
* @param isRegex whether the original query was a regex query
|
||||||
* @param originalQuery (regex or literal) that may need to be performed again to get all ContentHit results
|
* @param originalQuery (regex or literal) that may need to be performed again to get all ContentHit results
|
||||||
*/
|
*/
|
||||||
public interface HighlightLookup {
|
public interface HighlightLookup {
|
||||||
public HighlightLookup createInstance(Content c, String keywordHitQuery, boolean isRegex, String originalQuery);
|
public HighlightLookup createInstance(Content c, String keywordHitQuery, boolean isRegex, String originalQuery);
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ import org.sleuthkit.datamodel.AbstractFile;
|
|||||||
*
|
*
|
||||||
* @author alawrence
|
* @author alawrence
|
||||||
*/
|
*/
|
||||||
public class KeyValueNode extends AbstractNode {
|
public class KeyValueNode extends AbstractNode {
|
||||||
|
|
||||||
private KeyValue data;
|
private KeyValue data;
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ import org.sleuthkit.datamodel.SleuthkitCase;
|
|||||||
/**
|
/**
|
||||||
* Recent files node support
|
* Recent files node support
|
||||||
*/
|
*/
|
||||||
public class RecentFiles implements AutopsyVisitableItem {
|
class RecentFiles implements AutopsyVisitableItem {
|
||||||
|
|
||||||
SleuthkitCase skCase;
|
SleuthkitCase skCase;
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ import org.sleuthkit.datamodel.SleuthkitCase;
|
|||||||
*
|
*
|
||||||
* @author dfickling
|
* @author dfickling
|
||||||
*/
|
*/
|
||||||
public class RecentFilesChildren extends ChildFactory<RecentFiles.RecentFilesFilter> {
|
class RecentFilesChildren extends ChildFactory<RecentFiles.RecentFilesFilter> {
|
||||||
|
|
||||||
private SleuthkitCase skCase;
|
private SleuthkitCase skCase;
|
||||||
private Calendar lastDay;
|
private Calendar lastDay;
|
||||||
|
@ -42,7 +42,7 @@ import org.sleuthkit.datamodel.TskData;
|
|||||||
*
|
*
|
||||||
* @author dfickling
|
* @author dfickling
|
||||||
*/
|
*/
|
||||||
public class RecentFilesFilterChildren extends ChildFactory<Content> {
|
class RecentFilesFilterChildren extends ChildFactory<Content> {
|
||||||
|
|
||||||
private SleuthkitCase skCase;
|
private SleuthkitCase skCase;
|
||||||
private RecentFilesFilter filter;
|
private RecentFilesFilter filter;
|
||||||
|
@ -36,7 +36,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
|||||||
* content and blackboard artifact tags, grouped first by tag type, then by
|
* content and blackboard artifact tags, grouped first by tag type, then by
|
||||||
* tag name.
|
* tag name.
|
||||||
*/
|
*/
|
||||||
public class TagsNode extends DisplayableItemNode {
|
class TagsNode extends DisplayableItemNode {
|
||||||
private static final String DISPLAY_NAME = "Tags";
|
private static final String DISPLAY_NAME = "Tags";
|
||||||
private static final String ICON_PATH = "org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png";
|
private static final String ICON_PATH = "org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png";
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ package org.sleuthkit.autopsy.datamodel;
|
|||||||
* RootContentChildren class. RootContentChildren is a NetBeans child node
|
* RootContentChildren class. RootContentChildren is a NetBeans child node
|
||||||
* factory built on top of the NetBeans Children.Keys class.
|
* factory built on top of the NetBeans Children.Keys class.
|
||||||
*/
|
*/
|
||||||
public class TagsNodeKey implements AutopsyVisitableItem {
|
class TagsNodeKey implements AutopsyVisitableItem {
|
||||||
// Creation of a TagsNode object corresponding to a TagsNodeKey object is done
|
// Creation of a TagsNode object corresponding to a TagsNodeKey object is done
|
||||||
// by a CreateAutopsyNodeVisitor dispatched from the AbstractContentChildren
|
// by a CreateAutopsyNodeVisitor dispatched from the AbstractContentChildren
|
||||||
// override of Children.Keys<T>.createNodes().
|
// override of Children.Keys<T>.createNodes().
|
||||||
|
@ -34,7 +34,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
|||||||
*
|
*
|
||||||
* @author jantonius
|
* @author jantonius
|
||||||
*/
|
*/
|
||||||
public class ChangeViewAction extends AbstractAction implements Presenter.Popup {
|
class ChangeViewAction extends AbstractAction implements Presenter.Popup {
|
||||||
|
|
||||||
private int type; // type 1 = hex view, 2 = string view
|
private int type; // type 1 = hex view, 2 = string view
|
||||||
private Node node;
|
private Node node;
|
||||||
|
@ -27,7 +27,7 @@ import org.openide.nodes.Node;
|
|||||||
* DataResultFilterNode that created in the DataResultFilterNode.java.
|
* DataResultFilterNode that created in the DataResultFilterNode.java.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class DataResultFilterChildren extends FilterNode.Children {
|
class DataResultFilterChildren extends FilterNode.Children {
|
||||||
|
|
||||||
ExplorerManager sourceEm;
|
ExplorerManager sourceEm;
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ import org.sleuthkit.datamodel.VolumeSystem;
|
|||||||
/**
|
/**
|
||||||
* Extracts all the unallocated space as a single file
|
* Extracts all the unallocated space as a single file
|
||||||
*/
|
*/
|
||||||
public final class ExtractUnallocAction extends AbstractAction {
|
final class ExtractUnallocAction extends AbstractAction {
|
||||||
|
|
||||||
private final List<UnallocStruct> LstUnallocs = new ArrayList<UnallocStruct>();
|
private final List<UnallocStruct> LstUnallocs = new ArrayList<UnallocStruct>();
|
||||||
private static final List<String> lockedVols = new ArrayList<String>();
|
private static final List<String> lockedVols = new ArrayList<String>();
|
||||||
|
@ -25,7 +25,7 @@ import java.awt.event.ActionListener;
|
|||||||
*
|
*
|
||||||
* @author jantonius
|
* @author jantonius
|
||||||
*/
|
*/
|
||||||
class FileSystemDetailsPanel extends javax.swing.JPanel {
|
class FileSystemDetailsPanel extends javax.swing.JPanel {
|
||||||
|
|
||||||
/** Creates new form FileSystemDetailsPanel */
|
/** Creates new form FileSystemDetailsPanel */
|
||||||
FileSystemDetailsPanel() {
|
FileSystemDetailsPanel() {
|
||||||
|
@ -23,6 +23,6 @@ import org.openide.nodes.Node;
|
|||||||
/**
|
/**
|
||||||
* Lookup interface for hash search (to deal with circular deps)
|
* Lookup interface for hash search (to deal with circular deps)
|
||||||
*/
|
*/
|
||||||
public interface HashSearchProvider {
|
public interface HashSearchProvider {
|
||||||
public void search(Node contentNode);
|
public void search(Node contentNode);
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ import org.sleuthkit.datamodel.SleuthkitCase;
|
|||||||
* @deprecated do not use, it is here in case we ever pick up on this work
|
* @deprecated do not use, it is here in case we ever pick up on this work
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public class ResultDeleteAction extends AbstractAction {
|
class ResultDeleteAction extends AbstractAction {
|
||||||
|
|
||||||
private enum ActionType {
|
private enum ActionType {
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
|||||||
* it is compiled each time to ensure that it is compliant with the API.
|
* it is compiled each time to ensure that it is compliant with the API.
|
||||||
*/
|
*/
|
||||||
// @ServiceProvider(service = DataContentViewer.class)
|
// @ServiceProvider(service = DataContentViewer.class)
|
||||||
public class SampleContentViewer extends javax.swing.JPanel implements DataContentViewer {
|
class SampleContentViewer extends javax.swing.JPanel implements DataContentViewer {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates new form SampleContentViewer
|
* Creates new form SampleContentViewer
|
||||||
|
@ -50,7 +50,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
|||||||
* Sample DataSource-level ingest module that doesn't do much at all.
|
* Sample DataSource-level ingest module that doesn't do much at all.
|
||||||
* Just exists to show basic idea of these modules
|
* Just exists to show basic idea of these modules
|
||||||
*/
|
*/
|
||||||
public class SampleDataSourceIngestModule extends org.sleuthkit.autopsy.ingest.IngestModuleDataSource {
|
class SampleDataSourceIngestModule extends org.sleuthkit.autopsy.ingest.IngestModuleDataSource {
|
||||||
|
|
||||||
/* Data Source modules operate on a disk or set of logical files. They
|
/* Data Source modules operate on a disk or set of logical files. They
|
||||||
* are passed in teh data source refernce and query it for things they want.
|
* are passed in teh data source refernce and query it for things they want.
|
||||||
|
@ -53,7 +53,7 @@ import org.sleuthkit.datamodel.TskData;
|
|||||||
* IngestModuleLoader will not load things from the org.sleuthkit.autopsy.examples package.
|
* IngestModuleLoader will not load things from the org.sleuthkit.autopsy.examples package.
|
||||||
* Either change the package or the loading code to make this module actually run.
|
* Either change the package or the loading code to make this module actually run.
|
||||||
*/
|
*/
|
||||||
public class SampleFileIngestModule extends org.sleuthkit.autopsy.ingest.IngestModuleAbstractFile {
|
class SampleFileIngestModule extends org.sleuthkit.autopsy.ingest.IngestModuleAbstractFile {
|
||||||
private int attrId = -1;
|
private int attrId = -1;
|
||||||
private static SampleFileIngestModule defaultInstance = null;
|
private static SampleFileIngestModule defaultInstance = null;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ import org.openide.util.actions.CallableSystemAction;
|
|||||||
import org.sleuthkit.autopsy.casemodule.Case;
|
import org.sleuthkit.autopsy.casemodule.Case;
|
||||||
import org.sleuthkit.autopsy.directorytree.FileSearchProvider;
|
import org.sleuthkit.autopsy.directorytree.FileSearchProvider;
|
||||||
|
|
||||||
public final class FileSearchAction extends CallableSystemAction implements FileSearchProvider{
|
final class FileSearchAction extends CallableSystemAction implements FileSearchProvider{
|
||||||
|
|
||||||
private static FileSearchAction instance = null;
|
private static FileSearchAction instance = null;
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ import javax.swing.JFrame;
|
|||||||
/**
|
/**
|
||||||
* File search dialog
|
* File search dialog
|
||||||
*/
|
*/
|
||||||
public class FileSearchDialog extends javax.swing.JDialog {
|
class FileSearchDialog extends javax.swing.JDialog {
|
||||||
|
|
||||||
/** Creates new form FileSearchDialog */
|
/** Creates new form FileSearchDialog */
|
||||||
public FileSearchDialog() {
|
public FileSearchDialog() {
|
||||||
|
@ -56,7 +56,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
|||||||
/**
|
/**
|
||||||
* FileSearchPanel that present search options
|
* FileSearchPanel that present search options
|
||||||
*/
|
*/
|
||||||
public class FileSearchPanel extends javax.swing.JPanel {
|
class FileSearchPanel extends javax.swing.JPanel {
|
||||||
|
|
||||||
private List<FilterArea> filterAreas = new ArrayList<FilterArea>();
|
private List<FilterArea> filterAreas = new ArrayList<FilterArea>();
|
||||||
private JButton searchButton;
|
private JButton searchButton;
|
||||||
|
@ -197,7 +197,7 @@ public class GeneralIngestConfigurator implements IngestConfigurator {
|
|||||||
|
|
||||||
if (!modulesToStart.isEmpty() && contentToIngest != null) {
|
if (!modulesToStart.isEmpty() && contentToIngest != null) {
|
||||||
// Queue the ingest process.
|
// Queue the ingest process.
|
||||||
manager.execute(modulesToStart, contentToIngest);
|
manager.scheduleDataSource(modulesToStart, contentToIngest);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ import org.sleuthkit.datamodel.LayoutFile;
|
|||||||
* Abstract visitor for getting all the files from content
|
* Abstract visitor for getting all the files from content
|
||||||
* TODO should be moved to utility module (needs resolve cyclic deps)
|
* TODO should be moved to utility module (needs resolve cyclic deps)
|
||||||
*/
|
*/
|
||||||
public abstract class GetFilesContentVisitor implements ContentVisitor<Collection<AbstractFile>> {
|
abstract class GetFilesContentVisitor implements ContentVisitor<Collection<AbstractFile>> {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(GetFilesContentVisitor.class.getName());
|
private static final Logger logger = Logger.getLogger(GetFilesContentVisitor.class.getName());
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ import org.sleuthkit.datamodel.Content;
|
|||||||
* Worker thread that runs a data source-level ingest module (image, file set virt dir, etc).
|
* Worker thread that runs a data source-level ingest module (image, file set virt dir, etc).
|
||||||
* Used to process only a single data-source and single module.
|
* Used to process only a single data-source and single module.
|
||||||
*/
|
*/
|
||||||
public class IngestDataSourceThread extends SwingWorker<Void, Void> {
|
class IngestDataSourceThread extends SwingWorker<Void, Void> {
|
||||||
|
|
||||||
private final Logger logger = Logger.getLogger(IngestDataSourceThread.class.getName());
|
private final Logger logger = Logger.getLogger(IngestDataSourceThread.class.getName());
|
||||||
private ProgressHandle progress;
|
private ProgressHandle progress;
|
||||||
|
@ -40,7 +40,7 @@ import org.sleuthkit.autopsy.coreutils.ModuleSettings;
|
|||||||
/**
|
/**
|
||||||
* main configuration panel for all ingest modules, reusable JPanel component
|
* main configuration panel for all ingest modules, reusable JPanel component
|
||||||
*/
|
*/
|
||||||
public class IngestDialogPanel extends javax.swing.JPanel {
|
class IngestDialogPanel extends javax.swing.JPanel {
|
||||||
|
|
||||||
private IngestModuleAbstract currentModule;
|
private IngestModuleAbstract currentModule;
|
||||||
private ModulesTableModel tableModel;
|
private ModulesTableModel tableModel;
|
||||||
|
@ -277,13 +277,13 @@ public class IngestManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Multiple data-sources version of execute() method. Enqueues multiple sources inputs (Content objects)
|
* Multiple data-sources version of scheduleDataSource() method. Enqueues multiple sources inputs (Content objects)
|
||||||
* and associated modules at once
|
* and associated modules at once
|
||||||
*
|
*
|
||||||
* @param modules modules to execute on every data source
|
* @param modules modules to scheduleDataSource on every data source
|
||||||
* @param inputs input data sources to enqueue and execute the ingest modules on
|
* @param inputs input data sources to enqueue and scheduleDataSource the ingest modules on
|
||||||
*/
|
*/
|
||||||
public void execute(final List<IngestModuleAbstract> modules, final List<Content> inputs) {
|
public void scheduleDataSource(final List<IngestModuleAbstract> modules, final List<Content> inputs) {
|
||||||
logger.log(Level.INFO, "Will enqueue number of inputs: " + inputs.size()
|
logger.log(Level.INFO, "Will enqueue number of inputs: " + inputs.size()
|
||||||
+ " to " + modules.size() + " modules.");
|
+ " to " + modules.size() + " modules.");
|
||||||
|
|
||||||
@ -310,14 +310,14 @@ public class IngestManager {
|
|||||||
* not block and can be called multiple times to enqueue more work to
|
* not block and can be called multiple times to enqueue more work to
|
||||||
* already running background ingest process.
|
* already running background ingest process.
|
||||||
*
|
*
|
||||||
* @param modules modules to execute on the data source input
|
* @param modules modules to scheduleDataSource on the data source input
|
||||||
* @param input input data source Content objects to execute the ingest modules on
|
* @param input input data source Content objects to scheduleDataSource the ingest modules on
|
||||||
*/
|
*/
|
||||||
public void execute(final List<IngestModuleAbstract> modules, final Content input) {
|
public void scheduleDataSource(final List<IngestModuleAbstract> modules, final Content input) {
|
||||||
List<Content> inputs = new ArrayList<Content>();
|
List<Content> inputs = new ArrayList<Content>();
|
||||||
inputs.add(input);
|
inputs.add(input);
|
||||||
logger.log(Level.INFO, "Will enqueue input: " + input.getName());
|
logger.log(Level.INFO, "Will enqueue input: " + input.getName());
|
||||||
execute(modules, inputs);
|
scheduleDataSource(modules, inputs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -25,7 +25,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
|||||||
* the main layered pane container for messages table (IngestMessagePanel) and
|
* the main layered pane container for messages table (IngestMessagePanel) and
|
||||||
* details view (IngestMessageDetailsPanel)
|
* details view (IngestMessageDetailsPanel)
|
||||||
*/
|
*/
|
||||||
public class IngestMessageMainPanel extends javax.swing.JPanel {
|
class IngestMessageMainPanel extends javax.swing.JPanel {
|
||||||
|
|
||||||
private IngestMessagePanel messagePanel;
|
private IngestMessagePanel messagePanel;
|
||||||
private IngestMessageDetailsPanel detailsPanel;
|
private IngestMessageDetailsPanel detailsPanel;
|
||||||
|
@ -44,7 +44,7 @@ import org.sleuthkit.datamodel.Content;
|
|||||||
/**
|
/**
|
||||||
* Top component which displays something.
|
* Top component which displays something.
|
||||||
*/
|
*/
|
||||||
public final class IngestMessageTopComponent extends TopComponent implements IngestUI {
|
final class IngestMessageTopComponent extends TopComponent implements IngestUI {
|
||||||
|
|
||||||
private static IngestMessageTopComponent instance;
|
private static IngestMessageTopComponent instance;
|
||||||
private static final Logger logger = Logger.getLogger(IngestMessageTopComponent.class.getName());
|
private static final Logger logger = Logger.getLogger(IngestMessageTopComponent.class.getName());
|
||||||
|
@ -31,7 +31,7 @@ import org.openide.util.actions.Presenter;
|
|||||||
// @ActionReference(path = "Toolbars/File", position = 575)
|
// @ActionReference(path = "Toolbars/File", position = 575)
|
||||||
//})
|
//})
|
||||||
//@Messages("CTL_IngestMessagesAction=Messages")
|
//@Messages("CTL_IngestMessagesAction=Messages")
|
||||||
public final class IngestMessagesAction extends AbstractAction implements Presenter.Toolbar {
|
final class IngestMessagesAction extends AbstractAction implements Presenter.Toolbar {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
@ -34,7 +34,7 @@ import org.sleuthkit.autopsy.casemodule.Case;
|
|||||||
* Toolbar for Ingest
|
* Toolbar for Ingest
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class IngestMessagesToolbar extends javax.swing.JPanel {
|
class IngestMessagesToolbar extends javax.swing.JPanel {
|
||||||
|
|
||||||
private IngestMessagesButton ingestMessagesButton = new IngestMessagesButton();
|
private IngestMessagesButton ingestMessagesButton = new IngestMessagesButton();
|
||||||
private static volatile IngestMessagesToolbar instance;
|
private static volatile IngestMessagesToolbar instance;
|
||||||
|
@ -23,7 +23,7 @@ package org.sleuthkit.autopsy.ingest;
|
|||||||
/**
|
/**
|
||||||
* Base interface for ingest modules
|
* Base interface for ingest modules
|
||||||
*/
|
*/
|
||||||
public abstract class IngestModuleAbstract {
|
abstract class IngestModuleAbstract {
|
||||||
|
|
||||||
private String args;
|
private String args;
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ import org.w3c.dom.NodeList;
|
|||||||
* NOTE: this will be part of future IngestPipelineManager with IngestManager
|
* NOTE: this will be part of future IngestPipelineManager with IngestManager
|
||||||
* code refactored
|
* code refactored
|
||||||
*/
|
*/
|
||||||
public final class IngestModuleLoader {
|
final class IngestModuleLoader {
|
||||||
|
|
||||||
private static final String PIPELINE_CONFIG_XML = "pipeline_config.xml";
|
private static final String PIPELINE_CONFIG_XML = "pipeline_config.xml";
|
||||||
private static final String XSDFILE = "PipelineConfigSchema.xsd";
|
private static final String XSDFILE = "PipelineConfigSchema.xsd";
|
||||||
|
@ -36,7 +36,7 @@ import org.sleuthkit.autopsy.coreutils.PlatformUtil;
|
|||||||
/**
|
/**
|
||||||
* Monitor health of the system and stop ingest if necessary
|
* Monitor health of the system and stop ingest if necessary
|
||||||
*/
|
*/
|
||||||
public class IngestMonitor {
|
public class IngestMonitor {
|
||||||
|
|
||||||
private static final int INITIAL_INTERVAL_MS = 60000; //1 min.
|
private static final int INITIAL_INTERVAL_MS = 60000; //1 min.
|
||||||
private final Logger logger = Logger.getLogger(IngestMonitor.class.getName());
|
private final Logger logger = Logger.getLogger(IngestMonitor.class.getName());
|
||||||
|
@ -24,7 +24,7 @@ import org.sleuthkit.datamodel.Content;
|
|||||||
/**
|
/**
|
||||||
* UI support for ingest
|
* UI support for ingest
|
||||||
*/
|
*/
|
||||||
public interface IngestUI {
|
interface IngestUI {
|
||||||
void displayMessage(final IngestMessage message);
|
void displayMessage(final IngestMessage message);
|
||||||
int getMessagesCount();
|
int getMessagesCount();
|
||||||
void clearMessages();
|
void clearMessages();
|
||||||
|
@ -34,7 +34,7 @@ import org.sleuthkit.autopsy.corecomponents.DataContentTopComponent;
|
|||||||
*
|
*
|
||||||
* @author jantonius
|
* @author jantonius
|
||||||
*/
|
*/
|
||||||
public class DataContentDynamicMenu extends JMenuItem implements DynamicMenuContent {
|
class DataContentDynamicMenu extends JMenuItem implements DynamicMenuContent {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JComponent[] getMenuPresenters() {
|
public JComponent[] getMenuPresenters() {
|
||||||
|
@ -27,7 +27,7 @@ import org.openide.util.actions.Presenter;
|
|||||||
/**
|
/**
|
||||||
* Menu item that displays DataContentViewers
|
* Menu item that displays DataContentViewers
|
||||||
*/
|
*/
|
||||||
public class DataContentMenu extends CallableSystemAction implements Presenter.Menu {
|
class DataContentMenu extends CallableSystemAction implements Presenter.Menu {
|
||||||
|
|
||||||
DataContentMenu(){}
|
DataContentMenu(){}
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataExplorer;
|
|||||||
*
|
*
|
||||||
* @author jantonius
|
* @author jantonius
|
||||||
*/
|
*/
|
||||||
public class DataExplorerDynamicMenu extends JMenuItem implements DynamicMenuContent{
|
class DataExplorerDynamicMenu extends JMenuItem implements DynamicMenuContent{
|
||||||
DataExplorerDynamicMenu(){
|
DataExplorerDynamicMenu(){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ import org.openide.util.actions.Presenter;
|
|||||||
* Menu item that tracks available DataExplorers.
|
* Menu item that tracks available DataExplorers.
|
||||||
* @author jantonius
|
* @author jantonius
|
||||||
*/
|
*/
|
||||||
public class DataExplorerMenu extends CallableSystemAction implements Presenter.Menu {
|
class DataExplorerMenu extends CallableSystemAction implements Presenter.Menu {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JMenuItem getMenuPresenter() {
|
public JMenuItem getMenuPresenter() {
|
||||||
|
@ -31,7 +31,7 @@ import org.sleuthkit.autopsy.casemodule.Case;
|
|||||||
/**
|
/**
|
||||||
* Menu item tracks the DataResult windows
|
* Menu item tracks the DataResult windows
|
||||||
*/
|
*/
|
||||||
public class DataResultMenu extends CallableSystemAction implements Presenter.Menu, PropertyChangeListener {
|
class DataResultMenu extends CallableSystemAction implements Presenter.Menu, PropertyChangeListener {
|
||||||
|
|
||||||
JMenu menu = new JMenu("DataResult Windows");
|
JMenu menu = new JMenu("DataResult Windows");
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ import org.openide.windows.WindowManager;
|
|||||||
/**
|
/**
|
||||||
* This action opens the TopComponent passed to the constructor
|
* This action opens the TopComponent passed to the constructor
|
||||||
*/
|
*/
|
||||||
public class OpenTopComponentAction extends AbstractAction{
|
class OpenTopComponentAction extends AbstractAction{
|
||||||
|
|
||||||
private TopComponent tc;
|
private TopComponent tc;
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ import org.sleuthkit.autopsy.directorytree.DirectoryTreeTopComponent;
|
|||||||
/**
|
/**
|
||||||
* Menu item lists DataResult tabs.
|
* Menu item lists DataResult tabs.
|
||||||
*/
|
*/
|
||||||
public class SearchResultMenu extends JMenuItem implements DynamicMenuContent {
|
class SearchResultMenu extends JMenuItem implements DynamicMenuContent {
|
||||||
|
|
||||||
SearchResultMenu(){
|
SearchResultMenu(){
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ import org.openide.util.actions.Presenter;
|
|||||||
*
|
*
|
||||||
* @author dfickling
|
* @author dfickling
|
||||||
*/
|
*/
|
||||||
public class SpacerPanel extends javax.swing.JPanel{
|
class SpacerPanel extends javax.swing.JPanel{
|
||||||
SpacerPanel() {
|
SpacerPanel() {
|
||||||
this.setPreferredSize(new Dimension(2000, 20));
|
this.setPreferredSize(new Dimension(2000, 20));
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ import org.sleuthkit.datamodel.TskData;
|
|||||||
*
|
*
|
||||||
* @author jwallace
|
* @author jwallace
|
||||||
*/
|
*/
|
||||||
public enum FileReportDataTypes {
|
enum FileReportDataTypes {
|
||||||
|
|
||||||
NAME("Name") {
|
NAME("Name") {
|
||||||
@Override
|
@Override
|
||||||
|
@ -26,7 +26,7 @@ import org.sleuthkit.datamodel.AbstractFile;
|
|||||||
*
|
*
|
||||||
* @author jwallace
|
* @author jwallace
|
||||||
*/
|
*/
|
||||||
public interface FileReportModule extends ReportModule {
|
interface FileReportModule extends ReportModule {
|
||||||
/**
|
/**
|
||||||
* Initialize the report which will be stored at the given path.
|
* Initialize the report which will be stored at the given path.
|
||||||
* @param path
|
* @param path
|
||||||
|
@ -35,7 +35,7 @@ import org.sleuthkit.datamodel.AbstractFile;
|
|||||||
*
|
*
|
||||||
* @author jwallace
|
* @author jwallace
|
||||||
*/
|
*/
|
||||||
public class FileReportText implements FileReportModule {
|
class FileReportText implements FileReportModule {
|
||||||
private static final Logger logger = Logger.getLogger(FileReportText.class.getName());
|
private static final Logger logger = Logger.getLogger(FileReportText.class.getName());
|
||||||
private String reportPath;
|
private String reportPath;
|
||||||
private Writer out;
|
private Writer out;
|
||||||
@ -123,7 +123,7 @@ public class FileReportText implements FileReportModule {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "A tab delimited text file containing information about files in the case.";
|
return "A tab delimited text file containing information about individual files in the case.";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -20,7 +20,7 @@ package org.sleuthkit.autopsy.report;
|
|||||||
|
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
public interface GeneralReportModule extends ReportModule {
|
interface GeneralReportModule extends ReportModule {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called to generate the report. Method is responsible for saving the file at the
|
* Called to generate the report. Method is responsible for saving the file at the
|
||||||
|
@ -40,7 +40,7 @@ import org.sleuthkit.datamodel.*;
|
|||||||
* ReportBodyFile generates a report in the body file format specified on
|
* ReportBodyFile generates a report in the body file format specified on
|
||||||
* The Sleuth Kit wiki as MD5|name|inode|mode_as_string|UID|GID|size|atime|mtime|ctime|crtime.
|
* The Sleuth Kit wiki as MD5|name|inode|mode_as_string|UID|GID|size|atime|mtime|ctime|crtime.
|
||||||
*/
|
*/
|
||||||
public class ReportBodyFile implements GeneralReportModule {
|
class ReportBodyFile implements GeneralReportModule {
|
||||||
private static final Logger logger = Logger.getLogger(ReportBodyFile.class.getName());
|
private static final Logger logger = Logger.getLogger(ReportBodyFile.class.getName());
|
||||||
private static ReportBodyFile instance = null;
|
private static ReportBodyFile instance = null;
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user