mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
Merge remote-tracking branch 'origin/scalpelCarver' into scalpelCarver
This commit is contained in:
commit
d53df5e452
@ -111,15 +111,18 @@ public final class AddImageAction extends CallableSystemAction implements Presen
|
||||
|
||||
final IngestConfigurator ingestConfig = Lookup.getDefault().lookup(IngestConfigurator.class);
|
||||
if (null != ingestConfig && ingestConfig.isIngestRunning()) {
|
||||
final String msg = "<html>Ingest is ongoing on another data source. Adding a new source now might slow down the current ingest.<br />Do you want to proceed and add a new data source now?</html>";
|
||||
if (JOptionPane.showConfirmDialog(null, msg, "Ingest in progress", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.NO_OPTION) {
|
||||
final String msg = NbBundle.getMessage(this.getClass(), "AddImageAction.ingestConfig.ongoingIngest.msg");
|
||||
if (JOptionPane.showConfirmDialog(null, msg,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"AddImageAction.ingestConfig.ongoingIngest.title"),
|
||||
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.NO_OPTION) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
iterator = new AddImageWizardIterator(this);
|
||||
wizardDescriptor = new WizardDescriptor(iterator);
|
||||
wizardDescriptor.setTitle("Add Data Source");
|
||||
wizardDescriptor.setTitle(NbBundle.getMessage(this.getClass(), "AddImageAction.wizard.title"));
|
||||
wizardDescriptor.putProperty(NAME, e);
|
||||
|
||||
if (dialog != null) {
|
||||
|
@ -24,6 +24,8 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorCallback;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
@ -97,7 +99,9 @@ import org.sleuthkit.datamodel.TskException;
|
||||
String currDir = process.currentDirectory();
|
||||
if (currDir != null) {
|
||||
if (!currDir.isEmpty() ) {
|
||||
progressMonitor.setProgressText("Adding: " + currDir);
|
||||
progressMonitor.setProgressText(
|
||||
NbBundle.getMessage(this.getClass(), "AddImageTask.run.progress.adding",
|
||||
currDir));
|
||||
}
|
||||
}
|
||||
// this sleep here prevents the UI from locking up
|
||||
@ -298,7 +302,7 @@ import org.sleuthkit.datamodel.TskException;
|
||||
logger.log(Level.INFO, "interrupt() add image process");
|
||||
addImageProcess.stop(); //it might take time to truly stop processing and writing to db
|
||||
} catch (TskCoreException ex) {
|
||||
throw new Exception("Error stopping add-image process.", ex);
|
||||
throw new Exception(NbBundle.getMessage(this.getClass(), "AddImageTask.interrupt.exception.msg"), ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -29,6 +29,7 @@ import javax.swing.event.ChangeListener;
|
||||
import org.openide.WizardDescriptor;
|
||||
import org.openide.util.HelpCtx;
|
||||
import org.openide.util.Lookup;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor;
|
||||
|
||||
/**
|
||||
@ -136,7 +137,8 @@ class AddImageWizardAddingProgressPanel implements WizardDescriptor.FinishablePa
|
||||
public boolean isValid() {
|
||||
// set the focus to the next button of the wizard dialog if it's enabled
|
||||
if (imgAdded) {
|
||||
Lookup.getDefault().lookup(AddImageAction.class).requestFocusButton("Next >");
|
||||
Lookup.getDefault().lookup(AddImageAction.class).requestFocusButton(
|
||||
NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressPanel.isValid.focusNext"));
|
||||
}
|
||||
|
||||
return imgAdded;
|
||||
@ -147,7 +149,8 @@ class AddImageWizardAddingProgressPanel implements WizardDescriptor.FinishablePa
|
||||
*/
|
||||
void setStateStarted() {
|
||||
component.getProgressBar().setIndeterminate(true);
|
||||
component.setProgressBarTextAndColor("*This process may take some time for large data sources.", 0, Color.black);
|
||||
component.setProgressBarTextAndColor(
|
||||
NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressPanel.stateStarted.progressBarText"), 0, Color.black);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -23,6 +23,7 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JProgressBar;
|
||||
import org.openide.WizardDescriptor;
|
||||
import org.openide.util.NbBundle;
|
||||
|
||||
/**
|
||||
* visual component to display progress bar and status updates while adding an
|
||||
@ -30,7 +31,8 @@ import org.openide.WizardDescriptor;
|
||||
*/
|
||||
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 = NbBundle
|
||||
.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.addingDsComplete.text");
|
||||
private String errorLog = "";
|
||||
private boolean hasCriticalErrors = false;
|
||||
|
||||
@ -42,7 +44,7 @@ import org.openide.WizardDescriptor;
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Add Data Source";
|
||||
return NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.getName.text");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -115,10 +117,12 @@ import org.openide.WizardDescriptor;
|
||||
//progressBar.setValue(100); //always invoked when process completed
|
||||
if (hasCriticalErrors) {
|
||||
statusLabel.setForeground(Color.RED);
|
||||
statusLabel.setText("*Failed to add data source (critical errors encountered). Click below to view the log.");
|
||||
statusLabel.setText(
|
||||
NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.showErrors.critText"));
|
||||
} else {
|
||||
statusLabel.setForeground(Color.BLACK);
|
||||
statusLabel.setText("*Data Source added (non-critical errors encountered). Click below to view the log.");
|
||||
statusLabel.setText(
|
||||
NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.showErrors.nonCritText"));
|
||||
}
|
||||
|
||||
errorLog += errors + "\n";
|
||||
|
@ -25,6 +25,8 @@ import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
@ -106,7 +108,8 @@ class AddImageWizardChooseDataSourcePanel implements WizardDescriptor.Panel<Wiza
|
||||
void moveFocusToNext() {
|
||||
// set the focus to the next button of the wizard dialog if it's enabled
|
||||
if (isNextEnable) {
|
||||
Lookup.getDefault().lookup(AddImageAction.class).requestFocusButton("Next >");
|
||||
Lookup.getDefault().lookup(AddImageAction.class).requestFocusButton(
|
||||
NbBundle.getMessage(this.getClass(), "AddImageWizardChooseDataSourcePanel.moveFocusNext"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,6 +37,7 @@ import javax.swing.JSeparator;
|
||||
import javax.swing.event.DocumentEvent;
|
||||
import javax.swing.ListCellRenderer;
|
||||
import org.openide.util.Lookup;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor;
|
||||
|
||||
@ -183,7 +184,7 @@ final class AddImageWizardChooseDataSourceVisual extends JPanel {
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Enter Data Source Information";
|
||||
return NbBundle.getMessage(this.getClass(), "AddImageWizardChooseDataSourceVisual.getName.text");
|
||||
}
|
||||
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
package org.sleuthkit.autopsy.casemodule;
|
||||
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.ingest.IngestConfigurator;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
@ -275,9 +276,11 @@ class AddImageWizardIngestConfigPanel implements WizardDescriptor.Panel<WizardDe
|
||||
|
||||
//check the result and display to user
|
||||
if (result == DataSourceProcessorCallback.DataSourceProcessorResult.NO_ERRORS)
|
||||
progressPanel.getComponent().setProgressBarTextAndColor("*Data Source added.", 100, Color.black);
|
||||
progressPanel.getComponent().setProgressBarTextAndColor(
|
||||
NbBundle.getMessage(this.getClass(), "AddImageWizardIngestConfigPanel.dsProcDone.noErrs.text"), 100, Color.black);
|
||||
else
|
||||
progressPanel.getComponent().setProgressBarTextAndColor("*Errors encountered in adding Data Source.", 100, Color.red);
|
||||
progressPanel.getComponent().setProgressBarTextAndColor(
|
||||
NbBundle.getMessage(this.getClass(), "AddImageWizardIngestConfigPanel.dsProcDone.errs.text"), 100, Color.red);
|
||||
|
||||
|
||||
//if errors, display them on the progress panel
|
||||
|
@ -18,6 +18,8 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.casemodule;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
@ -55,7 +57,7 @@ import javax.swing.JPanel;
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Configure Ingest Modules";
|
||||
return NbBundle.getMessage(this.getClass(), "AddImageWizardIngestConfigVisual.getName.text");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -26,6 +26,7 @@ import java.util.NoSuchElementException;
|
||||
import javax.swing.JComponent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
import org.openide.WizardDescriptor;
|
||||
import org.openide.util.NbBundle;
|
||||
|
||||
/**
|
||||
* The iterator class for the "Add Image" wizard panel. This class is used to
|
||||
@ -112,7 +113,8 @@ class AddImageWizardIterator implements WizardDescriptor.Iterator<WizardDescript
|
||||
*/
|
||||
@Override
|
||||
public String name() {
|
||||
return "Step " + Integer.toString(index + 1) + " of " + getPanels().size();
|
||||
return NbBundle.getMessage(this.getClass(), "AddImageWizardIterator.stepXofN", Integer.toString(index + 1),
|
||||
getPanels().size());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -23,6 +23,8 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorCallback;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
@ -180,7 +182,9 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
@Override
|
||||
public void fileAdded(final AbstractFile newFile) {
|
||||
if (count++ % 10 == 0) {
|
||||
progressMonitor.setProgressText("Adding: " + newFile.getParentPath() + "/" + newFile.getName());
|
||||
progressMonitor.setProgressText(
|
||||
NbBundle.getMessage(this.getClass(), "AddLocalFilesTask.localFileAdd.progress.text",
|
||||
newFile.getParentPath(), newFile.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,61 +1,11 @@
|
||||
CTL_AddImage=Add Data Source...
|
||||
CTL_AddImageButton=Add Data Source
|
||||
CTL_CaseAction=Case
|
||||
CTL_CaseCloseAct=Close Case
|
||||
CTL_CaseNewAction=New Case...
|
||||
#CTL_CaseOpenActionOld=Open Case(old)...
|
||||
CTL_CasePropertiesAction=Case Properties...
|
||||
CTL_CaseTopComponent=Case Window
|
||||
#CTL_NewCaseAct=New Case(Old)...
|
||||
CTL_OpenAction=Open Case...
|
||||
CTL_RecentCases=Recent Cases
|
||||
CTL_CaseDeleteAction=Delete Case
|
||||
CTL_SaveCaseAction=Save Case
|
||||
CTL_testAction=test
|
||||
CTL_testTopComponent=test Window
|
||||
HINT_CaseTopComponent=This is a Case window
|
||||
HINT_testTopComponent=This is a test window
|
||||
Menu/File/org-sleuthkit-autopsy-casemodule-CaseCloseAct.shadow=
|
||||
Menu/File/org-sleuthkit-autopsy-casemodule-OpenAction.shadow=Open Case
|
||||
OpenIDE-Module-Name=Case
|
||||
CaseVisualPanel1.jLabel1.text=Name
|
||||
CaseVisualPanel1.jLabel2.text=Image Path:
|
||||
CaseVisualPanel1.jLabel3.text=Database Path:
|
||||
CaseTopComponent.jLabel1.text=Name
|
||||
CaseVisualPanel1.NameField.text=
|
||||
CaseVisualPanel1.ImgPath.text=
|
||||
CaseVisualPanel1.DbPath.text=
|
||||
CaseTopComponent.jLabel2.text=Image Path
|
||||
CaseTopComponent.jLabel3.text=DB Path
|
||||
CaseVisualPanel1.ImgPathBrowserButton.text=Browse
|
||||
CaseVisualPanel1.DbPathBrowserButton.text=Browse
|
||||
NewCaseVisualPanel1.jLabel1.text=Name
|
||||
NewCaseVisualPanel1.jTextField1.text=
|
||||
NewCaseVisualPanel1.jLabel2.text=Image Type:
|
||||
NewCaseVisualPanel1.jRadioButton1.text=Raw Single .img .dd
|
||||
NewCaseVisualPanel1.jRadioButton2.text=Raw Split .001 .002 etc
|
||||
NewCaseVisualPanel1.jRadioButton3.text=Encase .e01
|
||||
NewCaseVisualPanel1.nameLabel.text_1=Name
|
||||
NewCaseVisualPanel1.NameField.text_1=
|
||||
NewCaseVisualPanel1.TypeLabel.text_1=Image Type:
|
||||
NewCaseVisualPanel1.rawSingleRadio.text_1=Raw Single .img .dd
|
||||
NewCaseVisualPanel1.rawSplitRadio.text_1=Raw Split .001 .002 etc
|
||||
NewCaseVisualPanel1.encaseRadio.text_1=EnCase .e01
|
||||
NewCaseVisualPanel2.jLabel1.text=Image Path:
|
||||
NewCaseVisualPanel2.jLabel2.text=DataBase Path:
|
||||
NewCaseVisualPanel2.descriptionText.text=variable text
|
||||
NewCaseVisualPanel2.ImgBrowserButton.text=Browse
|
||||
NewCaseVisualPanel2.DcBrowserButton.text=Browse
|
||||
NewCaseVisualPanel2.ImagePathField.text=
|
||||
NewCaseVisualPanel2.DbPathField.text=
|
||||
CaseVisualPanel1.jLabel4.text=Image Type:
|
||||
CaseVisualPanel1.rawSingle.text=Raw Single .img .dd
|
||||
CaseVisualPanel1.rawSplit.text=Raw Split .001 .002 etc
|
||||
CaseVisualPanel1.encase.text=EnCase .e01 .e02 etc
|
||||
CaseVisualPanel1.multipleSelectLabel.text=Single Image: Multiple Select Disabled
|
||||
CaseVisualPanel1.jLabel5.text=If a database has not already been loaded / created for the chosen image use this button: (could take a few minutes)
|
||||
CaseVisualPanel1.ProgressLabel.text=
|
||||
CaseVisualPanel1.createDbButton.text=Create Database
|
||||
NewCaseVisualPanel1.jLabel1.text_1=Enter New Case Information:
|
||||
NewCaseVisualPanel1.caseNameLabel.text_1=Case Name:
|
||||
NewCaseVisualPanel1.caseDirLabel.text=Base Directory:
|
||||
@ -77,8 +27,6 @@ CasePropertiesForm.OKButton.text=OK
|
||||
CasePropertiesForm.deleteCaseButton.text=Delete Case
|
||||
CueBannerPanel.autopsyLogo.text=
|
||||
CueBannerPanel.createNewLabel.text=Create New Case
|
||||
CueBannerPanel.autopsyLabel.text=Autopsy
|
||||
CueBannerPanel.welcomeLabel.text=Welcome to
|
||||
CueBannerPanel.openLabel.text=Open Existing Case
|
||||
CueBannerPanel.closeButton.text=Close
|
||||
CueBannerPanel.openRecentLabel.text=Open Recent Case
|
||||
@ -87,13 +35,6 @@ CueBannerPanel.openCaseButton.text=
|
||||
CueBannerPanel.openRecentButton.text=
|
||||
OpenRecentCasePanel.cancelButton.text=Cancel
|
||||
OpenRecentCasePanel.jLabel1.text=Recent Cases
|
||||
NewJPanel.jLabel1.text=
|
||||
NewJPanel.jLabel2.text=NSRL Index
|
||||
NewJPanel.jLabel5.text=The NSRL index is used to idenify "known" files.
|
||||
NewJPanel.jFormattedTextField1.text=jFormattedTextField1
|
||||
NewJPanel.jButton1.text=Rename
|
||||
NewJPanel.jLabel4.text=Database:
|
||||
AddImageVisualPanel2.indexImageCheckBox.text=Index image for keyword search
|
||||
CasePropertiesForm.caseNumberLabel.text=Case Number:
|
||||
CasePropertiesForm.examinerLabel.text=Examiner:
|
||||
CasePropertiesForm.caseNumberTextField.text=
|
||||
@ -108,7 +49,6 @@ AddImageErrorsDialog.copyButton.toolTipText=Copy errors to clipboard
|
||||
AddImageErrorsDialog.copyButton.text=Copy
|
||||
AddImageErrorsDialog.closeButton.toolTipText=Close this window
|
||||
AddImageErrorsDialog.closeButton.text=Close
|
||||
AddImageVisualPanel4.jLabel2.text=You can add another image or click Finish to return to the case and view results.
|
||||
OpenRecentCasePanel.openButton.text=Open
|
||||
ImageFilePanel.pathLabel.text=Browse for an image file:
|
||||
ImageFilePanel.browseButton.text=Browse
|
||||
@ -118,8 +58,6 @@ MissingImageDialog.selectButton.text=Select Image
|
||||
MissingImageDialog.titleLabel.text=Search for missing image
|
||||
MissingImageDialog.cancelButton.text=Cancel
|
||||
LocalDiskPanel.errorLabel.text=Error Label
|
||||
AddImageDonePanel.statusLabel.text=File system has been added to the local database. Files are being analyzed.
|
||||
AddImageDonePanel.crDbLabel.text=Adding Data Source - Complete
|
||||
LocalFilesPanel.infoLabel.text=Add local files and folders:
|
||||
LocalFilesPanel.selectButton.text=Add
|
||||
LocalFilesPanel.localFileChooser.dialogTitle=Select Local Files or Folders
|
||||
@ -152,3 +90,142 @@ LocalDiskPanel.descLabel.text=(faster results, although some data will not be se
|
||||
MissingImageDialog.browseButton.text=Browse
|
||||
MissingImageDialog.pathNameTextField.text=
|
||||
AddImageWizardAddingProgressVisual.progressTextArea.border.title=Status
|
||||
AddImageAction.wizard.title=Add Data Source
|
||||
AddImageAction.ingestConfig.ongoingIngest.msg=<html>Ingest is ongoing on another data source. Adding a new source now might slow down the current ingest.<br />Do you want to proceed and add a new data source now?</html>
|
||||
AddImageAction.ingestConfig.ongoingIngest.title=Ingest in progress
|
||||
AddImageTask.run.progress.adding=Adding\: {0}
|
||||
AddImageTask.interrupt.exception.msg=Error stopping add-image process.
|
||||
AddImageWizardAddingProgressPanel.isValid.focusNext=Next >
|
||||
AddImageWizardAddingProgressPanel.stateStarted.progressBarText=*This process may take some time for large data sources.
|
||||
AddImageWizardAddingProgressVisual.addingDsComplete.text=Adding Data Source - Complete
|
||||
AddImageWizardAddingProgressVisual.getName.text=Add Data Source
|
||||
AddImageWizardAddingProgressVisual.showErrors.critText=*Failed to add data source (critical errors encountered). Click below to view the log.
|
||||
AddImageWizardAddingProgressVisual.showErrors.nonCritText=*Data Source added (non-critical errors encountered). Click below to view the log.
|
||||
AddImageWizardChooseDataSourcePanel.moveFocusNext=Next >
|
||||
AddImageWizardChooseDataSourceVisual.getName.text=Enter Data Source Information
|
||||
AddImageWizardIngestConfigPanel.dsProcDone.noErrs.text=*Data Source added.
|
||||
AddImageWizardIngestConfigPanel.dsProcDone.errs.text=*Errors encountered in adding Data Source.
|
||||
AddImageWizardIngestConfigVisual.getName.text=Configure Ingest Modules
|
||||
AddImageWizardIterator.stepXofN=Step {0} of {1}
|
||||
AddLocalFilesTask.localFileAdd.progress.text=Adding\: {0}/{1}
|
||||
Case.getCurCase.exception.noneOpen=Can't get the current case; there is no case open\!
|
||||
Case.moduleErr=Module Error
|
||||
Case.changeCase.errListenToCaseUpdates.msg=A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.
|
||||
Case.create.exception.msg=Error creating a case\: {0} in dir {1}
|
||||
Case.open.exception.blankCase.msg=Case name is blank.
|
||||
Case.open.msgDlg.updated.msg=Updated case database schema.\
|
||||
A backup copy of the database with the following path has been made\:\
|
||||
{0}
|
||||
Case.open.msgDlg.updated.title=Case Database Schema Update
|
||||
Case.open.exception.checkFile.msg=Check that you selected the correct case file (usually with {0} extension)
|
||||
Case.open.exception.gen.msg=Error opening the case
|
||||
Case.checkImgExist.confDlg.doesntExist.msg={0} has detected that one of the images associated with \
|
||||
this case are missing. Would you like to search for them now?\
|
||||
Previously, the image was located at\:\
|
||||
{1}\
|
||||
Please note that you will still be able to browse directories and generate reports\
|
||||
if you choose No, but you will not be able to view file content or run the ingest process.
|
||||
Case.checkImgExist.confDlg.doesntExist.title=Missing Image
|
||||
Case.addImg.exception.msg=Error adding image to the case
|
||||
Case.closeCase.exception.msg=Error while trying to close the current case.
|
||||
Case.deleteCase.exception.msg=Error deleting the case dir\: {0}
|
||||
Case.deleteCase.exception.msg2=Error deleting the case dir\: {0}
|
||||
Case.updateCaseName.exception.msg=Error while trying to update the case name.
|
||||
Case.updateExaminer.exception.msg=Error while trying to update the examiner.
|
||||
Case.updateCaseNum.exception.msg=Error while trying to update the case number.
|
||||
Case.exception.errGetRootObj=Error getting root objects.
|
||||
Case.createCaseDir.exception.existNotDir=Cannot create case dir, already exists and is not a directory\: {0}
|
||||
Case.createCaseDir.exception.existCantRW=Cannot create case dir, already exists and cannot read/write\: {0}
|
||||
Case.createCaseDir.exception.cantCreate=Cannot create case dir\: {0}
|
||||
Case.createCaseDir.exception.cantCreateCaseDir=Could not create case directory\: {0}
|
||||
Case.createCaseDir.exception.cantCreateModDir=Could not create modules output directory\: {0}
|
||||
Case.createCaseDir.exception.gen=Could not create case directory\: {0}
|
||||
CaseDeleteAction.closeConfMsg.text=Are you sure want to close and delete this case? \
|
||||
Case Name\: {0}\
|
||||
Case Directory\: {1}
|
||||
CaseDeleteAction.closeConfMsg.title=Warning\: Closing the Current Case
|
||||
CaseDeleteAction.msgDlg.fileInUse.msg=The delete action can't be fully completed because the folder or file in it is open by another program.\
|
||||
\
|
||||
Close the folder and file and try again or you can delete the case manually.
|
||||
CaseDeleteAction.msgDlg.fileInUse.title=Error\: Folder In Use
|
||||
CaseDeleteAction.msgDlg.caseDelete.msg=Case {0} has been deleted.
|
||||
CaseOpenAction.autFilter.title={0} Case File ( {1})
|
||||
CaseOpenAction.msgDlg.fileNotExist.msg=Error\: File doesn't exist.
|
||||
CaseOpenAction.msgDlg.fileNotExist.title=Error
|
||||
CaseOpenAction.msgDlg.cantOpenCase.msg=Error\: could not open the case in folder {0}\: {1}
|
||||
CaseOpenAction.msgDlg.cantOpenCase.title=Error
|
||||
CasePropertiesAction.window.title=Case Properties
|
||||
CasePropertiesForm.updateCaseName.msgDlg.empty.msg=The caseName cannot be empty.
|
||||
CasePropertiesForm.updateCaseName.msgDlg.empty.title=Error
|
||||
CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.msg=The Case Name cannot contain any of this following symbol\: \\ / \: * ? " < > |
|
||||
CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.title=Error
|
||||
CasePropertiesForm.updateCaseName.confMsg.msg=Are you sure want to update the case name from "{0}" to "{1}"?
|
||||
CasePropertiesForm.updateCaseName.confMsg.title=Create directory
|
||||
CueBannerPanel.title.text=Open Recent Case
|
||||
GeneralFilter.rawImageDesc.text=Raw Images (*.img, *.dd, *.001, *.aa, *.raw, *.bin)
|
||||
GeneralFilter.encaseImageDesc.text=Encase Images (*.e01)
|
||||
ImageDSProcessor.dsType.text=Image File
|
||||
ImageDSProcessor.allDesc.text=All Supported Types
|
||||
ImageFilePanel.moduleErr=Module Error
|
||||
ImageFilePanel.moduleErr.msg=A module caused an error listening to ImageFilePanel updates. See log to determine which module. Some data could be incomplete.
|
||||
LocalDiskDSProcessor.dsType.text=Local Disk
|
||||
LocalDiskPanel.localDiskModel.loading.msg=Loading local disks...
|
||||
LocalDiskPanel.moduleErr=Module Error
|
||||
LocalDiskPanel.moduleErr.msg=A module caused an error listening to LocalDiskPanel updates. See log to determine which module. Some data could be incomplete.
|
||||
LocalDiskPanel.errLabel.disksNotDetected.text=Disks were not detected. On some systems it requires admin privileges (or "Run as administrator").
|
||||
LocalDiskPanel.errLabel.disksNotDetected.toolTipText=Disks were not detected. On some systems it requires admin privileges (or "Run as administrator").
|
||||
LocalDiskPanel.errLabel.drivesNotDetected.text=Local drives were not detected. Auto-detection not supported on this OS or admin privileges required
|
||||
LocalDiskPanel.errLabel.drivesNotDetected.toolTipText=Local drives were not detected. Auto-detection not supported on this OS or admin privileges required
|
||||
LocalDiskPanel.errLabel.someDisksNotDetected.text=Some disks were not detected. On some systems it requires admin privileges (or "Run as administrator").
|
||||
LocalDiskPanel.errLabel.someDisksNotDetected.toolTipText=Some disks were not detected. On some systems it requires admin privileges (or "Run as administrator").
|
||||
LocalFilesDSProcessor.dsType=Logical Files
|
||||
LocalFilesDSProcessor.toString.text=Logical Files
|
||||
LocalFilesPanel.contentType.text=LOCAL
|
||||
LocalFilesPanel.moduleErr=Module Error
|
||||
LocalFilesPanel.moduleErr.msg=A module caused an error listening to LocalFilesPanel updates. See log to determine which module. Some data could be incomplete.
|
||||
MissingImageDialog.allDesc.text=All Supported Types
|
||||
MissingImageDialog.display.title=Search for Missing Image
|
||||
MissingImageDialog.confDlg.noFileSel.msg=No image file has been selected, are you sure you\
|
||||
would like to exit without finding the image.
|
||||
MissingImageDialog.confDlg.noFileSel.title=Missing Image
|
||||
NewCaseVisualPanel1.getName.text=Case Info
|
||||
NewCaseVisualPanel1.caseDirBrowse.selectButton.text=Select
|
||||
NewCaseVisualPanel2.getName.text=Additional Information
|
||||
NewCaseWizardAction.closeCurCase.confMsg.msg=Do you want to save and close this case and proceed with the new case creation?
|
||||
NewCaseWizardAction.closeCurCase.confMsg.title=Warning\: Closing the Current Case
|
||||
NewCaseWizardAction.newCase.windowTitle.text=New Case Information
|
||||
NewCaseWizardAction.getName.text=New Case Wizard
|
||||
NewCaseWizardPanel1.validate.errMsg.invalidSymbols=The Case Name cannot contain any of the following symbols\: \\ / \: * ? " < > |
|
||||
NewCaseWizardPanel1.validate.errMsg.dirExists=Case directory ''{0}'' already exists.
|
||||
NewCaseWizardPanel1.validate.confMsg.createDir.msg=The base directory ''{0}'' doesn''t exist. \
|
||||
\
|
||||
Do you want to create that directory?
|
||||
NewCaseWizardPanel1.validate.confMsg.createDir.title=Create directory
|
||||
NewCaseWizardPanel1.validate.errMsg.cantCreateParDir.msg=Error\: Couldn''t create case parent directory {0}
|
||||
NewCaseWizardPanel1.validate.errMsg.prevCreateBaseDir.msg=Prevented from creating base directory {0}
|
||||
NewCaseWizardPanel1.validate.errMsg.cantCreateDir=Error\: Couldn't create directory.
|
||||
NewCaseWizardPanel1.validate.errMsg.invalidBaseDir.msg=ERROR\: The Base Directory that you entered is not valid.\
|
||||
Please enter a valid Base Directory.
|
||||
NewCaseWizardPanel1.createDir.errMsg.cantCreateDir.msg=ERROR\: Could not create the case directory. \
|
||||
Please enter a valid Case Name and Directory.
|
||||
NewCaseWizardPanel2.validate.errCreateCase.msg=Error creating case
|
||||
OpenRecentCasePanel.openCase.msgDlg.caseDoesntExist.msg=Error\: Case {0} doesn''t exist.
|
||||
OpenRecentCasePanel.openCase.msgDlg.err=Error
|
||||
OpenRecentCasePanel.colName.caseName=Case Name
|
||||
OpenRecentCasePanel.colName.path=Path
|
||||
RecentCases.exception.caseIdxOutOfRange.msg=Recent case index {0} is out of range.
|
||||
RecentCases.getName.text=Clear Recent Cases
|
||||
RecentItems.openRecentCase.msgDlg.text=Error\: Case {0} doesn''t exist.
|
||||
RecentItems.openRecentCase.msgDlg.err=Error
|
||||
StartupWindow.title.text=Welcome
|
||||
UpdateRecentCases.menuItem.clearRecentCases.text=Clear Recent Cases
|
||||
UpdateRecentCases.menuItem.empty=-Empty-
|
||||
XMLCaseManagement.create.exception.msg=Error setting up Case XML file,
|
||||
XMLCaseManagement.writeFile.exception.noCase.msg=No set case to write management file for.
|
||||
XMLCaseManagement.writeFile.exception.errWriteToFile.msg=Error writing to case file
|
||||
XMLCaseManagement.open.exception.errReadXMLFile.msg=Error reading case XML file\: {0}
|
||||
XMLCaseManagement.open.msgDlg.notAutCase.msg=Error\: This is not an Autopsy config file ("{0}").\
|
||||
\
|
||||
Detail\: \
|
||||
Cannot open a non-Autopsy config file (at {1}).
|
||||
XMLCaseManagement.open.msgDlg.notAutCase.title=Error
|
||||
|
@ -0,0 +1,90 @@
|
||||
CTL_AddImage=データソース追加...
|
||||
CTL_AddImageButton=データソース追加
|
||||
CTL_CaseCloseAct=ケースを閉じる
|
||||
CTL_CaseNewAction=New Case...
|
||||
CTL_CaseOpenActionOld=Open Case(old)...
|
||||
CTL_CasePropertiesAction=Case Properties...
|
||||
CTL_OpenAction=Open Case...
|
||||
CTL_CaseDeleteAction=ケース削除
|
||||
OpenIDE-Module-Name=Case
|
||||
NewCaseVisualPanel1.jLabel1.text_1=新規ケース情報を入力:
|
||||
#Nick: Does this mean info on new case or new info on existing case?
|
||||
NewCaseVisualPanel1.caseNameLabel.text_1=ケース名
|
||||
NewCaseVisualPanel1.caseDirLabel.text=ベースディレクトリ:
|
||||
NewCaseVisualPanel1.caseDirBrowseButton.text=閲覧
|
||||
NewCaseVisualPanel1.caseNameTextField.text_1=
|
||||
NewCaseVisualPanel1.jLabel2.text_1=ケースデータは下記のディレクトリに保存されます:
|
||||
#Nick: is "case data" and "case information" the same?
|
||||
NewCaseVisualPanel1.caseParentDirTextField.text=
|
||||
NewCaseVisualPanel1.caseDirTextField.text_1=
|
||||
CasePropertiesForm.caseDirLabel.text=ケースディレクトリ:
|
||||
CasePropertiesForm.crDateLabel.text=作成日:
|
||||
CasePropertiesForm.caseNameLabel.text=ケース名:
|
||||
CasePropertiesForm.crDateTextField.text=
|
||||
CasePropertiesForm.caseNameTextField.text=
|
||||
CasePropertiesForm.updateCaseNameButton.text=アップデート
|
||||
CasePropertiesForm.casePropLabel.text=ケース情報
|
||||
CasePropertiesForm.genInfoLabel.text=一般情報
|
||||
CasePropertiesForm.imgInfoLabel.text=画像情報
|
||||
CasePropertiesForm.OKButton.text=OK
|
||||
CasePropertiesForm.deleteCaseButton.text=ケース削除
|
||||
CueBannerPanel.autopsyLogo.text=
|
||||
CueBannerPanel.createNewLabel.text=新規ケース作成
|
||||
CueBannerPanel.openLabel.text=既存ケースを開く
|
||||
##オープンは日本語にするべき?
|
||||
CueBannerPanel.closeButton.text=閉じる
|
||||
CueBannerPanel.openRecentLabel.text=最近開いたケースを開く
|
||||
CueBannerPanel.newCaseButton.text=
|
||||
CueBannerPanel.openCaseButton.text=
|
||||
CueBannerPanel.openRecentButton.text=
|
||||
OpenRecentCasePanel.cancelButton.text=キャンセル
|
||||
OpenRecentCasePanel.jLabel1.text=最近開いたファイル
|
||||
CasePropertiesForm.caseNumberLabel.text=ケース番号:
|
||||
CasePropertiesForm.examinerLabel.text=Examiner:
|
||||
#審査官?カタカナ?
|
||||
CasePropertiesForm.caseNumberTextField.text=
|
||||
CasePropertiesForm.examinerTextField.text=
|
||||
NewCaseVisualPanel2.caseNumberTextField.text=
|
||||
NewCaseVisualPanel2.examinerLabel.text=Examiner:
|
||||
#審査官?カタカナ?
|
||||
NewCaseVisualPanel2.caseNumberLabel.text=ケース番号:
|
||||
NewCaseVisualPanel2.examinerTextField.text=
|
||||
NewCaseVisualPanel2.optionalLabel.text=オプショナル:ケース番号及び審査官を設定
|
||||
#審査官?カタカナ?
|
||||
AddImageErrorsDialog.title=イメージログ追加
|
||||
AddImageErrorsDialog.copyButton.toolTipText=エラーをクリップボードにコピーします
|
||||
AddImageErrorsDialog.copyButton.text=コピー
|
||||
AddImageErrorsDialog.closeButton.toolTipText=このウィンドウを閉じます
|
||||
AddImageErrorsDialog.closeButton.text=閉じる
|
||||
OpenRecentCasePanel.openButton.text=開く
|
||||
ImageFilePanel.pathLabel.text=画像ファイルを閲覧:
|
||||
ImageFilePanel.browseButton.text=閲覧
|
||||
ImageFilePanel.pathTextField.text=
|
||||
LocalDiskPanel.diskLabel.text=ローカルディスクを選択:
|
||||
MissingImageDialog.selectButton.text=画像選択
|
||||
MissingImageDialog.titleLabel.text=欠落した画像の検索
|
||||
MissingImageDialog.cancelButton.text=キャンセル
|
||||
LocalDiskPanel.errorLabel.text=エラーラベル
|
||||
LocalFilesPanel.infoLabel.text=ローカルファイル及びフォルダーを追加:
|
||||
LocalFilesPanel.selectButton.text=追加
|
||||
LocalFilesPanel.localFileChooser.dialogTitle=ローカルファイル又はフォルダーを選択
|
||||
LocalFilesPanel.selectButton.toolTipText=ローカルファイル及びフォルダーをロジカルファイルとして追加します
|
||||
LocalFilesPanel.clearButton.text=クリアー
|
||||
LocalFilesPanel.clearButton.toolTipText=現在選択されているローカルファイルパスがクリアされます
|
||||
LocalFilesPanel.selectedPaths.toolTipText=
|
||||
LocalFilesPanel.localFileChooser.approveButtonText=選択
|
||||
LocalFilesPanel.localFileChooser.approveButtonToolTipText=
|
||||
LocalFilesPanel.selectButton.actionCommand=追加
|
||||
AddImageWizardIngestConfigVisual.subtitleLabel.text=このデータソースに対して実行したい追加モジュール群を設定します
|
||||
#Nick: Does ingest module mean a module you added?
|
||||
AddImageWizardIngestConfigVisual.titleLabel.text=追加モジュール設定
|
||||
AddImageWizardAddingProgressVisual.statusLabel.text=ファイルシステムがローカルデータベースに追加されました。ファイルを解析中です。
|
||||
AddImageWizardChooseDataSourceVisual.typeTabel.text=追加するソースタイプを選択:
|
||||
AddImageWizardChooseDataSourceVisual.jLabel2.text=jLabel2
|
||||
AddImageWizardChooseDataSourceVisual.nextLabel.text=<html> 「次へ」をクリックして、インプットデータを解析、ボリューム及びファイルシステムデータを抽出、ローカルデータベースにデータを投入。</html>
|
||||
#Nick: Do I leave the <html> and </html> as is?
|
||||
AddImageWizardChooseDataSourceVisual.imgInfoLabel.text=データソース情報を入力:
|
||||
AddImageWizardAddingProgressVisual.progressLabel.text=<進捗状況>
|
||||
AddImageWizardAddingProgressVisual.viewLogButton.text=ログ閲覧
|
||||
AddImageWizardAddingProgressVisual.titleLabel.text=データソース追加中
|
||||
AddImageWizardAddingProgressVisual.subTitle1Label.text=ローカルデータベースにファイルシステム情報を追加中です。こちらが完了次第、ファイル解析が始まります。
|
@ -37,8 +37,9 @@ import java.util.TimeZone;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.SwingUtilities;
|
||||
import org.openide.util.Exceptions;
|
||||
|
||||
import org.openide.util.Lookup;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.actions.CallableSystemAction;
|
||||
import org.openide.util.actions.SystemAction;
|
||||
import org.openide.windows.WindowManager;
|
||||
@ -159,7 +160,7 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
if (currentCase != null) {
|
||||
return currentCase;
|
||||
} else {
|
||||
throw new IllegalStateException("Can't get the current case; there is no case open!");
|
||||
throw new IllegalStateException(NbBundle.getMessage(Case.class, "Case.getCurCase.exception.noneOpen"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -192,7 +193,10 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Case listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(Case.class, "Case.moduleErr"),
|
||||
NbBundle.getMessage(Case.class,
|
||||
"Case.changeCase.errListenToCaseUpdates.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
doCaseNameChange("");
|
||||
|
||||
@ -201,7 +205,10 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Case listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(Case.class, "Case.moduleErr"),
|
||||
NbBundle.getMessage(Case.class,
|
||||
"Case.changeCase.errListenToCaseUpdates.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@ -214,7 +221,10 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Case listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(Case.class, "Case.moduleErr"),
|
||||
NbBundle.getMessage(Case.class,
|
||||
"Case.changeCase.errListenToCaseUpdates.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
doCaseChange(currentCase);
|
||||
|
||||
@ -224,7 +234,10 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Case threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(Case.class, "Case.moduleErr"),
|
||||
NbBundle.getMessage(Case.class,
|
||||
"Case.changeCase.errListenToCaseUpdates.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
doCaseNameChange(currentCase.name);
|
||||
|
||||
@ -267,7 +280,8 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
db = SleuthkitCase.newCase(dbPath);
|
||||
} catch (TskCoreException ex) {
|
||||
logger.log(Level.SEVERE, "Error creating a case: " + caseName + " in dir " + caseDir, ex);
|
||||
throw new CaseActionException("Error creating a case: " + caseName + " in dir " + caseDir, ex);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(Case.class, "Case.create.exception.msg", caseName, caseDir), ex);
|
||||
}
|
||||
|
||||
Case newCase = new Case(caseName, caseNumber, examiner, configFilePath, xmlcm, db);
|
||||
@ -296,14 +310,18 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
String examiner = xmlcm.getCaseExaminer();
|
||||
// if the caseName is "", case / config file can't be opened
|
||||
if (caseName.equals("")) {
|
||||
throw new CaseActionException("Case name is blank.");
|
||||
throw new CaseActionException(NbBundle.getMessage(Case.class, "Case.open.exception.blankCase.msg"));
|
||||
}
|
||||
|
||||
String caseDir = xmlcm.getCaseDirectory();
|
||||
String dbPath = caseDir + File.separator + "autopsy.db";
|
||||
SleuthkitCase db = SleuthkitCase.openCase(dbPath);
|
||||
if (null != db.getBackupDatabasePath()) {
|
||||
JOptionPane.showMessageDialog(null, "Updated case database schema.\nA backup copy of the database with the following path has been made:\n " + db.getBackupDatabasePath(), "Case Database Schema Update", JOptionPane.INFORMATION_MESSAGE);
|
||||
JOptionPane.showMessageDialog(null,
|
||||
NbBundle.getMessage(Case.class, "Case.open.msgDlg.updated.msg",
|
||||
db.getBackupDatabasePath()),
|
||||
NbBundle.getMessage(Case.class, "Case.open.msgDlg.updated.title"),
|
||||
JOptionPane.INFORMATION_MESSAGE);
|
||||
}
|
||||
|
||||
checkImagesExist(db);
|
||||
@ -318,10 +336,10 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
CaseCloseAction closeCase = SystemAction.get(CaseCloseAction.class);
|
||||
closeCase.actionPerformed(null);
|
||||
if (!configFilePath.endsWith(CASE_DOT_EXTENSION)) {
|
||||
throw new CaseActionException("Check that you selected the correct case file (usually with "
|
||||
+ CASE_DOT_EXTENSION + " extension)", ex);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(Case.class, "Case.open.exception.checkFile.msg", CASE_DOT_EXTENSION), ex);
|
||||
} else {
|
||||
throw new CaseActionException("Error opening the case", ex);
|
||||
throw new CaseActionException(NbBundle.getMessage(Case.class, "Case.open.exception.gen.msg"), ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -352,11 +370,13 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
boolean fileExists = (pathExists(path)
|
||||
|| driveExists(path));
|
||||
if (!fileExists) {
|
||||
int ret = JOptionPane.showConfirmDialog(null, appName + " has detected that one of the images associated with \n"
|
||||
+ "this case are missing. Would you like to search for them now?\n"
|
||||
+ "Previously, the image was located at:\n" + path
|
||||
+ "\nPlease note that you will still be able to browse directories and generate reports\n"
|
||||
+ "if you choose No, but you will not be able to view file content or run the ingest process.", "Missing Image", JOptionPane.YES_NO_OPTION);
|
||||
int ret = JOptionPane.showConfirmDialog(null,
|
||||
NbBundle.getMessage(Case.class,
|
||||
"Case.checkImgExist.confDlg.doesntExist.msg",
|
||||
appName, path),
|
||||
NbBundle.getMessage(Case.class,
|
||||
"Case.checkImgExist.confDlg.doesntExist.title"),
|
||||
JOptionPane.YES_NO_OPTION);
|
||||
if (ret == JOptionPane.YES_OPTION) {
|
||||
|
||||
MissingImageDialog.makeDialog(obj_id, db);
|
||||
@ -389,12 +409,15 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Case listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "Case.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"Case.changeCase.errListenToCaseUpdates.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
CoreComponentControl.openCoreWindows();
|
||||
return newImage;
|
||||
} catch (Exception ex) {
|
||||
throw new CaseActionException("Error adding image to the case", ex);
|
||||
throw new CaseActionException(NbBundle.getMessage(this.getClass(), "Case.addImg.exception.msg"), ex);
|
||||
}
|
||||
}
|
||||
|
||||
@ -423,7 +446,10 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Case threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "Case.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"Case.changeCase.errListenToCaseUpdates.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
CoreComponentControl.openCoreWindows();
|
||||
}
|
||||
@ -456,7 +482,7 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
this.xmlcm.close(); // close the xmlcm
|
||||
this.db.close();
|
||||
} catch (Exception e) {
|
||||
throw new CaseActionException("Error while trying to close the current case.", e);
|
||||
throw new CaseActionException(NbBundle.getMessage(this.getClass(), "Case.closeCase.exception.msg"), e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -478,11 +504,13 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
RecentCases.getInstance().removeRecentCase(this.name, this.configFilePath); // remove it from the recent case
|
||||
Case.changeCase(null);
|
||||
if (result == false) {
|
||||
throw new CaseActionException("Error deleting the case dir: " + caseDir);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(this.getClass(), "Case.deleteCase.exception.msg", caseDir));
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
logger.log(Level.SEVERE, "Error deleting the current case dir: " + caseDir, ex);
|
||||
throw new CaseActionException("Error deleting the case dir: " + caseDir, ex);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(this.getClass(), "Case.deleteCase.exception.msg2", caseDir), ex);
|
||||
}
|
||||
}
|
||||
|
||||
@ -504,12 +532,15 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Case listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "Case.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"Case.changeCase.errListenToCaseUpdates.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
doCaseNameChange(newCaseName);
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new CaseActionException("Error while trying to update the case name.", e);
|
||||
throw new CaseActionException(NbBundle.getMessage(this.getClass(), "Case.updateCaseName.exception.msg"), e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -528,10 +559,13 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Case listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "Case.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"Case.changeCase.errListenToCaseUpdates.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new CaseActionException("Error while trying to update the examiner.", e);
|
||||
throw new CaseActionException(NbBundle.getMessage(this.getClass(), "Case.updateExaminer.exception.msg"), e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -551,10 +585,13 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Case listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "Case.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"Case.changeCase.errListenToCaseUpdates.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new CaseActionException("Error while trying to update the case number.", e);
|
||||
throw new CaseActionException(NbBundle.getMessage(this.getClass(), "Case.updateCaseNum.exception.msg"), e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -764,7 +801,7 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
try {
|
||||
return db.getRootObjects();
|
||||
} catch (TskException ex) {
|
||||
throw new RuntimeException("Error getting root objects.", ex);
|
||||
throw new RuntimeException(NbBundle.getMessage(this.getClass(), "Case.exception.errGetRootObj"), ex);
|
||||
}
|
||||
}
|
||||
|
||||
@ -919,16 +956,19 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
File caseDirF = new File(caseDir);
|
||||
if (caseDirF.exists()) {
|
||||
if (caseDirF.isFile()) {
|
||||
throw new CaseActionException("Cannot create case dir, already exists and is not a directory: " + caseDir);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.existNotDir", caseDir));
|
||||
} else if (!caseDirF.canRead() || !caseDirF.canWrite()) {
|
||||
throw new CaseActionException("Cannot create case dir, already exists and cannot read/write: " + caseDir);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.existCantRW", caseDir));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
boolean result = (caseDirF).mkdirs(); // create root case Directory
|
||||
if (result == false) {
|
||||
throw new CaseActionException("Cannot create case dir: " + caseDir);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.cantCreate", caseDir));
|
||||
}
|
||||
|
||||
// create the folders inside the case directory
|
||||
@ -938,17 +978,21 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
||||
&& (new File(caseDir + File.separator + XMLCaseManagement.CACHE_FOLDER_RELPATH)).mkdir();
|
||||
|
||||
if (result == false) {
|
||||
throw new CaseActionException("Could not create case directory: " + caseDir);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.cantCreateCaseDir", caseDir));
|
||||
}
|
||||
|
||||
final String modulesOutDir = caseDir + File.separator + getModulesOutputDirRelPath();
|
||||
result = new File(modulesOutDir).mkdir();
|
||||
if (result == false) {
|
||||
throw new CaseActionException("Could not create modules output directory: " + modulesOutDir);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.cantCreateModDir",
|
||||
modulesOutDir));
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new CaseActionException("Could not create case directory: " + caseDir, e);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.gen", caseDir), e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -99,8 +99,11 @@ import org.openide.util.actions.CallableSystemAction;
|
||||
}
|
||||
else{
|
||||
// show the confirmation first to close the current case and open the "New Case" wizard panel
|
||||
String closeCurrentCase = "Are you sure want to close and delete this case? \n Case Name: " + caseName + "\n Case Directory: "+ caseFolder.getPath();
|
||||
NotifyDescriptor d = new NotifyDescriptor.Confirmation(closeCurrentCase, "Warning: Closing the Current Case", NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||
String closeCurrentCase = NbBundle.getMessage(this.getClass(), "CaseDeleteAction.closeConfMsg.text", caseName, caseFolder.getPath());
|
||||
NotifyDescriptor d = new NotifyDescriptor.Confirmation(closeCurrentCase,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"CaseDeleteAction.closeConfMsg.title"),
|
||||
NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||
d.setValue(NotifyDescriptor.NO_OPTION);
|
||||
|
||||
Object res = DialogDisplayer.getDefault().notify(d);
|
||||
@ -116,11 +119,18 @@ import org.openide.util.actions.CallableSystemAction;
|
||||
|
||||
// show notification whether the case has been deleted or it failed to delete...
|
||||
if(!success){
|
||||
JOptionPane.showMessageDialog(caller, "The delete action can't be fully completed because the folder or file in it is open by another program.\n \nClose the folder and file and try again or you can delete the case manually.", "Error: Folder In Use", JOptionPane.ERROR_MESSAGE); // throw an error
|
||||
JOptionPane.showMessageDialog(caller,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"CaseDeleteAction.msgDlg.fileInUse.msg"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"CaseDeleteAction.msgDlg.fileInUse.title"),
|
||||
JOptionPane.ERROR_MESSAGE); // throw an error
|
||||
}
|
||||
else{
|
||||
CasePropertiesAction.closeCasePropertiesWindow(); // because the "Delete Case" button is in the "CaseProperties" window, we have to close that window when we delete the case.
|
||||
JOptionPane.showMessageDialog(caller, "Case " + caseName + " has been deleted.");
|
||||
JOptionPane.showMessageDialog(caller, NbBundle.getMessage(this.getClass(),
|
||||
"CaseDeleteAction.msgDlg.caseDelete.msg",
|
||||
caseName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -22,15 +22,17 @@ import java.awt.Component;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.filechooser.FileFilter;
|
||||
import javax.swing.filechooser.FileNameExtensionFilter;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.ServiceProvider;
|
||||
import org.sleuthkit.autopsy.coreutils.ModuleSettings;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.coreutils.Version;
|
||||
|
||||
/**
|
||||
* The action to open a existing case. This class is always enabled.
|
||||
@ -47,8 +49,9 @@ public final class CaseOpenAction implements ActionListener {
|
||||
* The constructor
|
||||
*/
|
||||
public CaseOpenAction() {
|
||||
autFilter = new FileNameExtensionFilter(org.sleuthkit.autopsy.coreutils.Version.getName()
|
||||
+ " Case File ( " + Case.CASE_DOT_EXTENSION + ")",
|
||||
autFilter = new FileNameExtensionFilter(
|
||||
NbBundle.getMessage(CaseOpenAction.class, "CaseOpenAction.autFilter.title", Version.getName(),
|
||||
Case.CASE_DOT_EXTENSION),
|
||||
Case.CASE_EXTENSION);
|
||||
fc.setDragEnabled(false);
|
||||
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
|
||||
@ -80,7 +83,12 @@ public final class CaseOpenAction implements ActionListener {
|
||||
ModuleSettings.setConfigSetting(ModuleSettings.MAIN_SETTINGS, PROP_BASECASE, dirPath.substring(0, dirPath.lastIndexOf(File.separator)));
|
||||
// check if the file exists
|
||||
if (!new File(path).exists()) {
|
||||
JOptionPane.showMessageDialog(null, "Error: File doesn't exist.", "Error", JOptionPane.ERROR_MESSAGE);
|
||||
JOptionPane.showMessageDialog(null,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"CaseOpenAction.msgDlg.fileNotExist.msg"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"CaseOpenAction.msgDlg.fileNotExist.title"),
|
||||
JOptionPane.ERROR_MESSAGE);
|
||||
this.actionPerformed(e); // show the dialog box again
|
||||
} else {
|
||||
// try to close Startup window if there's one
|
||||
@ -93,8 +101,13 @@ public final class CaseOpenAction implements ActionListener {
|
||||
try {
|
||||
Case.open(path); // open the case
|
||||
} catch (CaseActionException ex) {
|
||||
JOptionPane.showMessageDialog(null, "Error: could not open the case in folder " + path
|
||||
+ ": " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
|
||||
JOptionPane.showMessageDialog(null,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"CaseOpenAction.msgDlg.cantOpenCase.msg", path,
|
||||
ex.getMessage()),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"CaseOpenAction.msgDlg.cantOpenCase.title"),
|
||||
JOptionPane.ERROR_MESSAGE);
|
||||
logger.log(Level.WARNING, "Error opening case in folder " + path, ex);
|
||||
|
||||
StartupWindowProvider.getInstance().open();
|
||||
|
@ -62,7 +62,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
|
||||
try {
|
||||
// create the popUp window for it
|
||||
String title = "Case Properties";
|
||||
String title = NbBundle.getMessage(this.getClass(), "CasePropertiesAction.window.title");
|
||||
final JFrame frame = new JFrame(title);
|
||||
popUpWindow = new JDialog(frame, title, true); // to make the popUp Window to be modal
|
||||
|
||||
|
@ -27,9 +27,10 @@ package org.sleuthkit.autopsy.casemodule;
|
||||
|
||||
import java.awt.event.ActionListener;
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
@ -365,7 +366,12 @@ class CasePropertiesForm extends javax.swing.JPanel{
|
||||
|
||||
// check if the case name is empty
|
||||
if(newCaseName.trim().equals("")){
|
||||
JOptionPane.showMessageDialog(caller, "The caseName cannot be empty.", "Error", JOptionPane.ERROR_MESSAGE);
|
||||
JOptionPane.showMessageDialog(caller,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"CasePropertiesForm.updateCaseName.msgDlg.empty.msg"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"CasePropertiesForm.updateCaseName.msgDlg.empty.title"),
|
||||
JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
else{
|
||||
// check if case Name contain one of this following symbol:
|
||||
@ -373,13 +379,22 @@ class CasePropertiesForm extends javax.swing.JPanel{
|
||||
if(newCaseName.contains("\\") || newCaseName.contains("/") || newCaseName.contains(":") ||
|
||||
newCaseName.contains("*") || newCaseName.contains("?") || newCaseName.contains("\"") ||
|
||||
newCaseName.contains("<") || newCaseName.contains(">") || newCaseName.contains("|")){
|
||||
String errorMsg = "The Case Name cannot contain any of this following symbol: \\ / : * ? \" < > |";
|
||||
JOptionPane.showMessageDialog(caller, errorMsg, "Error", JOptionPane.ERROR_MESSAGE);
|
||||
String errorMsg = NbBundle
|
||||
.getMessage(this.getClass(), "CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.msg");
|
||||
JOptionPane.showMessageDialog(caller, errorMsg,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.title"),
|
||||
JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
else{
|
||||
// ask for the confirmation first
|
||||
String confMsg = "Are you sure want to update the case name from \"" + oldCaseName + "\" to \"" + newCaseName + "\"?";
|
||||
NotifyDescriptor d = new NotifyDescriptor.Confirmation(confMsg, "Create directory", NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||
String confMsg = NbBundle
|
||||
.getMessage(this.getClass(), "CasePropertiesForm.updateCaseName.confMsg.msg", oldCaseName,
|
||||
newCaseName);
|
||||
NotifyDescriptor d = new NotifyDescriptor.Confirmation(confMsg,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"CasePropertiesForm.updateCaseName.confMsg.title"),
|
||||
NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||
d.setValue(NotifyDescriptor.NO_OPTION);
|
||||
|
||||
Object res = DialogDisplayer.getDefault().notify(d);
|
||||
|
@ -29,13 +29,14 @@ import javax.swing.JDialog;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
import org.openide.util.Lookup;
|
||||
import org.openide.util.NbBundle;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class CueBannerPanel extends javax.swing.JPanel {
|
||||
|
||||
final private static String title = "Open Recent Case";
|
||||
final private static String title = NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.title.text");
|
||||
final private static JFrame frame = new JFrame(title);
|
||||
final static JDialog recentCasesWindow = new JDialog(frame, title, true); // to make the popUp Window to be modal
|
||||
|
||||
|
@ -19,6 +19,8 @@
|
||||
|
||||
package org.sleuthkit.autopsy.casemodule;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
@ -32,10 +34,10 @@ public class GeneralFilter extends FileFilter{
|
||||
|
||||
// Extensions & Descriptions for commonly used filters
|
||||
public static final List<String> RAW_IMAGE_EXTS = Arrays.asList(new String[]{".img", ".dd", ".001", ".aa", ".raw", ".bin"});
|
||||
public static final String RAW_IMAGE_DESC = "Raw Images (*.img, *.dd, *.001, *.aa, *.raw, *.bin)";
|
||||
public static final String RAW_IMAGE_DESC = NbBundle.getMessage(GeneralFilter.class, "GeneralFilter.rawImageDesc.text");
|
||||
|
||||
public static final List<String> ENCASE_IMAGE_EXTS = Arrays.asList(new String[]{".e01"});
|
||||
public static final String ENCASE_IMAGE_DESC = "Encase Images (*.e01)";
|
||||
public static final String ENCASE_IMAGE_DESC = NbBundle.getMessage(GeneralFilter.class, "GeneralFilter.encaseImageDesc.text");
|
||||
|
||||
|
||||
|
||||
|
@ -22,6 +22,8 @@ import javax.swing.JPanel;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.swing.filechooser.FileFilter;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.ServiceProvider;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor;
|
||||
@ -41,7 +43,7 @@ public class ImageDSProcessor implements DataSourceProcessor {
|
||||
static final Logger logger = Logger.getLogger(ImageDSProcessor.class.getName());
|
||||
|
||||
// Data source type handled by this processor
|
||||
private final static String dsType = "Image File";
|
||||
private final static String dsType = NbBundle.getMessage(ImageDSProcessor.class, "ImageDSProcessor.dsType.text");
|
||||
|
||||
// The Config UI panel that plugins into the Choose Data Source Wizard
|
||||
private final ImageFilePanel imageFilePanel;
|
||||
@ -70,7 +72,7 @@ public class ImageDSProcessor implements DataSourceProcessor {
|
||||
allExt.addAll(GeneralFilter.RAW_IMAGE_EXTS);
|
||||
allExt.addAll(GeneralFilter.ENCASE_IMAGE_EXTS);
|
||||
}
|
||||
static final String allDesc = "All Supported Types";
|
||||
static final String allDesc = NbBundle.getMessage(ImageDSProcessor.class, "ImageDSProcessor.allDesc.text");
|
||||
static final GeneralFilter allFilter = new GeneralFilter(allExt, allDesc);
|
||||
|
||||
static final List<FileFilter> filtersList = new ArrayList<>();
|
||||
|
@ -21,8 +21,6 @@ package org.sleuthkit.autopsy.casemodule;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.beans.PropertyChangeSupport;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.SimpleTimeZone;
|
||||
@ -32,6 +30,8 @@ import javax.swing.event.DocumentEvent;
|
||||
import javax.swing.event.DocumentListener;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.filechooser.FileFilter;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor;
|
||||
import org.sleuthkit.autopsy.coreutils.ModuleSettings;
|
||||
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
|
||||
@ -202,7 +202,9 @@ public class ImageFilePanel extends JPanel implements DocumentListener {
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "ImageFilePanel listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to ImageFilePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
}//GEN-LAST:event_browseButtonActionPerformed
|
||||
|
||||
@ -330,7 +332,9 @@ public class ImageFilePanel extends JPanel implements DocumentListener {
|
||||
}
|
||||
catch (Exception ee) {
|
||||
logger.log(Level.SEVERE, "ImageFilePanel listener threw exception", ee);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to ImageFilePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@ -341,7 +345,9 @@ public class ImageFilePanel extends JPanel implements DocumentListener {
|
||||
}
|
||||
catch (Exception ee) {
|
||||
logger.log(Level.SEVERE, "ImageFilePanel listener threw exception", ee);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to ImageFilePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@ -353,7 +359,9 @@ public class ImageFilePanel extends JPanel implements DocumentListener {
|
||||
}
|
||||
catch (Exception ee) {
|
||||
logger.log(Level.SEVERE, "ImageFilePanel listener threw exception", ee);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to ImageFilePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,8 @@
|
||||
package org.sleuthkit.autopsy.casemodule;
|
||||
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.ServiceProvider;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorCallback;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor;
|
||||
@ -33,7 +35,7 @@ public class LocalDiskDSProcessor implements DataSourceProcessor {
|
||||
static final Logger logger = Logger.getLogger(ImageDSProcessor.class.getName());
|
||||
|
||||
// Data source type handled by this processor
|
||||
private static final String dsType = "Local Disk";
|
||||
private static final String dsType = NbBundle.getMessage(LocalDiskDSProcessor.class, "LocalDiskDSProcessor.dsType.text");
|
||||
|
||||
// The Config UI panel that plugins into the Choose Data Source Wizard
|
||||
private final LocalDiskPanel localDiskPanel;
|
||||
|
@ -18,6 +18,7 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.casemodule;
|
||||
|
||||
import org.sleuthkit.autopsy.coreutils.LocalDisk;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
@ -40,6 +41,8 @@ import javax.swing.ListCellRenderer;
|
||||
import javax.swing.SwingWorker;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import javax.swing.event.ListDataListener;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
|
||||
@ -297,7 +300,7 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
|
||||
List<LocalDisk> partitions = new ArrayList<LocalDisk>();
|
||||
|
||||
//private String SELECT = "Select a local disk:";
|
||||
private String LOADING = "Loading local disks...";
|
||||
private String LOADING = NbBundle.getMessage(this.getClass(), "LocalDiskPanel.localDiskModel.loading.msg");
|
||||
LocalDiskThread worker = null;
|
||||
|
||||
|
||||
@ -335,7 +338,9 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "LocalDiskPanel listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to LocalDiskPanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "LocalDiskPanel.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(), "LocalDiskPanel.moduleErr.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -409,16 +414,22 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
|
||||
private void displayErrors() {
|
||||
if(physical.isEmpty() && partitions.isEmpty()) {
|
||||
if(PlatformUtil.isWindowsOS()) {
|
||||
errorLabel.setText("Disks were not detected. On some systems it requires admin privileges (or \"Run as administrator\").");
|
||||
errorLabel.setToolTipText("Disks were not detected. On some systems it requires admin privileges (or \"Run as administrator\").");
|
||||
errorLabel.setText(
|
||||
NbBundle.getMessage(this.getClass(), "LocalDiskPanel.errLabel.disksNotDetected.text"));
|
||||
errorLabel.setToolTipText(NbBundle.getMessage(this.getClass(),
|
||||
"LocalDiskPanel.errLabel.disksNotDetected.toolTipText"));
|
||||
} else {
|
||||
errorLabel.setText("Local drives were not detected. Auto-detection not supported on this OS or admin privileges required");
|
||||
errorLabel.setToolTipText("Local drives were not detected. Auto-detection not supported on this OS or admin privileges required");
|
||||
errorLabel.setText(
|
||||
NbBundle.getMessage(this.getClass(), "LocalDiskPanel.errLabel.drivesNotDetected.text"));
|
||||
errorLabel.setToolTipText(NbBundle.getMessage(this.getClass(),
|
||||
"LocalDiskPanel.errLabel.drivesNotDetected.toolTipText"));
|
||||
}
|
||||
diskComboBox.setEnabled(false);
|
||||
} else if(physical.isEmpty()) {
|
||||
errorLabel.setText("Some disks were not detected. On some systems it requires admin privileges (or \"Run as administrator\").");
|
||||
errorLabel.setToolTipText("Some disks were not detected. On some systems it requires admin privileges (or \"Run as administrator\").");
|
||||
errorLabel.setText(
|
||||
NbBundle.getMessage(this.getClass(), "LocalDiskPanel.errLabel.someDisksNotDetected.text"));
|
||||
errorLabel.setToolTipText(NbBundle.getMessage(this.getClass(),
|
||||
"LocalDiskPanel.errLabel.someDisksNotDetected.toolTipText"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,8 @@
|
||||
package org.sleuthkit.autopsy.casemodule;
|
||||
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.ServiceProvider;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorCallback;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor;
|
||||
@ -32,7 +34,7 @@ public class LocalFilesDSProcessor implements DataSourceProcessor {
|
||||
static final Logger logger = Logger.getLogger(LocalFilesDSProcessor.class.getName());
|
||||
|
||||
// Data source type handled by this processor
|
||||
private static final String dsType = "Logical Files";
|
||||
private static final String dsType = NbBundle.getMessage(LocalFilesDSProcessor.class, "LocalFilesDSProcessor.dsType");
|
||||
|
||||
// The Config UI panel that plugins into the Choose Data Source Wizard
|
||||
private final LocalFilesPanel localFilesPanel;
|
||||
|
@ -25,6 +25,8 @@ import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor;
|
||||
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
|
||||
import java.util.logging.Level;
|
||||
@ -84,7 +86,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
|
||||
//@Override
|
||||
public String getContentType() {
|
||||
return "LOCAL";
|
||||
return NbBundle.getMessage(this.getClass(), "LocalFilesPanel.contentType.text");
|
||||
}
|
||||
|
||||
//@Override
|
||||
@ -127,7 +129,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Logical Files";
|
||||
return NbBundle.getMessage(this.getClass(), "LocalFilesDSProcessor.toString.text");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -242,7 +244,9 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "LocalFilesPanel listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to LocalFilesPanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "LocalFilesPanel.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(), "LocalFilesPanel.moduleErr.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
}//GEN-LAST:event_selectButtonActionPerformed
|
||||
|
||||
|
@ -31,6 +31,8 @@ import java.io.File;
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.casemodule.GeneralFilter;
|
||||
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
@ -54,7 +56,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
allExt.addAll(GeneralFilter.RAW_IMAGE_EXTS);
|
||||
allExt.addAll(GeneralFilter.ENCASE_IMAGE_EXTS);
|
||||
}
|
||||
static final String allDesc = "All Supported Types";
|
||||
static final String allDesc = NbBundle.getMessage(MissingImageDialog.class, "MissingImageDialog.allDesc.text");
|
||||
static final GeneralFilter allFilter = new GeneralFilter(allExt, allDesc);
|
||||
|
||||
private JFileChooser fc = new JFileChooser();
|
||||
@ -100,7 +102,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
}
|
||||
|
||||
private void display() {
|
||||
this.setTitle("Search for Missing Image");
|
||||
this.setTitle(NbBundle.getMessage(this.getClass(), "MissingImageDialog.display.title"));
|
||||
Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
|
||||
// set the popUp window / JFrame
|
||||
int w = this.getSize().width;
|
||||
@ -316,9 +318,11 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
//
|
||||
void cancel() {
|
||||
int ret = JOptionPane.showConfirmDialog(null,
|
||||
"No image file has been selected, are you sure you\n" +
|
||||
"would like to exit without finding the image.",
|
||||
"Missing Image", JOptionPane.YES_NO_OPTION);
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"MissingImageDialog.confDlg.noFileSel.msg"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"MissingImageDialog.confDlg.noFileSel.title"),
|
||||
JOptionPane.YES_NO_OPTION);
|
||||
if (ret == JOptionPane.YES_OPTION) {
|
||||
this.dispose();
|
||||
}
|
||||
|
@ -19,6 +19,8 @@
|
||||
|
||||
package org.sleuthkit.autopsy.casemodule;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.io.File;
|
||||
import javax.swing.JFileChooser;
|
||||
@ -52,7 +54,7 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener{
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Case Info";
|
||||
return NbBundle.getMessage(this.getClass(), "NewCaseVisualPanel1.getName.text");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -179,7 +181,8 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener{
|
||||
//fc.setSelectedFile(new File("C:\\Program Files\\"));
|
||||
//disableTextField(fc); // disable all the text field on the file chooser
|
||||
|
||||
int returnValue = fc.showDialog((Component)evt.getSource(), "Select");
|
||||
int returnValue = fc.showDialog((Component)evt.getSource(), NbBundle.getMessage(this.getClass(),
|
||||
"NewCaseVisualPanel1.caseDirBrowse.selectButton.text"));
|
||||
if(returnValue == JFileChooser.APPROVE_OPTION){
|
||||
String path = fc.getSelectedFile().getPath();
|
||||
caseParentDirTextField.setText(path); // put the path to the textfield
|
||||
|
@ -24,6 +24,8 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.casemodule;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author dfickling
|
||||
@ -43,7 +45,7 @@ package org.sleuthkit.autopsy.casemodule;
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Additional Information";
|
||||
return NbBundle.getMessage(this.getClass(), "NewCaseVisualPanel2.getName.text");
|
||||
}
|
||||
|
||||
/** This method is called from within the constructor to
|
||||
|
@ -31,6 +31,7 @@ import org.openide.DialogDisplayer;
|
||||
import org.openide.NotifyDescriptor;
|
||||
import org.openide.WizardDescriptor;
|
||||
import org.openide.util.HelpCtx;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.actions.CallableSystemAction;
|
||||
import org.openide.util.actions.SystemAction;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
@ -52,8 +53,12 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
// there's a case open
|
||||
if (Case.existsCurrentCase()) {
|
||||
// show the confirmation first to close the current case and open the "New Case" wizard panel
|
||||
String closeCurrentCase = "Do you want to save and close this case and proceed with the new case creation?";
|
||||
NotifyDescriptor d = new NotifyDescriptor.Confirmation(closeCurrentCase, "Warning: Closing the Current Case", NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||
String closeCurrentCase = NbBundle
|
||||
.getMessage(this.getClass(), "NewCaseWizardAction.closeCurCase.confMsg.msg");
|
||||
NotifyDescriptor d = new NotifyDescriptor.Confirmation(closeCurrentCase,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"NewCaseWizardAction.closeCurCase.confMsg.title"),
|
||||
NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||
d.setValue(NotifyDescriptor.NO_OPTION);
|
||||
|
||||
Object res = DialogDisplayer.getDefault().notify(d);
|
||||
@ -77,7 +82,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
WizardDescriptor wizardDescriptor = new WizardDescriptor(getPanels());
|
||||
// {0} will be replaced by WizardDesriptor.Panel.getComponent().getName()
|
||||
wizardDescriptor.setTitleFormat(new MessageFormat("{0}"));
|
||||
wizardDescriptor.setTitle("New Case Information");
|
||||
wizardDescriptor.setTitle(NbBundle.getMessage(this.getClass(), "NewCaseWizardAction.newCase.windowTitle.text"));
|
||||
Dialog dialog = DialogDisplayer.getDefault().createDialog(wizardDescriptor);
|
||||
dialog.setVisible(true);
|
||||
dialog.toFront();
|
||||
@ -149,7 +154,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "New Case Wizard";
|
||||
return NbBundle.getMessage(this.getClass(), "NewCaseWizardAction.getName.text");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -23,6 +23,8 @@ import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
@ -205,13 +207,15 @@ class NewCaseWizardPanel1 implements WizardDescriptor.ValidatingPanel<WizardDesc
|
||||
// check if case Name contain one of this following symbol:
|
||||
// \ / : * ? " < > |
|
||||
if (!Case.isValidName(caseName)) {
|
||||
String errorMsg = "The Case Name cannot contain any of the following symbols: \\ / : * ? \" < > |";
|
||||
String errorMsg = NbBundle
|
||||
.getMessage(this.getClass(), "NewCaseWizardPanel1.validate.errMsg.invalidSymbols");
|
||||
validationError(errorMsg);
|
||||
} else {
|
||||
// check if the directory exist
|
||||
if (new File(caseDirPath).exists()) {
|
||||
// throw a warning to enter new data or delete the existing directory
|
||||
String errorMsg = "Case directory '" + caseDirPath + "' already exists.";
|
||||
String errorMsg = NbBundle
|
||||
.getMessage(this.getClass(), "NewCaseWizardPanel1.validate.errMsg.dirExists", caseDirPath);
|
||||
validationError(errorMsg);
|
||||
} else {
|
||||
// check if the "base" directory path is absolute
|
||||
@ -220,8 +224,13 @@ class NewCaseWizardPanel1 implements WizardDescriptor.ValidatingPanel<WizardDesc
|
||||
// when the base directory doesn't exist
|
||||
if (!baseDir.exists()) {
|
||||
// get confirmation to create directory
|
||||
String confMsg = "The base directory \'" + caseParentDir + "\' doesn't exist. \n \n Do you want to create that directory?";
|
||||
NotifyDescriptor d2 = new NotifyDescriptor.Confirmation(confMsg, "Create directory", NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||
String confMsg = NbBundle
|
||||
.getMessage(this.getClass(), "NewCaseWizardPanel1.validate.confMsg.createDir.msg",
|
||||
caseParentDir);
|
||||
NotifyDescriptor d2 = new NotifyDescriptor.Confirmation(confMsg,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"NewCaseWizardPanel1.validate.confMsg.createDir.title"),
|
||||
NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
|
||||
d2.setValue(NotifyDescriptor.NO_OPTION);
|
||||
|
||||
Object res2 = DialogDisplayer.getDefault().notify(d2);
|
||||
@ -230,27 +239,33 @@ class NewCaseWizardPanel1 implements WizardDescriptor.ValidatingPanel<WizardDesc
|
||||
try {
|
||||
createDirectory(caseDirPath);
|
||||
} catch (Exception ex) {
|
||||
String errorMsg = "Error: Couldn't create case parent directory " + caseParentDir;
|
||||
String errorMsg = NbBundle.getMessage(this.getClass(),
|
||||
"NewCaseWizardPanel1.validate.errMsg.cantCreateParDir.msg",
|
||||
caseParentDir);
|
||||
logger.log(Level.WARNING, errorMsg, ex);
|
||||
validationError(errorMsg);
|
||||
}
|
||||
}
|
||||
if (res2 != null && res2 == DialogDescriptor.NO_OPTION) {
|
||||
// if user say no
|
||||
validationError("Prevented from creating base directory " + caseDirPath );
|
||||
validationError(NbBundle.getMessage(this.getClass(),
|
||||
"NewCaseWizardPanel1.validate.errMsg.prevCreateBaseDir.msg",
|
||||
caseDirPath) );
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
createDirectory(caseDirPath);
|
||||
} catch (Exception ex) {
|
||||
String errorMsg = "Error: Couldn't create directory.";
|
||||
String errorMsg = NbBundle
|
||||
.getMessage(this.getClass(), "NewCaseWizardPanel1.validate.errMsg.cantCreateDir");
|
||||
logger.log(Level.WARNING, errorMsg, ex);
|
||||
validationError(errorMsg);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// throw a notification
|
||||
String errorMsg = "ERROR: The Base Directory that you entered is not valid.\nPlease enter a valid Base Directory.";
|
||||
String errorMsg = NbBundle
|
||||
.getMessage(this.getClass(), "NewCaseWizardPanel1.validate.errMsg.invalidBaseDir.msg");
|
||||
validationError(errorMsg);
|
||||
}
|
||||
}
|
||||
@ -282,7 +297,8 @@ class NewCaseWizardPanel1 implements WizardDescriptor.ValidatingPanel<WizardDesc
|
||||
Case.deleteCaseDirectory(new File(caseDirPath));
|
||||
}
|
||||
|
||||
String errorMsg = "ERROR: Could not create the case directory. \nPlease enter a valid Case Name and Directory.";
|
||||
String errorMsg = NbBundle.getMessage(this.getClass(),
|
||||
"NewCaseWizardPanel1.createDir.errMsg.cantCreateDir.msg");
|
||||
|
||||
validationError(errorMsg);
|
||||
|
||||
|
@ -29,6 +29,7 @@ import org.openide.WizardDescriptor;
|
||||
import org.openide.WizardValidationException;
|
||||
import org.openide.util.Exceptions;
|
||||
import org.openide.util.HelpCtx;
|
||||
import org.openide.util.NbBundle;
|
||||
|
||||
/**
|
||||
* The "New Case" wizard panel with a component on it. This class represents
|
||||
@ -190,7 +191,10 @@ class NewCaseWizardPanel2 implements WizardDescriptor.ValidatingPanel<WizardDesc
|
||||
|
||||
//Case.create(createdDirectory, caseName, caseNumber, examiner);
|
||||
} catch(Exception ex) {
|
||||
throw new WizardValidationException(this.getComponent(), "Error creating case", null);
|
||||
throw new WizardValidationException(this.getComponent(),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"NewCaseWizardPanel2.validate.errCreateCase.msg"),
|
||||
null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,8 @@ import java.util.logging.Level;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.table.AbstractTableModel;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
|
||||
/**
|
||||
@ -198,7 +200,13 @@ class OpenRecentCasePanel extends javax.swing.JPanel {
|
||||
// Open the recent cases
|
||||
try {
|
||||
if (caseName.equals("") || casePath.equals("") || (!new File(casePath).exists())) {
|
||||
JOptionPane.showMessageDialog(null, "Error: Case " + caseName + " doesn't exist.", "Error", JOptionPane.ERROR_MESSAGE);
|
||||
JOptionPane.showMessageDialog(null,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"OpenRecentCasePanel.openCase.msgDlg.caseDoesntExist.msg",
|
||||
caseName),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"OpenRecentCasePanel.openCase.msgDlg.err"),
|
||||
JOptionPane.ERROR_MESSAGE);
|
||||
RecentCases.getInstance().removeRecentCase(caseName, casePath); // remove the recent case if it doesn't exist anymore
|
||||
|
||||
//if case is not opened, open the start window
|
||||
@ -258,10 +266,10 @@ class OpenRecentCasePanel extends javax.swing.JPanel {
|
||||
|
||||
switch (column) {
|
||||
case 0:
|
||||
colName = "Case Name";
|
||||
colName = NbBundle.getMessage(this.getClass(), "OpenRecentCasePanel.colName.caseName");
|
||||
break;
|
||||
case 1:
|
||||
colName = "Path";
|
||||
colName = NbBundle.getMessage(this.getClass(), "OpenRecentCasePanel.colName.path");
|
||||
break;
|
||||
default:
|
||||
;
|
||||
|
@ -31,6 +31,7 @@ import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.JMenuItem;
|
||||
import org.openide.util.HelpCtx;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.actions.CallableSystemAction;
|
||||
import org.openide.util.actions.Presenter;
|
||||
import org.openide.filesystems.FileUtil;
|
||||
@ -96,7 +97,8 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
|
||||
private static void validateCaseIndex(int i) {
|
||||
if (i < 0 || i >= LENGTH) {
|
||||
throw new IllegalArgumentException("Recent case index " + i + " is out of range.");
|
||||
throw new IllegalArgumentException(
|
||||
NbBundle.getMessage(RecentCases.class, "RecentCases.exception.caseIdxOutOfRange.msg", i));
|
||||
}
|
||||
}
|
||||
|
||||
@ -419,7 +421,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
@Override
|
||||
public String getName() {
|
||||
//return NbBundle.getMessage(RecentCases.class, "CTL_RecentCases");
|
||||
return "Clear Recent Cases";
|
||||
return NbBundle.getMessage(this.getClass(), "RecentCases.getName.text");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -26,6 +26,8 @@ import java.io.File;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
|
||||
/**
|
||||
@ -56,7 +58,11 @@ class RecentItems implements ActionListener {
|
||||
// check if the file exists
|
||||
if(caseName.equals("") || casePath.equals("") || (!new File(casePath).exists())){
|
||||
// throw an error here
|
||||
JOptionPane.showMessageDialog(caller, "Error: Case " + caseName + " doesn't exist.", "Error", JOptionPane.ERROR_MESSAGE);
|
||||
JOptionPane.showMessageDialog(caller,
|
||||
NbBundle.getMessage(this.getClass(), "RecentItems.openRecentCase.msgDlg.text",
|
||||
caseName),
|
||||
NbBundle.getMessage(this.getClass(), "RecentItems.openRecentCase.msgDlg.err"),
|
||||
JOptionPane.ERROR_MESSAGE);
|
||||
RecentCases.getInstance().removeRecentCase(caseName, casePath); // remove the recent case if it doesn't exist anymore
|
||||
|
||||
//if case is not opened, open the start window
|
||||
|
@ -26,6 +26,8 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JFrame;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.ServiceProvider;
|
||||
|
||||
/**
|
||||
@ -35,7 +37,7 @@ import org.openide.util.lookup.ServiceProvider;
|
||||
public final class StartupWindow extends JDialog implements StartupWindowInterface {
|
||||
|
||||
private static StartupWindow instance;
|
||||
private static final String TITLE = "Welcome";
|
||||
private static final String TITLE = NbBundle.getMessage(StartupWindow.class, "StartupWindow.title.text");
|
||||
private static Dimension DIMENSIONS = new Dimension(750, 400);
|
||||
|
||||
public StartupWindow() {
|
||||
|
@ -23,6 +23,7 @@ import javax.swing.JComponent;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JSeparator;
|
||||
import org.openide.awt.DynamicMenuContent;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.actions.SystemAction;
|
||||
|
||||
/**
|
||||
@ -66,14 +67,15 @@ import org.openide.util.actions.SystemAction;
|
||||
// if it has recent case, create clear menu
|
||||
if(hasRecentCase){
|
||||
comps[length] = new JSeparator();
|
||||
JMenuItem clearMenu = new JMenuItem("Clear Recent Cases");
|
||||
JMenuItem clearMenu = new JMenuItem(
|
||||
NbBundle.getMessage(this.getClass(), "UpdateRecentCases.menuItem.clearRecentCases.text"));
|
||||
clearMenu.addActionListener(SystemAction.get(RecentCases.class));
|
||||
comps[length+1] = clearMenu;
|
||||
}
|
||||
// otherwise, just create a disabled empty menu
|
||||
else{
|
||||
comps = new JComponent[1];
|
||||
JMenuItem emptyMenu = new JMenuItem("-Empty-");
|
||||
JMenuItem emptyMenu = new JMenuItem(NbBundle.getMessage(this.getClass(), "UpdateRecentCases.menuItem.empty"));
|
||||
emptyMenu.addActionListener(new RecentItems("", ""));
|
||||
comps[0] = emptyMenu;
|
||||
comps[0].setEnabled(false);
|
||||
|
@ -30,6 +30,7 @@ import javax.xml.transform.*;
|
||||
import javax.xml.transform.dom.*;
|
||||
import javax.xml.transform.stream.*;
|
||||
import org.openide.util.Exceptions;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.coreutils.XMLUtil;
|
||||
import org.w3c.dom.*;
|
||||
@ -458,7 +459,8 @@ import org.xml.sax.SAXException;
|
||||
docBuilder = docFactory.newDocumentBuilder();
|
||||
} catch (ParserConfigurationException ex) {
|
||||
clear();
|
||||
throw new CaseActionException("Error setting up Case XML file, ", ex);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(this.getClass(), "XMLCaseManagement.create.exception.msg"), ex);
|
||||
}
|
||||
|
||||
doc = docBuilder.newDocument();
|
||||
@ -531,7 +533,8 @@ import org.xml.sax.SAXException;
|
||||
@Override
|
||||
public void writeFile() throws CaseActionException {
|
||||
if (doc == null || caseName.equals("")) {
|
||||
throw new CaseActionException("No set case to write management file for.");
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(this.getClass(), "XMLCaseManagement.writeFile.exception.noCase.msg"));
|
||||
}
|
||||
|
||||
// Prepare the DOM document for writing
|
||||
@ -549,7 +552,8 @@ import org.xml.sax.SAXException;
|
||||
xformer = tfactory.newTransformer();
|
||||
} catch (TransformerConfigurationException ex) {
|
||||
logger.log(Level.SEVERE, "Could not setup tranformer and write case file");
|
||||
throw new CaseActionException("Error writing to case file", ex);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(this.getClass(), "XMLCaseManagement.writeFile.exception.errWriteToFile.msg"), ex);
|
||||
}
|
||||
|
||||
//Setup indenting to "pretty print"
|
||||
@ -560,7 +564,8 @@ import org.xml.sax.SAXException;
|
||||
xformer.transform(source, result);
|
||||
} catch (TransformerException ex) {
|
||||
logger.log(Level.SEVERE, "Could not run tranformer and write case file");
|
||||
throw new CaseActionException("Error writing to case file", ex);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(this.getClass(), "XMLCaseManagement.writeFile.exception.errWriteToFile.msg"), ex);
|
||||
}
|
||||
|
||||
// preparing the output file
|
||||
@ -597,11 +602,17 @@ import org.xml.sax.SAXException;
|
||||
db = dbf.newDocumentBuilder();
|
||||
doc = db.parse(file);
|
||||
} catch (ParserConfigurationException ex) {
|
||||
throw new CaseActionException("Error reading case XML file: " + conFilePath, ex);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(this.getClass(), "XMLCaseManagement.open.exception.errReadXMLFile.msg",
|
||||
conFilePath), ex);
|
||||
} catch (SAXException ex) {
|
||||
throw new CaseActionException("Error reading case XML file: " + conFilePath, ex);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(this.getClass(), "XMLCaseManagement.open.exception.errReadXMLFile.msg",
|
||||
conFilePath), ex);
|
||||
} catch (IOException ex) {
|
||||
throw new CaseActionException("Error reading case XML file: " + conFilePath, ex);
|
||||
throw new CaseActionException(
|
||||
NbBundle.getMessage(this.getClass(), "XMLCaseManagement.open.exception.errReadXMLFile.msg",
|
||||
conFilePath), ex);
|
||||
}
|
||||
|
||||
|
||||
@ -619,7 +630,13 @@ import org.xml.sax.SAXException;
|
||||
if (!rootName.equals(TOP_ROOT_NAME)) {
|
||||
// throw an error ...
|
||||
clear();
|
||||
JOptionPane.showMessageDialog(caller, "Error: This is not an Autopsy config file (\"" + file.getName() + "\").\n \nDetail: \nCannot open a non-Autopsy config file (at " + className + ").", "Error", JOptionPane.ERROR_MESSAGE);
|
||||
JOptionPane.showMessageDialog(caller,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"XMLCaseManagement.open.msgDlg.notAutCase.msg",
|
||||
file.getName(), className),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"XMLCaseManagement.open.msgDlg.notAutCase.title"),
|
||||
JOptionPane.ERROR_MESSAGE);
|
||||
} else {
|
||||
/* Autopsy Created Version */
|
||||
String createdVersion = getCreatedVersion(); // get the created version
|
||||
|
@ -0,0 +1,16 @@
|
||||
Metadata.tableRowTitle.name=Name
|
||||
Metadata.tableRowTitle.size=Size
|
||||
Metadata.tableRowTitle.fileNameAlloc=File Name Allocation
|
||||
Metadata.tableRowTitle.metadataAlloc=Metadata Allocation
|
||||
Metadata.tableRowTitle.modified=Modified
|
||||
Metadata.tableRowTitle.accessed=Accessed
|
||||
Metadata.tableRowTitle.created=Created
|
||||
Metadata.tableRowTitle.changed=Changed
|
||||
Metadata.tableRowContent.md5notCalc=Not calculated
|
||||
Metadata.tableRowTitle.md5=MD5
|
||||
Metadata.tableRowTitle.hashLookupResults=Hash Lookup Results
|
||||
Metadata.tableRowTitle.internalid=Internal ID
|
||||
Metadata.tableRowTitle.localPath=Local Path
|
||||
Metadata.title=Metadata
|
||||
Metadata.toolTip=Displays metadata about the file.
|
||||
Metadata.nodeText.nonFilePassedIn=Non-file passed in
|
@ -0,0 +1,16 @@
|
||||
Metadata.tableRowTitle.name=\u540D\u79F0
|
||||
Metadata.tableRowTitle.size=\u30B5\u30A4\u30BA
|
||||
Metadata.tableRowTitle.fileNameAlloc=\u30D5\u30A1\u30A4\u30EB\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u72B6\u614B
|
||||
Metadata.tableRowTitle.metadataAlloc=\u30E1\u30BF\u30C7\u30FC\u30BF\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u72B6\u614B
|
||||
Metadata.tableRowTitle.modified=\u4FEE\u6B63\u6E08\u307F
|
||||
Metadata.tableRowTitle.accessed=\u30A2\u30AF\u30BB\u30B9\u6E08\u307F
|
||||
Metadata.tableRowTitle.created=\u4F5C\u6210\u6E08\u307F
|
||||
Metadata.tableRowTitle.changed=\u5909\u66F4\u6E08\u307F
|
||||
Metadata.tableRowContent.md5notCalc=\u672A\u8A08\u7B97
|
||||
Metadata.tableRowTitle.md5=MD5
|
||||
Metadata.tableRowTitle.hashLookupResults=\u30CF\u30C3\u30B7\u30E5\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7\u7D50\u679C
|
||||
Metadata.tableRowTitle.internalid=\u5185\u90E8ID
|
||||
Metadata.tableRowTitle.localPath=\u30ED\u30FC\u30AB\u30EB\u30D1\u30B9
|
||||
Metadata.title=\u30E1\u30BF\u30C7\u30FC\u30BF
|
||||
Metadata.toolTip=\u30D5\u30A1\u30A4\u30EB\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u8868\u793A\u3057\u307E\u3059\u3002
|
||||
Metadata.nodeText.nonFilePassedIn=\u51E6\u7406\u4E2D\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u30D5\u30A1\u30A4\u30EB\u3067\u306F\u3042\u308A\u307E\u305B\u3093
|
@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.contentviewers;
|
||||
|
||||
import java.awt.Component;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.ServiceProvider;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer;
|
||||
import org.sleuthkit.autopsy.datamodel.AbstractAbstractFileNode;
|
||||
@ -122,7 +123,7 @@ public class Metadata extends javax.swing.JPanel implements DataContentViewer
|
||||
public void setNode(Node node) {
|
||||
AbstractFile file = node.getLookup().lookup(AbstractFile.class);
|
||||
if (file == null) {
|
||||
setText("Non-file passed in");
|
||||
setText(NbBundle.getMessage(this.getClass(), "Metadata.nodeText.nonFilePassedIn"));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -130,29 +131,29 @@ public class Metadata extends javax.swing.JPanel implements DataContentViewer
|
||||
startTable(sb);
|
||||
|
||||
try {
|
||||
addRow(sb, "Name", file.getUniquePath());
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.name"), file.getUniquePath());
|
||||
} catch (TskCoreException ex) {
|
||||
addRow(sb, "Name", file.getParentPath() + "/" + file.getName());
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.name"), file.getParentPath() + "/" + file.getName());
|
||||
}
|
||||
|
||||
addRow(sb, "Size", new Long(file.getSize()).toString() );
|
||||
addRow(sb, "File Name Allocation", file.getDirFlagAsString());
|
||||
addRow(sb, "Metadata Allocation", file.getMetaFlagsAsString());
|
||||
addRow(sb, "Modified", ContentUtils.getStringTime(file.getMtime(), file));
|
||||
addRow(sb, "Accessed", ContentUtils.getStringTime(file.getAtime(), file));
|
||||
addRow(sb, "Created", ContentUtils.getStringTime(file.getCrtime(), file));
|
||||
addRow(sb, "Changed", ContentUtils.getStringTime(file.getCtime(), file));
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.size"), new Long(file.getSize()).toString() );
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.fileNameAlloc"), file.getDirFlagAsString());
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.metadataAlloc"), file.getMetaFlagsAsString());
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.modified"), ContentUtils.getStringTime(file.getMtime(), file));
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.accessed"), ContentUtils.getStringTime(file.getAtime(), file));
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.created"), ContentUtils.getStringTime(file.getCrtime(), file));
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.changed"), ContentUtils.getStringTime(file.getCtime(), file));
|
||||
|
||||
String md5 = file.getMd5Hash();
|
||||
if (md5 == null) {
|
||||
md5 = "Not calculated";
|
||||
md5 = NbBundle.getMessage(this.getClass(), "Metadata.tableRowContent.md5notCalc");
|
||||
}
|
||||
addRow(sb, "MD5", md5);
|
||||
addRow(sb, "Hash Lookup Results", file.getKnown().toString());
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.md5"), md5);
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.hashLookupResults"), file.getKnown().toString());
|
||||
|
||||
addRow(sb, "Internal ID", new Long(file.getId()).toString());
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.internalid"), new Long(file.getId()).toString());
|
||||
if (file.getType().compareTo(TSK_DB_FILES_TYPE_ENUM.LOCAL) == 0) {
|
||||
addRow(sb, "Local Path", file.getLocalAbsPath());
|
||||
addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.localPath"), file.getLocalAbsPath());
|
||||
}
|
||||
|
||||
endTable(sb);
|
||||
@ -161,12 +162,12 @@ public class Metadata extends javax.swing.JPanel implements DataContentViewer
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return "Metadata";
|
||||
return NbBundle.getMessage(this.getClass(), "Metadata.title");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getToolTip() {
|
||||
return "Displays metadata about the file.";
|
||||
return NbBundle.getMessage(this.getClass(), "Metadata.toolTip");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1 +1,3 @@
|
||||
OpenIDE-Module-Name=CoreComponentInterfaces
|
||||
CoreComponentControl.CTL_DirectoryTreeTopComponent=Directory Tree
|
||||
CoreComponentControl.CTL_FavoritesTopComponent=Favorites
|
||||
|
@ -0,0 +1,3 @@
|
||||
OpenIDE-Module-Name=\u4E3B\u8981\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9
|
||||
CoreComponentControl.CTL_DirectoryTreeTopComponent=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30C4\u30EA\u30FC
|
||||
CoreComponentControl.CTL_FavoritesTopComponent=\u304A\u6C17\u306B\u5165\u308A
|
@ -22,6 +22,8 @@ import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.openide.util.Lookup;
|
||||
import org.openide.windows.Mode;
|
||||
@ -37,6 +39,10 @@ import org.sleuthkit.autopsy.corecomponents.DataContentTopComponent;
|
||||
public class CoreComponentControl {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(CoreComponentControl.class.getName());
|
||||
private static final String DIRECTORY_TREE = NbBundle.getMessage(CoreComponentControl.class,
|
||||
"CoreComponentControl.CTL_DirectoryTreeTopComponent");
|
||||
private static final String FAVORITES = NbBundle.getMessage(CoreComponentControl.class,
|
||||
"CoreComponentControl.CTL_FavoritesTopComponent");
|
||||
|
||||
/**
|
||||
* Opens all TopComponent windows that are needed ({@link DataExplorer}, {@link DataResult}, and
|
||||
@ -83,6 +89,7 @@ public class CoreComponentControl {
|
||||
Set<? extends Mode> modes = wm.getModes();
|
||||
Iterator<? extends Mode> iter = wm.getModes().iterator();
|
||||
|
||||
|
||||
TopComponent directoryTree = null;
|
||||
TopComponent favorites = null;
|
||||
String tcName = "";
|
||||
@ -94,16 +101,13 @@ public class CoreComponentControl {
|
||||
logger.log(Level.INFO, "tcName was null");
|
||||
tcName = "";
|
||||
}
|
||||
switch (tcName) {
|
||||
case "Directory Tree":
|
||||
directoryTree = tc;
|
||||
break;
|
||||
case "Favorites":
|
||||
favorites = tc;
|
||||
break;
|
||||
default:
|
||||
tc.close();
|
||||
break;
|
||||
// switch requires constant strings, so converted to if/else.
|
||||
if (DIRECTORY_TREE.equals(tcName)) {
|
||||
directoryTree = tc;
|
||||
} else if (FAVORITES.equals(tcName)) {
|
||||
favorites = tc;
|
||||
} else {
|
||||
tc.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,38 +1,15 @@
|
||||
CTL_DataContentAction=DataContent
|
||||
CTL_DataContentTopComponent=Data Content
|
||||
CTL_NodeTableAction=NodeTable
|
||||
CTL_NodeTableTopComponent=NodeTable Window
|
||||
CTL_HexViewAction=HexView
|
||||
CTL_HexViewTopComponent=Hex View
|
||||
CTL_StringViewAction=StringView
|
||||
CTL_StringViewTopComponent=String View
|
||||
CTL_CustomAboutAction=About
|
||||
OptionsCategory_Name_General=General
|
||||
OptionsCategory_Keywords_General=general
|
||||
HINT_DataContentTopComponent=This is a DataContent window
|
||||
HINT_NodeTableTopComponent=This is a DataResult window
|
||||
HINT_HexViewTopComponent=This is a HexView window
|
||||
HINT_StringViewTopComponent=This is a StringView window
|
||||
OpenIDE-Module-Name=CoreComponents
|
||||
OutputViewPanel.prevPageButton.text=Previous Page
|
||||
OutputViewPanel.totalPageLabel.text=100
|
||||
OutputViewPanel.ofLabel.text=of
|
||||
OutputViewPanel.currentPageLabel.text=1
|
||||
OutputViewPanel.pageLabel.text=Page:
|
||||
OutputViewPanel.filePathLabel.text=FilePath
|
||||
OutputViewPanel.nextPageButton.text=Next Page
|
||||
DataContentViewerHex.filePathLabel.text=FilePath
|
||||
DataContentViewerHex.pageLabel.text=Page:
|
||||
DataContentViewerHex.currentPageLabel.text=1
|
||||
DataContentViewerHex.ofLabel.text=of
|
||||
DataContentViewerHex.totalPageLabel.text=100
|
||||
DataContentViewerHex.prevPageButton.text=
|
||||
DataContentViewerHex.nextPageButton.text=
|
||||
DataContentViewerString.totalPageLabel.text=100
|
||||
DataContentViewerString.prevPageButton.text=
|
||||
DataContentViewerString.nextPageButton.text=
|
||||
DataContentViewerString.filePathLabel.text=FilePath
|
||||
DataContentViewerString.pageLabel.text=Page:
|
||||
DataContentViewerString.currentPageLabel.text=1
|
||||
DataContentViewerString.ofLabel.text=of
|
||||
DataContentViewerHex.pageLabel.text_1=Page:
|
||||
DataContentViewerHex.currentPageLabel.text_1=1
|
||||
DataContentViewerHex.ofLabel.text_1=of
|
||||
@ -41,7 +18,6 @@ DataContentViewerString.pageLabel.text_1=Page:
|
||||
DataContentViewerString.currentPageLabel.text_1=1
|
||||
DataContentViewerString.ofLabel.text_1=of
|
||||
DataContentViewerString.totalPageLabel.text_1=100
|
||||
DataContentViewerPicture.picLabel.text=[Picture goes Here]
|
||||
DataContentViewerHex.pageLabel2.text=Page
|
||||
DataContentViewerString.pageLabel2.text=Page
|
||||
|
||||
@ -54,13 +30,13 @@ URL_ON_IMG=http://www.sleuthkit.org/
|
||||
|
||||
|
||||
#SwingBrowser
|
||||
LBL_SwingBrowserDescription=Simple HTML Browser based on a Swing component
|
||||
MSG_cannot_create_browser=Cannot create Swing HTML Browser.
|
||||
Services/Browsers/SwingBrowser.settings=Swing HTML Browser
|
||||
#LBL_SwingBrowserDescription=Simple HTML Browser based on a Swing component
|
||||
#MSG_cannot_create_browser=Cannot create Swing HTML Browser.
|
||||
#Services/Browsers/SwingBrowser.settings=Swing HTML Browser
|
||||
LBL_Close=Close
|
||||
MNE_Close=C
|
||||
ACSN_Close=Close
|
||||
ACSD_Close=Close
|
||||
#MNE_Close=C
|
||||
#ACSN_Close=Close
|
||||
#ACSD_Close=Close
|
||||
DataContentViewerString.copyMenuItem.text=Copy
|
||||
DataContentViewerHex.copyMenuItem.text=Copy
|
||||
DataContentViewerString.selectAllMenuItem.text=Select All
|
||||
@ -112,3 +88,55 @@ GeneralPanel.useGMTTimeRB.text=Use GMT
|
||||
GeneralPanel.jLabel3.text=Hide known files in the Directory Listing when:
|
||||
GeneralPanel.viewsHideKnownCB.text=Selecting under Views
|
||||
GeneralPanel.dataSourcesHideKnownCB.text=Selecting under Data Sources
|
||||
DataContentViewerArtifact.waitText=Retrieving and preparing data, please wait...
|
||||
DataContentViewerArtifact.errorText=Error retrieving result
|
||||
DataContentViewerArtifact.title=Results
|
||||
DataContentViewerArtifact.toolTip=Displays Results associated with the file
|
||||
DataContentViewerHex.goToPageTextField.msgDlg=Please enter a valid page number between 1 and {0}
|
||||
DataContentViewerHex.goToPageTextField.err=Invalid page number
|
||||
DataContentViewerHex.setDataView.errorText=(offset {0}-{1} could not be read)
|
||||
DataContentViewerHex.title=Hex
|
||||
DataContentViewerHex.toolTip=Displays the binary contents of a file as hexidecimal, with bytes that are displayable as ASCII characters on the right.
|
||||
DataContentViewerMedia.title=Media
|
||||
DataContentViewerMedia.toolTip=Displays supported multimedia files (images, videos, audio)
|
||||
DataContentViewerString.goToPageTextField.msgDlg=Please enter a valid page number between 1 and {0}
|
||||
DataContentViewerString.goToPageTextField.err=Invalid page number
|
||||
DataContentViewerString.setDataView.errorText=(offset {0}-{1} could not be read)
|
||||
DataContentViewerString.setDataView.errorNoText=(offset {0}-{1} contains no text)
|
||||
DataContentViewerString.title=Strings
|
||||
DataContentViewerString.toolTip=Displays ASCII and Unicode strings extracted from the file.
|
||||
DataResultPanel.dummyNodeDisplayName=Please Wait...
|
||||
DataResultViewerTable.firstColLbl=Name
|
||||
DataResultViewerTable.illegalArgExc.noChildFromParent=Couldn't get a child Node from the given parent.
|
||||
DataResultViewerTable.illegalArgExc.childWithoutPropertySet=Child Node doesn't have the regular PropertySet.
|
||||
DataResultViewerTable.title=Table
|
||||
DataResultViewerTable.dummyNodeDisplayName=Please Wait...
|
||||
DataResultViewerThumbnail.title=Thumbnail
|
||||
DataResultViewerThumbnail.goToPageTextField.msgDlg=Please enter a valid page number between 1 and {0}
|
||||
DataResultViewerThumbnail.goToPageTextField.err=Invalid page number
|
||||
DataResultViewerThumbnail.genThumbs=Generating Thumbnails...
|
||||
DataResultViewerThumbnail.pageNumbers.curOfTotal={0} of {1}
|
||||
FXVideoPanel.mediaPane.infoLabel=Playback of deleted videos is not supported, use an external player.
|
||||
FXVideoPanel.progress.bufferingFile=Buffering {0}
|
||||
FXVideoPanel.progressLabel.buffering=Buffering...
|
||||
FXVideoPanel.media.unsupportedFormat=Unsupported Format.
|
||||
GeneralOptionsPanelController.moduleErr=Module Error
|
||||
GeneralOptionsPanelController.moduleErr.msg=A module caused an error listening to GeneralOptionsPanelController updates. See log to determine which module. Some data could be incomplete.
|
||||
GstVideoPanel.cannotProcFile.err=The media player cannot process this file.
|
||||
GstVideoPanel.initGst.gstException.msg=Error initializing gstreamer for audio/video viewing and frame extraction capabilities. Video and audio viewing will be disabled.
|
||||
GstVideoPanel.initGst.otherException.msg=Error initializing gstreamer for audio/video viewing frame extraction capabilities. Video and audio viewing will be disabled.
|
||||
GstVideoPanel.setupVideo.infoLabel.text=Playback of deleted videos is not supported, use an external player.
|
||||
GstVideoPanel.exception.problemFile.msg=Cannot capture frames from this file ({0}).
|
||||
GstVideoPanel.exception.problemPlay.msg=Problem with video file; problem when attempting to play while obtaining duration.
|
||||
GstVideoPanel.exception.problemPause.msg=Problem with video file; problem when attempting to pause while obtaining duration.
|
||||
GstVideoPanel.exception.problemPauseCaptFrame.msg=Problem with video file; problem when attempting to pause while capturing a frame.
|
||||
GstVideoPanel.exception.problemPlayCaptFrame.msg=Problem with video file; problem when attempting to play while capturing a frame.
|
||||
GstVideoPanel.exception.problemStopCaptFrame.msg=Problem with video file; problem when attempting to stop while capturing a frame.
|
||||
GstVideoPanel.progress.buffering=Buffering...
|
||||
GstVideoPanel.progressLabel.bufferingErr=Error buffering file
|
||||
MediaViewImagePanel.imgFileTooLarge.msg=Could not load image file (too large)\: {0}
|
||||
ProductInformationPanel.actVerboseLogging.text=Activate verbose logging
|
||||
ProductInformationPanel.verbLoggingEnabled.text=Verbose logging enabled
|
||||
ProductInformationPanel.propertyUnknown.text=unknown
|
||||
ProductInformationPanel.getVMValue.text={0} {1}
|
||||
TableFilterNode.displayName.text=Name
|
||||
|
@ -0,0 +1,115 @@
|
||||
CTL_DataContentTopComponent=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4
|
||||
HINT_DataContentTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059
|
||||
HINT_NodeTableTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u7D50\u679C\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059
|
||||
OpenIDE-Module-Name=\u4E3B\u8981\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8
|
||||
DataContentViewerHex.pageLabel.text_1=\u30DA\u30FC\u30B8\uFF1A
|
||||
DataContentViewerHex.currentPageLabel.text_1=1
|
||||
DataContentViewerHex.totalPageLabel.text_1=100
|
||||
DataContentViewerString.pageLabel.text_1=\u30DA\u30FC\u30B8\uFF1A
|
||||
DataContentViewerString.currentPageLabel.text_1=1
|
||||
DataContentViewerString.totalPageLabel.text_1=100
|
||||
DataContentViewerHex.pageLabel2.text=\u30DA\u30FC\u30B8
|
||||
DataContentViewerString.pageLabel2.text=\u30DA\u30FC\u30B8
|
||||
Format_OperatingSystem_Value={0} \u30D0\u30FC\u30B8\u30E7\u30F3 {1} \u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u3000{2}
|
||||
URL_ON_IMG=http\://www.sleuthkit.org/
|
||||
LBL_Close=\u9589\u3058\u308B
|
||||
DataContentViewerString.copyMenuItem.text=\u30B3\u30D4\u30FC
|
||||
DataContentViewerHex.copyMenuItem.text=\u30B3\u30D4\u30FC
|
||||
DataContentViewerString.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E
|
||||
DataContentViewerHex.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E
|
||||
DataContentViewerArtifact.totalPageLabel.text=100
|
||||
DataContentViewerArtifact.pageLabel2.text=\u7D50\u679C
|
||||
DataContentViewerArtifact.currentPageLabel.text=1
|
||||
DataContentViewerArtifact.copyMenuItem.text=\u30B3\u30D4\u30FC
|
||||
DataContentViewerArtifact.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E
|
||||
DataContentViewerArtifact.pageLabel.text=\u7D50\u679C\uFF1A
|
||||
AdvancedConfigurationDialog.applyButton.text=OK
|
||||
DataContentViewerString.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\uFF1A
|
||||
DataContentViewerHex.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\uFF1A
|
||||
DataContentViewerString.languageLabel.text=\u30B9\u30AF\u30EA\u30D7\u30C8\uFF1A
|
||||
DataContentViewerString.languageCombo.toolTipText=\u30D0\u30A4\u30CA\u30EA\u30B9\u30C8\u30EA\u30F3\u30B0\u306E\u51E6\u7406\uFF08\u62BD\u51FA\u304A\u3088\u3073\u30C7\u30B3\u30FC\u30C9\uFF09\u306E\u969B\u306B\u4F7F\u7528\u3059\u308B\u8A00\u8A9E
|
||||
DataResultViewerThumbnail.pageLabel.text=\u30DA\u30FC\u30B8\uFF1A
|
||||
DataResultViewerThumbnail.pagesLabel.text=\u30DA\u30FC\u30B8\uFF1A
|
||||
DataResultViewerThumbnail.imagesLabel.text=\u30A4\u30E1\u30FC\u30B8\uFF1A
|
||||
DataResultViewerThumbnail.imagesRangeLabel.text=-
|
||||
DataResultViewerThumbnail.pageNumLabel.text=-
|
||||
DataResultViewerThumbnail.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u306B\u79FB\u52D5\uFF1A
|
||||
GeneralPanel.jLabel1.text=\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3059\u308B\u969B\uFF1A
|
||||
GeneralPanel.useBestViewerRB.text=\u6700\u3082\u5C02\u9580\u7684\u306A\u30D5\u30A1\u30A4\u30EB\u30D3\u30E5\u30FC\u30A2\u306B\u5909\u66F4
|
||||
GeneralPanel.keepCurrentViewerRB.text=\u305D\u306E\u307E\u307E\u540C\u3058\u30D5\u30A1\u30A4\u30EB\u30D3\u30E5\u30FC\u30A2\u3092\u4F7F\u7528
|
||||
GeneralPanel.useBestViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u969B\u306B\u306FHEX\u304B\u3089\u30E1\u30C7\u30A3\u30A2\u306B\u5909\u66F4\u3059\u308B\u3002
|
||||
GeneralPanel.keepCurrentViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u969B\u306B\u305D\u306E\u307E\u307EHEX\u30D3\u30E5\u30FC\u3092\u4F7F\u7528\u3002
|
||||
AdvancedConfigurationDialog.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB
|
||||
DataResultPanel.directoryTablePath.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30D1\u30B9
|
||||
DataResultPanel.numberMatchLabel.text=0
|
||||
DataResultPanel.matchLabel.text=\u7D50\u679C
|
||||
MediaViewVideoPanel.pauseButton.text=\u25BA
|
||||
MediaViewVideoPanel.progressLabel.text=00\:00
|
||||
MediaViewVideoPanel.infoLabel.text=\u60C5\u5831
|
||||
GeneralPanel.jLabel2.text=\u30A2\u30A4\u30C6\u30E0\u3092\u8868\u793A\u3059\u308B\u969B\uFF1A
|
||||
GeneralPanel.useLocalTimeRB.text=\u30ED\u30FC\u30AB\u30EB\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\u3092\u4F7F\u7528
|
||||
GeneralPanel.useGMTTimeRB.text=GMT\u3092\u4F7F\u7528
|
||||
GeneralPanel.jLabel3.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30EA\u30B9\u30C6\u30A3\u30F3\u30B0\u5185\u306E\u65E2\u77E5\u30D5\u30A1\u30A4\u30EB\u306F\u4E0B\u8A18\u306E\u5834\u5408\u306B\u96A0\u3059\uFF1A
|
||||
GeneralPanel.viewsHideKnownCB.text=\u30D3\u30E5\u30FC\u304B\u3089\u9078\u629E\u3057\u3066\u3044\u308B\u5834\u5408
|
||||
GeneralPanel.dataSourcesHideKnownCB.text=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u304B\u3089\u9078\u629E\u3057\u3066\u3044\u308B\u5834\u5408
|
||||
DataContentViewerArtifact.waitText=\u30C7\u30FC\u30BF\u3092\u53D6\u8FBC\u307F\u304A\u3088\u3073\u6E96\u5099\u4E2D\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u4E0B\u3055\u3044\u2026
|
||||
DataContentViewerArtifact.errorText=\u7D50\u679C\u306E\u53D6\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
|
||||
DataContentViewerArtifact.title=\u7D50\u679C
|
||||
DataContentViewerArtifact.toolTip=\u30D5\u30A1\u30A4\u30EB\u306B\u95A2\u9023\u3059\u308B\u7D50\u679C\u3092\u8868\u793A\u3057\u307E\u3059
|
||||
DataContentViewerHex.goToPageTextField.msgDlg=\uFF11\u304B\u3089 {0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044
|
||||
DataContentViewerHex.goToPageTextField.err=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u6570
|
||||
DataContentViewerHex.setDataView.errorText=\uFF08\u30AA\u30D5\u30BB\u30C3\u30C8{0}-{1}\u306F\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF09
|
||||
DataContentViewerHex.title=HEX
|
||||
DataContentViewerHex.toolTip=\u30D0\u30A4\u30CA\u30EA\u30B3\u30F3\u30C6\u30F3\u30C4\u3092HEX\u30D5\u30A1\u30A4\u30EB\u3068\u3057\u3066\u8868\u793A\u3057\u3001ASCII\u3068\u3057\u3066\u8868\u793A\u3067\u304D\u308B\u30D0\u30A4\u30C8\u306F\u53F3\u5074\u306B\u8868\u793A\u3057\u307E\u3059\u3002
|
||||
DataContentViewerMedia.title=\u30E1\u30C7\u30A3\u30A2
|
||||
DataContentViewerMedia.toolTip=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30DE\u30EB\u30C1\u30E1\u30C7\u30A3\u30A2\u30D5\u30A1\u30A4\u30EB\uFF08\u753B\u50CF\u3001\u30D3\u30C7\u30AA\u3001\u30AA\u30FC\u30C7\u30A3\u30AA\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002
|
||||
DataContentViewerString.goToPageTextField.msgDlg=\uFF11\u304B\u3089{0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044
|
||||
DataContentViewerString.goToPageTextField.err=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u6570
|
||||
DataContentViewerString.setDataView.errorText=\uFF08\u30AA\u30D5\u30BB\u30C3\u30C8{0}-{1}\u306F\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF09\
|
||||
DataContentViewerString.setDataView.errorNoText=\uFF08\u30AA\u30D5\u30BB\u30C3\u30C8{0}-{1}\u306B\u306F\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09
|
||||
DataContentViewerString.title=\u30B9\u30C8\u30EA\u30F3\u30B0
|
||||
DataContentViewerString.toolTip=\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u62BD\u51FA\u3055\u308C\u305FASCII\u304A\u3088\u3073\u30E6\u30CB\u30B3\u30FC\u30C9\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002
|
||||
DataResultPanel.dummyNodeDisplayName=\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u2026
|
||||
DataResultViewerTable.firstColLbl=\u540D\u79F0
|
||||
DataResultViewerTable.illegalArgExc.noChildFromParent=\u6307\u5B9A\u3055\u308C\u305F\u30DA\u30A2\u30EC\u30F3\u30C8\u304B\u3089\u30C1\u30E3\u30A4\u30EB\u30C9\u30CE\u30FC\u30C9\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002
|
||||
DataResultViewerTable.illegalArgExc.childWithoutPropertySet=\u30C1\u30E3\u30A4\u30EB\u30C9\u30CE\u30FC\u30C9\u306F\u901A\u5E38\u306EPropertySet\u3092\u6301\u3063\u3066\u3044\u307E\u305B\u3093\u3002
|
||||
DataResultViewerTable.title=\u30C6\u30FC\u30D6\u30EB
|
||||
DataResultViewerTable.dummyNodeDisplayName=\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u2026
|
||||
DataResultViewerThumbnail.title=\u30B5\u30E0\u30CD\u30A4\u30EB
|
||||
DataResultViewerThumbnail.goToPageTextField.msgDlg=\uFF11\u304B\u3089{0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044
|
||||
DataResultViewerThumbnail.goToPageTextField.err=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u6570
|
||||
DataResultViewerThumbnail.genThumbs=\u30B5\u30E0\u30CD\u30A4\u30EB\u3092\u4F5C\u6210\u4E2D\u2026
|
||||
DataResultViewerThumbnail.pageNumbers.curOfTotal={0}\uFF0F{1}\u3064\u76EE
|
||||
FXVideoPanel.mediaPane.infoLabel=\u524A\u9664\u3055\u308C\u305F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5916\u90E8\u30D7\u30EC\u30FC\u30E4\u30FC\u3092\u4F7F\u7528\u3057\u3066\u4E0B\u3055\u3044\u3002
|
||||
FXVideoPanel.progress.bufferingFile={0}\u3092\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0
|
||||
FXVideoPanel.progressLabel.buffering=\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0\u4E2D\u2026
|
||||
FXVideoPanel.media.unsupportedFormat=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3067\u3059\u3002
|
||||
GeneralOptionsPanelController.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC
|
||||
GeneralOptionsPanelController.moduleErr.msg=GeneralOptionsPanelController\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002
|
||||
GstVideoPanel.cannotProcFile.err=\u30E1\u30C7\u30A4\u30A2\u30D7\u30EC\u30FC\u30E4\u30FC\u304C\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u51E6\u7406\u3067\u304D\u307E\u305B\u3093\u3002
|
||||
GstVideoPanel.initGst.gstException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u304A\u3088\u3073\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3059\u308BGStreamer\u306E\u521D\u671F\u5316\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D3\u30C7\u30AA\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30AA\u518D\u751F\u304C\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002
|
||||
GstVideoPanel.initGst.otherException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u304A\u3088\u3073\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3059\u308BGStreamer\u306E\u521D\u671F\u5316\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D3\u30C7\u30AA\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30AA\u518D\u751F\u304C\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002
|
||||
GstVideoPanel.setupVideo.infoLabel.text=\u524A\u9664\u3055\u308C\u305F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5916\u90E8\u30D7\u30EC\u30FC\u30E4\u30FC\u3092\u4F7F\u7528\u3057\u3066\u4E0B\u3055\u3044\u3002
|
||||
GstVideoPanel.exception.problemFile.msg=\u30D5\u30A1\u30A4\u30EB({0})\u304B\u3089\u306F\u30D5\u30EC\u30FC\u30E0\u3092\u62BD\u51FA\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002
|
||||
GstVideoPanel.exception.problemPlay.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1B\u9577\u3055\u3092\u78BA\u8A8D\u4E2D\u306B\u518D\u751F\u3092\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
|
||||
LBL_Description=<div style\="font-size\: 12pt; font-family\: Verdana, 'Verdana CE', Arial, 'Arial CE', 'Lucida Grande CE', lucida, 'Helvetica CE', sans-serif;">\n <b>\u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A</b> {0} ({9}) <br><b>Sleuth Kit\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A</b> {7} <br><b>Netbeans RCP\u30D3\u30EB\u30C9\:</b> {8} <br> <b>Java\:</b> {1}; {2}<br> <b>\u30B7\u30B9\u30C6\u30E0\uFF1A</b> {3}; {4}; {5}<br><b>\u30E6\u30FC\u30B6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u540D</b> {6}</div>
|
||||
LBL_Copyright=<div style\="font-size\: 12pt; font-family\: Verdana, 'Verdana CE', Arial, 'Arial CE', 'Lucida Grande CE', lucida, 'Helvetica CE', sans-serif; ">Autopsy™\u306FSleuth Kit™\u3084\u305D\u306E\u4ED6\u30C4\u30FC\u30EB\u3092\u57FA\u306B\u3057\u305F\u30C7\u30B8\u30BF\u30EB\u30FB\u30D5\u30A9\u30EC\u30F3\u30B8\u30C3\u30AF\u30FB\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u3059\u3002<br> <br>Copyright © 2003-2013. \u8A73\u7D30\u306F\u4E0B\u8A18\u3092\u3054\u89A7\u4E0B\u3055\u3044\u3002 <a style\="color\: \#1E2A60;" href\="http\://www.sleuthkit.org">http\://www.sleuthkit.org</a>. </div>
|
||||
GstVideoPanel.exception.problemPause.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u9577\u3055\u3092\u78BA\u8A8D\u4E2D\u306B\u4E00\u6642\u505C\u6B62\u3092\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
|
||||
GstVideoPanel.exception.problemPauseCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u4E00\u6642\u505C\u6B62\u3092\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
|
||||
GstVideoPanel.exception.problemPlayCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u518D\u751F\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
|
||||
GstVideoPanel.exception.problemStopCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u505C\u6B62\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
|
||||
GstVideoPanel.progress.buffering=\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0\u4E2D\u2026
|
||||
GstVideoPanel.progressLabel.bufferingErr=\u30D5\u30A1\u30A4\u30EB\u306E\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0\u30A8\u30E9\u30FC
|
||||
MediaViewImagePanel.imgFileTooLarge.msg=\u753B\u50CF\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u5927\u304D\u3059\u304E\u3067\u3059\uFF09\uFF1A {0}
|
||||
ProductInformationPanel.actVerboseLogging.text=Verbose\u30ED\u30B0\u3092\u6709\u52B9\u5316
|
||||
ProductInformationPanel.verbLoggingEnabled.text=Verbose\u30ED\u30B0\u304C\u6709\u52B9\u3067\u3059
|
||||
ProductInformationPanel.propertyUnknown.text=\u4E0D\u660E
|
||||
ProductInformationPanel.getVMValue.text={0} {1}
|
||||
TableFilterNode.displayName.text=\u540D\u79F0
|
||||
CTL_DataContentAction=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4
|
||||
OptionsCategory_Name_General=\u4E00\u822C
|
||||
OptionsCategory_Keywords_General=\u4E00\u822C
|
||||
CTL_CustomAboutAction=Autopsy\u306B\u3064\u3044\u3066
|
||||
DataContentViewerHex.ofLabel.text_1=of
|
||||
DataContentViewerString.ofLabel.text_1=of
|
||||
DataContentViewerArtifact.ofLabel.text=of
|
@ -37,7 +37,7 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
ProductInformationPanel pip = new ProductInformationPanel();
|
||||
DialogDescriptor descriptor = new DialogDescriptor(
|
||||
pip,
|
||||
NbBundle.getMessage(AboutAction.class, "About_title"),
|
||||
NbBundle.getMessage(CustomAboutAction.class, "CTL_CustomAboutAction"),
|
||||
true,
|
||||
new Object[0],
|
||||
null,
|
||||
|
@ -27,6 +27,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JTextPane;
|
||||
@ -53,8 +55,8 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
public class DataContentViewerArtifact extends javax.swing.JPanel implements DataContentViewer{
|
||||
|
||||
private final static Logger logger = Logger.getLogger(DataContentViewerArtifact.class.getName());
|
||||
private final static String WAIT_TEXT = "Retrieving and preparing data, please wait...";
|
||||
private final static String ERROR_TEXT = "Error retrieving result";
|
||||
private final static String WAIT_TEXT = NbBundle.getMessage(DataContentViewerArtifact.class, "DataContentViewerArtifact.waitText");
|
||||
private final static String ERROR_TEXT = NbBundle.getMessage(DataContentViewerArtifact.class, "DataContentViewerArtifact.errorText");
|
||||
private Node currentNode; // @@@ Remove this when the redundant setNode() calls problem is fixed.
|
||||
private int currentPage = 1;
|
||||
private final Object lock = new Object();
|
||||
@ -288,12 +290,12 @@ public class DataContentViewerArtifact extends javax.swing.JPanel implements Dat
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return "Results";
|
||||
return NbBundle.getMessage(this.getClass(), "DataContentViewerArtifact.title");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getToolTip() {
|
||||
return "Displays Results associated with the file";
|
||||
return NbBundle.getMessage(this.getClass(), "DataContentViewerArtifact.toolTip");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -23,6 +23,8 @@ import java.awt.Cursor;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JOptionPane;
|
||||
@ -257,8 +259,13 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
||||
pageNumber = totalPages + 1;
|
||||
}
|
||||
if (pageNumber > totalPages || pageNumber < 1) {
|
||||
JOptionPane.showMessageDialog(this, "Please enter a valid page number between 1 and " + totalPages,
|
||||
"Invalid page number", JOptionPane.WARNING_MESSAGE);
|
||||
JOptionPane.showMessageDialog(this,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"DataContentViewerHex.goToPageTextField.msgDlg",
|
||||
totalPages),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"DataContentViewerHex.goToPageTextField.err"),
|
||||
JOptionPane.WARNING_MESSAGE);
|
||||
return;
|
||||
}
|
||||
setDataView(pageNumber);
|
||||
@ -309,16 +316,16 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
||||
try {
|
||||
bytesRead = dataSource.read(data, offset, pageLength); // read the data
|
||||
} catch (TskException ex) {
|
||||
errorText = "(offset " + offset + "-" + (offset + pageLength)
|
||||
+ " could not be read)";
|
||||
errorText = NbBundle.getMessage(this.getClass(), "DataContentViewerHex.setDataView.errorText", offset,
|
||||
offset + pageLength);
|
||||
logger.log(Level.WARNING, "Error while trying to show the hex content.", ex);
|
||||
}
|
||||
}
|
||||
|
||||
// set the data on the bottom and show it
|
||||
if (bytesRead <= 0) {
|
||||
errorText = "(offset " + offset + "-" + (offset + pageLength)
|
||||
+ " could not be read)";
|
||||
errorText = NbBundle.getMessage(this.getClass(), "DataContentViewerHex.setDataView.errorText", offset,
|
||||
offset + pageLength);
|
||||
}
|
||||
|
||||
|
||||
@ -378,13 +385,12 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return "Hex";
|
||||
return NbBundle.getMessage(this.getClass(), "DataContentViewerHex.title");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getToolTip() {
|
||||
return "Displays the binary contents of a file as hexidecimal, with "
|
||||
+ "bytes that are displayable as ASCII characters on the right.";
|
||||
return NbBundle.getMessage(this.getClass(), "DataContentViewerHex.toolTip");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -24,6 +24,8 @@ import java.awt.Dimension;
|
||||
import java.util.Arrays;
|
||||
import java.util.logging.Level;
|
||||
import javax.imageio.ImageIO;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.util.lookup.ServiceProvider;
|
||||
@ -164,12 +166,12 @@ public class DataContentViewerMedia extends javax.swing.JPanel implements DataCo
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return "Media";
|
||||
return NbBundle.getMessage(this.getClass(), "DataContentViewerMedia.title");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getToolTip() {
|
||||
return "Displays supported multimedia files (images, videos, audio)";
|
||||
return NbBundle.getMessage(this.getClass(), "DataContentViewerMedia.toolTip");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -24,6 +24,8 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JOptionPane;
|
||||
@ -286,8 +288,13 @@ public class DataContentViewerString extends javax.swing.JPanel implements DataC
|
||||
pageNumber = maxPage + 1;
|
||||
}
|
||||
if (pageNumber > maxPage || pageNumber < 1) {
|
||||
JOptionPane.showMessageDialog(this, "Please enter a valid page number between 1 and " + maxPage,
|
||||
"Invalid page number", JOptionPane.WARNING_MESSAGE);
|
||||
JOptionPane.showMessageDialog(this,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"DataContentViewerString.goToPageTextField.msgDlg",
|
||||
maxPage),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"DataContentViewerString.goToPageTextField.err"),
|
||||
JOptionPane.WARNING_MESSAGE);
|
||||
return;
|
||||
}
|
||||
currentOffset = (pageNumber - 1) * pageLength;
|
||||
@ -346,8 +353,9 @@ public class DataContentViewerString extends javax.swing.JPanel implements DataC
|
||||
try {
|
||||
bytesRead = dataSource.read(data, offset, pageLength); // read the data
|
||||
} catch (TskException ex) {
|
||||
text = "(offset " + currentOffset + "-" + (currentOffset + pageLength)
|
||||
+ " could not be read)";
|
||||
text = NbBundle.getMessage(this.getClass(),
|
||||
"DataContentViewerString.setDataView.errorText", currentOffset,
|
||||
currentOffset + pageLength);
|
||||
logger.log(Level.WARNING, "Error while trying to show the String content.", ex);
|
||||
}
|
||||
}
|
||||
@ -359,12 +367,13 @@ public class DataContentViewerString extends javax.swing.JPanel implements DataC
|
||||
StringExtractResult res = stringExtract.extract(data, bytesRead, 0);
|
||||
text = res.getText();
|
||||
if (text.trim().isEmpty()) {
|
||||
text = "(offset " + currentOffset + "-" + (currentOffset + pageLength)
|
||||
+ " contains no text)";
|
||||
text = NbBundle.getMessage(this.getClass(),
|
||||
"DataContentViewerString.setDataView.errorNoText", currentOffset,
|
||||
currentOffset + pageLength);
|
||||
}
|
||||
} else {
|
||||
text = "(offset " + currentOffset + "-" + (currentOffset + pageLength)
|
||||
+ " could not be read)";
|
||||
text = NbBundle.getMessage(this.getClass(), "DataContentViewerString.setDataView.errorText", currentOffset,
|
||||
currentOffset + pageLength);
|
||||
}
|
||||
|
||||
// disable or enable the next button
|
||||
@ -459,12 +468,12 @@ public class DataContentViewerString extends javax.swing.JPanel implements DataC
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return "Strings";
|
||||
return NbBundle.getMessage(this.getClass(), "DataContentViewerString.title");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getToolTip() {
|
||||
return "Displays ASCII and Unicode strings extracted from the file.";
|
||||
return NbBundle.getMessage(this.getClass(), "DataContentViewerString.toolTip");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -36,6 +36,7 @@ import org.openide.nodes.NodeListener;
|
||||
import org.openide.nodes.NodeMemberEvent;
|
||||
import org.openide.nodes.NodeReorderEvent;
|
||||
import org.openide.util.Lookup;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.casemodule.Case;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataContent;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataResult;
|
||||
@ -67,8 +68,9 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
|
||||
private final DummyNodeListener dummyNodeListener = new DummyNodeListener();
|
||||
|
||||
private static final Logger logger = Logger.getLogger(DataResultPanel.class.getName() );
|
||||
private boolean listeningToTabbedPane = false;
|
||||
|
||||
private boolean listeningToTabbedPane = false;
|
||||
private static final String DUMMY_NODE_DISPLAY_NAME = NbBundle.getMessage(DataResultPanel.class,
|
||||
"DataResultPanel.dummyNodeDisplayName");
|
||||
/**
|
||||
* Creates new DataResultPanel
|
||||
* Default constructor, needed mostly for the palette/UI builder
|
||||
@ -619,7 +621,7 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
|
||||
}
|
||||
|
||||
private class DummyNodeListener implements NodeListener {
|
||||
private static final String DUMMY_NODE_DISPLAY_NAME = "Please Wait...";
|
||||
|
||||
private volatile boolean load = true;
|
||||
|
||||
public void reset() {
|
||||
|
@ -29,6 +29,8 @@ import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.ListSelectionModel;
|
||||
@ -57,10 +59,11 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer;
|
||||
//@ServiceProvider(service = DataResultViewer.class)
|
||||
public class DataResultViewerTable extends AbstractDataResultViewer {
|
||||
|
||||
private String firstColumnLabel = "Name";
|
||||
private String firstColumnLabel = NbBundle.getMessage(DataResultViewerTable.class, "DataResultViewerTable.firstColLbl");
|
||||
private Set<Property> propertiesAcc = new LinkedHashSet<>();
|
||||
private static final Logger logger = Logger.getLogger(DataResultViewerTable.class.getName());
|
||||
private final DummyNodeListener dummyNodeListener = new DummyNodeListener();
|
||||
private static final String DUMMY_NODE_DISPLAY_NAME = NbBundle.getMessage(DataResultViewerTable.class, "DataResultViewerTable.dummyNodeDisplayName");
|
||||
|
||||
/**
|
||||
* Creates a DataResultViewerTable object that is compatible with node
|
||||
@ -154,7 +157,8 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer;
|
||||
Node firstChild = parent.getChildren().getNodeAt(0);
|
||||
|
||||
if (firstChild == null) {
|
||||
throw new IllegalArgumentException("Couldn't get a child Node from the given parent.");
|
||||
throw new IllegalArgumentException(
|
||||
NbBundle.getMessage(this.getClass(), "DataResultViewerTable.illegalArgExc.noChildFromParent"));
|
||||
} else {
|
||||
for (PropertySet ps : firstChild.getPropertySets()) {
|
||||
if (ps.getName().equals(Sheet.PROPERTIES)) {
|
||||
@ -162,7 +166,8 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer;
|
||||
}
|
||||
}
|
||||
|
||||
throw new IllegalArgumentException("Child Node doesn't have the regular PropertySet.");
|
||||
throw new IllegalArgumentException(
|
||||
NbBundle.getMessage(this.getClass(), "DataResultViewerTable.illegalArgExc.childWithoutPropertySet"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -180,7 +185,8 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer;
|
||||
Property[] properties = null;
|
||||
|
||||
if (firstChild == null) {
|
||||
throw new IllegalArgumentException("Couldn't get a child Node from the given parent.");
|
||||
throw new IllegalArgumentException(
|
||||
NbBundle.getMessage(this.getClass(), "DataResultViewerTable.illegalArgExc.noChildFromParent"));
|
||||
} else {
|
||||
Set<Property> allProperties = new LinkedHashSet<Property>();
|
||||
while (firstChild != null) {
|
||||
@ -410,7 +416,7 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer;
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return "Table";
|
||||
return NbBundle.getMessage(this.getClass(), "DataResultViewerTable.title");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -481,7 +487,6 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer;
|
||||
}
|
||||
|
||||
private class DummyNodeListener implements NodeListener {
|
||||
private static final String DUMMY_NODE_DISPLAY_NAME = "Please Wait...";
|
||||
private volatile boolean load = true;
|
||||
|
||||
public void reset() {
|
||||
|
@ -27,6 +27,8 @@ import java.util.Arrays;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import javax.swing.ListSelectionModel;
|
||||
import javax.swing.SwingWorker;
|
||||
@ -331,7 +333,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return "Thumbnail";
|
||||
return NbBundle.getMessage(this.getClass(), "DataResultViewerThumbnail.title");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -384,8 +386,13 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
}
|
||||
|
||||
if (newPage > totalPages || newPage < 1) {
|
||||
JOptionPane.showMessageDialog(this, "Please enter a valid page number between 1 and " + totalPages,
|
||||
"Invalid page number", JOptionPane.WARNING_MESSAGE);
|
||||
JOptionPane.showMessageDialog(this,
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"DataResultViewerThumbnail.goToPageTextField.msgDlg",
|
||||
totalPages),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"DataResultViewerThumbnail.goToPageTextField.err"),
|
||||
JOptionPane.WARNING_MESSAGE);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -411,7 +418,8 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
pagePrevButton.setEnabled(false);
|
||||
pageNextButton.setEnabled(false);
|
||||
goToPageField.setEnabled(false);
|
||||
progress = ProgressHandleFactory.createHandle("Generating Thumbnails...");
|
||||
progress = ProgressHandleFactory.createHandle(
|
||||
NbBundle.getMessage(this.getClass(), "DataResultViewerThumbnail.genThumbs"));
|
||||
progress.start();
|
||||
progress.switchToIndeterminate();
|
||||
Node root = em.getRootContext();
|
||||
@ -449,7 +457,9 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
pageNumLabel.setText("");
|
||||
imagesRangeLabel.setText("");
|
||||
} else {
|
||||
pageNumLabel.setText(Integer.toString(curPage) + " of " + Integer.toString(totalPages));
|
||||
pageNumLabel.setText(
|
||||
NbBundle.getMessage(this.getClass(), "DataResultViewerThumbnail.pageNumbers.curOfTotal",
|
||||
Integer.toString(curPage), Integer.toString(totalPages)));
|
||||
final int imagesFrom = (curPage - 1) * ThumbnailViewChildren.IMAGES_PER_PAGE + 1;
|
||||
final int imagesTo = curPageImages + (curPage - 1) * ThumbnailViewChildren.IMAGES_PER_PAGE;
|
||||
imagesRangeLabel.setText(imagesFrom + "-" + imagesTo);
|
||||
|
@ -62,6 +62,7 @@ import javax.swing.SwingWorker;
|
||||
import org.netbeans.api.progress.ProgressHandle;
|
||||
import org.netbeans.api.progress.ProgressHandleFactory;
|
||||
import org.openide.util.Cancellable;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.ServiceProvider;
|
||||
import org.openide.util.lookup.ServiceProviders;
|
||||
import org.sleuthkit.autopsy.casemodule.Case;
|
||||
@ -139,7 +140,7 @@ public class FXVideoPanel extends MediaViewVideoPanel {
|
||||
currentFile = file;
|
||||
final boolean deleted = file.isDirNameFlagSet(TskData.TSK_FS_NAME_FLAG_ENUM.UNALLOC);
|
||||
if (deleted) {
|
||||
mediaPane.setInfoLabelText("Playback of deleted videos is not supported, use an external player.");
|
||||
mediaPane.setInfoLabelText(NbBundle.getMessage(this.getClass(), "FXVideoPanel.mediaPane.infoLabel"));
|
||||
removeAll();
|
||||
return;
|
||||
}
|
||||
@ -242,13 +243,15 @@ public class FXVideoPanel extends MediaViewVideoPanel {
|
||||
@Override
|
||||
protected Object doInBackground() throws Exception {
|
||||
success = false;
|
||||
progress = ProgressHandleFactory.createHandle("Buffering " + sFile.getName(), new Cancellable() {
|
||||
progress = ProgressHandleFactory.createHandle(
|
||||
NbBundle.getMessage(this.getClass(), "FXVideoPanel.progress.bufferingFile", sFile.getName()),
|
||||
new Cancellable() {
|
||||
@Override
|
||||
public boolean cancel() {
|
||||
return ExtractMedia.this.cancel(true);
|
||||
}
|
||||
});
|
||||
mediaPane.setProgressLabelText("Buffering... ");
|
||||
mediaPane.setProgressLabelText(NbBundle.getMessage(this.getClass(), "FXVideoPanel.progressLabel.buffering"));
|
||||
progress.start();
|
||||
progress.switchToDeterminate(100);
|
||||
try {
|
||||
@ -394,7 +397,7 @@ public class FXVideoPanel extends MediaViewVideoPanel {
|
||||
mediaView.setMediaPlayer(mediaPlayer);
|
||||
} catch (MediaException ex) {
|
||||
this.setProgressLabelText("");
|
||||
this.setInfoLabelText("Unsupported Format.");
|
||||
this.setInfoLabelText(NbBundle.getMessage(this.getClass(), "FXVideoPanel.media.unsupportedFormat"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,7 @@ import javax.swing.JComponent;
|
||||
import org.netbeans.spi.options.OptionsPanelController;
|
||||
import org.openide.util.HelpCtx;
|
||||
import org.openide.util.Lookup;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
|
||||
import java.util.logging.Level;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
@ -20,7 +21,8 @@ iconBase = "org/sleuthkit/autopsy/corecomponents/general-options.png",
|
||||
position = 1,
|
||||
keywords = "#OptionsCategory_Keywords_General",
|
||||
keywordsCategory = "General")
|
||||
@org.openide.util.NbBundle.Messages({"OptionsCategory_Name_General=General", "OptionsCategory_Keywords_General=general"})
|
||||
// moved to Bundle
|
||||
//@org.openide.util.NbBundle.Messages({"OptionsCategory_Name_General=General", "OptionsCategory_Keywords_General=general"})
|
||||
public final class GeneralOptionsPanelController extends OptionsPanelController {
|
||||
|
||||
private GeneralPanel panel;
|
||||
@ -81,7 +83,10 @@ public final class GeneralOptionsPanelController extends OptionsPanelController
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "GeneralOptionsPanelController listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to GeneralOptionsPanelController updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(
|
||||
NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@ -90,7 +95,10 @@ public final class GeneralOptionsPanelController extends OptionsPanelController
|
||||
}
|
||||
catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "GeneralOptionsPanelController listener threw exception", e);
|
||||
MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to GeneralOptionsPanelController updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
|
||||
MessageNotifyUtil.Notify.show(
|
||||
NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr"),
|
||||
NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr.msg"),
|
||||
MessageNotifyUtil.MessageType.ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -148,6 +148,9 @@
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="GeneralPanel.useGMTTimeRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="useGMTTimeRBActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="jLabel3">
|
||||
<Properties>
|
||||
|
@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.corecomponents;
|
||||
|
||||
import java.util.prefs.Preferences;
|
||||
import org.openide.util.NbPreferences;
|
||||
import org.sleuthkit.autopsy.datamodel.ContentUtils;
|
||||
|
||||
final class GeneralPanel extends javax.swing.JPanel {
|
||||
|
||||
@ -33,6 +34,7 @@ final class GeneralPanel extends javax.swing.JPanel {
|
||||
GeneralPanel(GeneralOptionsPanelController controller) {
|
||||
this.controller = controller;
|
||||
initComponents();
|
||||
ContentUtils.setDisplayInLocalTime(useLocalTimeRB.isSelected());
|
||||
// TODO listen to changes in form fields and call controller.changed()
|
||||
}
|
||||
|
||||
@ -80,6 +82,11 @@ final class GeneralPanel extends javax.swing.JPanel {
|
||||
|
||||
buttonGroup3.add(useGMTTimeRB);
|
||||
org.openide.awt.Mnemonics.setLocalizedText(useGMTTimeRB, org.openide.util.NbBundle.getMessage(GeneralPanel.class, "GeneralPanel.useGMTTimeRB.text")); // NOI18N
|
||||
useGMTTimeRB.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
useGMTTimeRBActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(GeneralPanel.class, "GeneralPanel.jLabel3.text")); // NOI18N
|
||||
|
||||
@ -144,6 +151,10 @@ final class GeneralPanel extends javax.swing.JPanel {
|
||||
// TODO add your handling code here:
|
||||
}//GEN-LAST:event_useBestViewerRBActionPerformed
|
||||
|
||||
private void useGMTTimeRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_useGMTTimeRBActionPerformed
|
||||
ContentUtils.setDisplayInLocalTime(useLocalTimeRB.isSelected());
|
||||
}//GEN-LAST:event_useGMTTimeRBActionPerformed
|
||||
|
||||
void load() {
|
||||
boolean keepPreferredViewer = prefs.getBoolean(KEEP_PREFERRED_VIEWER, false);
|
||||
keepCurrentViewerRB.setSelected(keepPreferredViewer);
|
||||
|
@ -54,6 +54,7 @@ import org.netbeans.api.progress.ProgressHandleFactory;
|
||||
import org.openide.DialogDisplayer;
|
||||
import org.openide.NotifyDescriptor;
|
||||
import org.openide.util.Cancellable;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.ServiceProvider;
|
||||
import org.openide.util.lookup.ServiceProviders;
|
||||
import org.sleuthkit.autopsy.casemodule.Case;
|
||||
@ -76,7 +77,7 @@ public class GstVideoPanel extends MediaViewVideoPanel {
|
||||
private boolean gstInited;
|
||||
private static final long MIN_FRAME_INTERVAL_MILLIS = 500;
|
||||
private static final long FRAME_CAPTURE_TIMEOUT_MILLIS = 1000;
|
||||
private static final String MEDIA_PLAYER_ERROR_STRING = "The media player cannot process this file.";
|
||||
private static final String MEDIA_PLAYER_ERROR_STRING = NbBundle.getMessage(GstVideoPanel.class, "GstVideoPanel.cannotProcFile.err");
|
||||
//playback
|
||||
private long durationMillis = 0;
|
||||
private VideoProgressWorker videoProgressWorker;
|
||||
@ -166,15 +167,15 @@ public class GstVideoPanel extends MediaViewVideoPanel {
|
||||
} catch (GstException e) {
|
||||
gstInited = false;
|
||||
logger.log(Level.SEVERE, "Error initializing gstreamer for audio/video viewing and frame extraction capabilities", e);
|
||||
MessageNotifyUtil.Notify.error("Error initializing gstreamer for audio/video viewing and frame extraction capabilities. "
|
||||
+ " Video and audio viewing will be disabled. ",
|
||||
MessageNotifyUtil.Notify.error(
|
||||
NbBundle.getMessage(this.getClass(), "GstVideoPanel.initGst.gstException.msg"),
|
||||
e.getMessage());
|
||||
return false;
|
||||
} catch (UnsatisfiedLinkError | NoClassDefFoundError | Exception e) {
|
||||
gstInited = false;
|
||||
logger.log(Level.SEVERE, "Error initializing gstreamer for audio/video viewing and extraction capabilities", e);
|
||||
MessageNotifyUtil.Notify.error("Error initializing gstreamer for audio/video viewing frame extraction capabilities. "
|
||||
+ " Video and audio viewing will be disabled. ",
|
||||
MessageNotifyUtil.Notify.error(
|
||||
NbBundle.getMessage(this.getClass(), "GstVideoPanel.initGst.otherException.msg"),
|
||||
e.getMessage());
|
||||
return false;
|
||||
}
|
||||
@ -189,7 +190,7 @@ public class GstVideoPanel extends MediaViewVideoPanel {
|
||||
currentFile = file;
|
||||
final boolean deleted = file.isDirNameFlagSet(TskData.TSK_FS_NAME_FLAG_ENUM.UNALLOC);
|
||||
if (deleted) {
|
||||
infoLabel.setText("Playback of deleted videos is not supported, use an external player.");
|
||||
infoLabel.setText(NbBundle.getMessage(this.getClass(), "GstVideoPanel.setupVideo.infoLabel.text"));
|
||||
videoPanel.removeAll();
|
||||
pauseButton.setEnabled(false);
|
||||
progressSlider.setEnabled(false);
|
||||
@ -318,7 +319,8 @@ public class GstVideoPanel extends MediaViewVideoPanel {
|
||||
|
||||
// throw exception if this file is known to be problematic
|
||||
if (badVideoFiles.contains(file.getName())) {
|
||||
throw new Exception("Cannot capture frames from this file (" + file.getName() + ").");
|
||||
throw new Exception(
|
||||
NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemFile.msg", file.getName()));
|
||||
}
|
||||
|
||||
// set up a PlayBin2 object
|
||||
@ -332,13 +334,13 @@ public class GstVideoPanel extends MediaViewVideoPanel {
|
||||
if (ret == StateChangeReturn.FAILURE) {
|
||||
// add this file to the set of known bad ones
|
||||
badVideoFiles.add(file.getName());
|
||||
throw new Exception("Problem with video file; problem when attempting to play while obtaining duration.");
|
||||
throw new Exception(NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemPlay.msg"));
|
||||
}
|
||||
ret = playbin.pause();
|
||||
if (ret == StateChangeReturn.FAILURE) {
|
||||
// add this file to the set of known bad ones
|
||||
badVideoFiles.add(file.getName());
|
||||
throw new Exception("Problem with video file; problem when attempting to pause while obtaining duration.");
|
||||
throw new Exception(NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemPause.msg"));
|
||||
}
|
||||
playbin.getState();
|
||||
|
||||
@ -364,7 +366,8 @@ public class GstVideoPanel extends MediaViewVideoPanel {
|
||||
if (ret == StateChangeReturn.FAILURE) {
|
||||
// add this file to the set of known bad ones
|
||||
badVideoFiles.add(file.getName());
|
||||
throw new Exception("Problem with video file; problem when attempting to pause while capturing a frame.");
|
||||
throw new Exception(
|
||||
NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemPauseCaptFrame.msg"));
|
||||
}
|
||||
playbin.getState();
|
||||
|
||||
@ -377,7 +380,8 @@ public class GstVideoPanel extends MediaViewVideoPanel {
|
||||
if (ret == StateChangeReturn.FAILURE) {
|
||||
// add this file to the set of known bad ones
|
||||
badVideoFiles.add(file.getName());
|
||||
throw new Exception("Problem with video file; problem when attempting to play while capturing a frame.");
|
||||
throw new Exception(
|
||||
NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemPlayCaptFrame.msg"));
|
||||
}
|
||||
|
||||
// wait for FrameCaptureRGBListener to finish
|
||||
@ -394,7 +398,8 @@ public class GstVideoPanel extends MediaViewVideoPanel {
|
||||
if (ret == StateChangeReturn.FAILURE) {
|
||||
// add this file to the set of known bad ones
|
||||
badVideoFiles.add(file.getName());
|
||||
throw new Exception("Problem with video file; problem when attempting to stop while capturing a frame.");
|
||||
throw new Exception(
|
||||
NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemStopCaptFrame.msg"));
|
||||
}
|
||||
|
||||
if (image == null) {
|
||||
@ -705,7 +710,7 @@ public class GstVideoPanel extends MediaViewVideoPanel {
|
||||
return ExtractMedia.this.cancel(true);
|
||||
}
|
||||
});
|
||||
progressLabel.setText("Buffering... ");
|
||||
progressLabel.setText(NbBundle.getMessage(this.getClass(), "GstVideoPanel.progress.buffering"));
|
||||
progress.start();
|
||||
progress.switchToDeterminate(100);
|
||||
try {
|
||||
@ -738,7 +743,7 @@ public class GstVideoPanel extends MediaViewVideoPanel {
|
||||
|
||||
void playMedia() {
|
||||
if (jFile == null || !jFile.exists()) {
|
||||
progressLabel.setText("Error buffering file");
|
||||
progressLabel.setText(NbBundle.getMessage(this.getClass(), "GstVideoPanel.progressLabel.bufferingErr"));
|
||||
return;
|
||||
}
|
||||
ClockTime dur = null;
|
||||
|
@ -33,6 +33,8 @@ import javafx.scene.image.ImageView;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.casemodule.Case;
|
||||
import org.sleuthkit.autopsy.corelibs.ScalrWrapper;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
@ -160,7 +162,9 @@ import org.sleuthkit.datamodel.ReadContentInputStream;
|
||||
return;
|
||||
} catch (OutOfMemoryError ex) {
|
||||
logger.log(Level.WARNING, "Could not load image file into media view (too large): " + fileName, ex);
|
||||
MessageNotifyUtil.Notify.warn("Could not load image file (too large): " + file.getName(), ex.getMessage());
|
||||
MessageNotifyUtil.Notify.warn(
|
||||
NbBundle.getMessage(this.getClass(), "MediaViewImagePanel.imgFileTooLarge.msg", file.getName()),
|
||||
ex.getMessage());
|
||||
return;
|
||||
} finally {
|
||||
try {
|
||||
|
@ -109,7 +109,8 @@ public class ProductInformationPanel extends JPanel implements HyperlinkListener
|
||||
jScrollPane2.setViewportView(description);
|
||||
|
||||
verboseLoggingButton.setBackground(new java.awt.Color(255, 255, 255));
|
||||
verboseLoggingButton.setText("Activate verbose logging");
|
||||
verboseLoggingButton.setText(
|
||||
NbBundle.getMessage(this.getClass(), "ProductInformationPanel.actVerboseLogging.text"));
|
||||
verboseLoggingButton.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
activateVerboseLogging(evt);
|
||||
@ -196,7 +197,8 @@ private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:eve
|
||||
|
||||
private void disableVerboseLoggingButton() {
|
||||
this.verboseLoggingButton.setEnabled(false);
|
||||
this.verboseLoggingButton.setText("Verbose logging enabled");
|
||||
this.verboseLoggingButton.setText(
|
||||
NbBundle.getMessage(this.getClass(), "ProductInformationPanel.verbLoggingEnabled.text"));
|
||||
}
|
||||
|
||||
private void closeDialog() {
|
||||
@ -225,17 +227,30 @@ private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:eve
|
||||
|
||||
private static String getOperatingSystemValue() {
|
||||
return NbBundle.getMessage(ProductInformationPanel.class, "Format_OperatingSystem_Value",
|
||||
System.getProperty("os.name", "unknown"),
|
||||
System.getProperty("os.version", "unknown"),
|
||||
System.getProperty("os.arch", "unknown"));
|
||||
System.getProperty("os.name",
|
||||
NbBundle.getMessage(ProductInformationPanel.class,
|
||||
"ProductInformationPanel.propertyUnknown.text")),
|
||||
System.getProperty("os.version",
|
||||
NbBundle.getMessage(ProductInformationPanel.class,
|
||||
"ProductInformationPanel.propertyUnknown.text")),
|
||||
System.getProperty("os.arch",
|
||||
NbBundle.getMessage(ProductInformationPanel.class,
|
||||
"ProductInformationPanel.propertyUnknown.text")));
|
||||
}
|
||||
|
||||
private static String getJavaValue() {
|
||||
return System.getProperty("java.version", "unknown");
|
||||
return System.getProperty("java.version",
|
||||
NbBundle.getMessage(ProductInformationPanel.class,
|
||||
"ProductInformationPanel.propertyUnknown.text"));
|
||||
}
|
||||
|
||||
private static String getVMValue() {
|
||||
return System.getProperty("java.vm.name", "unknown") + " " + System.getProperty("java.vm.version", "");
|
||||
return NbBundle.getMessage(ProductInformationPanel.class,
|
||||
"ProductInformationPanel.getVMValue.text",
|
||||
System.getProperty("java.vm.name",
|
||||
NbBundle.getMessage(ProductInformationPanel.class,
|
||||
"ProductInformationPanel.propertyUnknown.text")),
|
||||
System.getProperty("java.vm.version", ""));
|
||||
}
|
||||
|
||||
private static String getSystemLocaleValue() {
|
||||
@ -248,7 +263,8 @@ private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:eve
|
||||
}
|
||||
|
||||
private static String getEncodingValue() {
|
||||
return System.getProperty("file.encoding", "unknown");
|
||||
return System.getProperty("file.encoding",
|
||||
NbBundle.getMessage(ProductInformationPanel.class, "ProductInformationPanel.propertyUnknown.text"));
|
||||
}
|
||||
|
||||
public void setCopyright(String text) {
|
||||
|
@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.corecomponents;
|
||||
|
||||
import org.openide.nodes.FilterNode;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.util.NbBundle;
|
||||
|
||||
/**
|
||||
* This class is used to filter the nodes that we want to show on the "TreeTableView".
|
||||
@ -46,7 +47,7 @@ public class TableFilterNode extends FilterNode {
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
if (createChild) {
|
||||
return "Name";
|
||||
return NbBundle.getMessage(this.getClass(), "TableFilterNode.displayName.text");
|
||||
} else {
|
||||
return super.getDisplayName();
|
||||
}
|
||||
|
@ -1,2 +1,24 @@
|
||||
OpenIDE-Module-Name=CoreUtils
|
||||
JLNK.noPrefPath.text=No preferred path found
|
||||
PlatformUtil.nameUnknown=unknown
|
||||
PlatformUtil.verUnknown=unknown
|
||||
PlatformUtil.archUnknown=unknown
|
||||
PlatformUtil.jrePath.jreDir.msg=Embedded jre directory found in\: {0}
|
||||
PlatformUtil.jrePath.usingJavaPath.msg=Using java binary path\: {0}
|
||||
PlatformUtil.getPID.sigarNotInit.msg=Can't get PID, sigar not initialized
|
||||
PlatformUtil.getPID.gen.msg=Can't get PID,{0}
|
||||
PlatformUtil.getJavaPID.sigarNotInit.msg=Can't get PID of a java process, sigar not initialized
|
||||
PlatformUtil.getJavaPID.gen.msg=Can't get PID for query\: {0}, {1}
|
||||
PlatformUtil.getJavaPIDs.sigarNotInit=Can't get PIDs of a java process, sigar not initialized
|
||||
PlatformUtil.getJavaPIDs.gen.msg=Can't get PIDs for query\: {0}, {1}
|
||||
PlatformUtil.killProcess.sigarNotInit.msg=Can't kill process by pid, sigar not initialized.
|
||||
PlatformUtil.killProcess.gen.msg=Can't kill process\: {0}, {1}
|
||||
PlatformUtil.getProcVmUsed.sigarNotInit.msg=Can't get virt mem used, sigar not initialized.
|
||||
PlatformUtil.getProcVmUsed.gen.msg=Can't get virt mem used, {0}
|
||||
PlatformUtil.getJvmMemInfo.usageText=JVM heap usage\: {0}, JVM non-heap usage\: {1}
|
||||
PlatformUtil.getPhysicalMemInfo.usageText=Physical memory usage (max, total, free)\: {0}, {1}, {2}
|
||||
PlatformUtil.getAllMemUsageInfo.usageText={0}\
|
||||
{1}\
|
||||
Process Virtual Memory\: {2}
|
||||
StringExtract.illegalStateException.cannotInit.msg=Unicode table not properly initialized, cannot instantiate StringExtract
|
||||
|
||||
|
@ -0,0 +1,23 @@
|
||||
OpenIDE-Module-Name=\u4E3B\u8981\u30E6\u30FC\u30C6\u30A3\u30EA\u30C6\u30A3
|
||||
JLNK.noPrefPath.text=\u512A\u5148\u7684\u306B\u4F7F\u7528\u3059\u308B\u30D1\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
|
||||
PlatformUtil.nameUnknown=\u4E0D\u660E
|
||||
PlatformUtil.verUnknown=\u4E0D\u660E
|
||||
PlatformUtil.archUnknown=\u4E0D\u660E
|
||||
PlatformUtil.jrePath.jreDir.msg=\u57CB\u3081\u8FBC\u307E\u308C\u305FJRE\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u4E0B\u8A18\u3067\u767A\u898B\u3055\u308C\u307E\u3057\u305F\uFF1A{0}
|
||||
PlatformUtil.jrePath.usingJavaPath.msg=JAVA\u30D0\u30A4\u30CA\u30EA\u30D1\u30B9\u3092\u4F7F\u7528\uFF1A{0}
|
||||
PlatformUtil.getPID.sigarNotInit.msg=PID\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093
|
||||
PlatformUtil.getPID.gen.msg=PID\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3001{0}
|
||||
PlatformUtil.getJavaPID.sigarNotInit.msg=JAVA\u30D7\u30ED\u30BB\u30B9\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093
|
||||
PlatformUtil.getJavaPID.gen.msg=\u30AF\u30A8\u30EA\u30FC\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\uFF1A{0}, {1}
|
||||
PlatformUtil.getJavaPIDs.sigarNotInit=JAVA\u30D7\u30ED\u30BB\u30B9\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093
|
||||
PlatformUtil.getJavaPIDs.gen.msg=\u30AF\u30A8\u30EA\u30FC\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\uFF1A{0}, {1}
|
||||
PlatformUtil.killProcess.sigarNotInit.msg=PID\u3092\u4F7F\u7528\u3057\u3066\u30D7\u30ED\u30BB\u30B9\u3092\u5F37\u5236\u4FEE\u4E86\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
|
||||
PlatformUtil.killProcess.gen.msg=\u30D7\u30ED\u30BB\u30B9\u3092\u5F37\u5236\u4FEE\u4E86\u3067\u304D\u307E\u305B\u3093\uFF1A {0}, {1}
|
||||
PlatformUtil.getProcVmUsed.sigarNotInit.msg=\u4F7F\u7528\u4E2D\u306E\u4EEE\u60F3\u30E1\u30E2\u30EA\u91CF\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
|
||||
PlatformUtil.getProcVmUsed.gen.msg=\u4F7F\u7528\u4E2D\u306E\u4EEE\u60F3\u30E1\u30E2\u30EA\u91CF\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001{0}
|
||||
PlatformUtil.getJvmMemInfo.usageText=JVM\u30D2\u30FC\u30D7\u4F7F\u7528\u72B6\u6CC1\uFF1A{0}\u3001JVM\u975E\u30D2\u30FC\u30D7\u4F7F\u7528\u72B6\u6CC1\uFF1A{1}
|
||||
PlatformUtil.getPhysicalMemInfo.usageText=\u7269\u7406\u30E1\u30E2\u30EA\u4F7F\u7528\u72B6\u6CC1\uFF08\u6700\u5927\u3001\u5408\u8A08\u3001\u5229\u7528\u53EF\u80FD\uFF09\uFF1A {0}, {1}, {2}
|
||||
PlatformUtil.getAllMemUsageInfo.usageText={0}\
|
||||
{1}\
|
||||
\u30D7\u30ED\u30BB\u30B9\u4EEE\u60F3\u30E1\u30E2\u30EA\uFF1A{2}
|
||||
StringExtract.illegalStateException.cannotInit.msg=\u30E6\u30CB\u30B3\u30FC\u30C9\u30C6\u30FC\u30D6\u30EB\u304C\u6B63\u3057\u304F\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3001StringExtract\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093
|
@ -21,6 +21,8 @@ package org.sleuthkit.autopsy.coreutils;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.LnkEnums.CommonNetworkRelativeLinkFlags;
|
||||
import org.sleuthkit.autopsy.coreutils.LnkEnums.DriveType;
|
||||
import org.sleuthkit.autopsy.coreutils.LnkEnums.FileAttributesFlags;
|
||||
@ -294,7 +296,7 @@ import org.sleuthkit.autopsy.coreutils.LnkEnums.NetworkProviderType;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
return "No preferred path found";
|
||||
return NbBundle.getMessage(this.getClass(), "JLNK.noPrefPath.text");
|
||||
}
|
||||
|
||||
public String getBestName() {
|
||||
|
@ -16,7 +16,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.sleuthkit.autopsy.casemodule;
|
||||
package org.sleuthkit.autopsy.coreutils;
|
||||
|
||||
/**
|
||||
* Representation of a PhysicalDisk or partition.
|
@ -36,7 +36,7 @@ import java.util.logging.Level;
|
||||
*/
|
||||
public class ModuleSettings {
|
||||
|
||||
// The directory where the properties file is lcoated
|
||||
// The directory where the properties file is located
|
||||
private final static String moduleDirPath = PlatformUtil.getUserConfigDirectory();
|
||||
public static final String DEFAULT_CONTEXT = "GeneralContext";
|
||||
public static final String MAIN_SETTINGS = "Case";
|
||||
|
@ -37,7 +37,7 @@ import org.hyperic.sigar.Sigar;
|
||||
import org.hyperic.sigar.ptql.ProcessFinder;
|
||||
import org.openide.modules.InstalledFileLocator;
|
||||
import org.openide.modules.Places;
|
||||
import org.sleuthkit.autopsy.casemodule.LocalDisk;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.datamodel.SleuthkitJNI;
|
||||
import org.sleuthkit.datamodel.TskCoreException;
|
||||
|
||||
@ -48,9 +48,9 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
public class PlatformUtil {
|
||||
|
||||
private static String javaPath = null;
|
||||
public static final String OS_NAME_UNKNOWN = "unknown";
|
||||
public static final String OS_VERSION_UNKNOWN = "unknown";
|
||||
public static final String OS_ARCH_UNKNOWN = "unknown";
|
||||
public static final String OS_NAME_UNKNOWN = NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.nameUnknown");
|
||||
public static final String OS_VERSION_UNKNOWN = NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.verUnknown");
|
||||
public static final String OS_ARCH_UNKNOWN = NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.archUnknown");
|
||||
private static volatile long pid = -1;
|
||||
private static volatile Sigar sigar = null;
|
||||
private static volatile MemoryMXBean memoryManager = null;
|
||||
@ -118,7 +118,10 @@ public class PlatformUtil {
|
||||
File jrePath = new File(getInstallPath() + File.separator + "jre");
|
||||
|
||||
if (jrePath != null && jrePath.exists() && jrePath.isDirectory()) {
|
||||
System.out.println("Embedded jre directory found in: " + jrePath.getAbsolutePath());
|
||||
System.out.println(
|
||||
NbBundle.getMessage(PlatformUtil.class,
|
||||
"PlatformUtil.jrePath.jreDir.msg",
|
||||
jrePath.getAbsolutePath()));
|
||||
javaPath = jrePath.getAbsolutePath() + File.separator + "bin" + File.separator + "java";
|
||||
} else {
|
||||
//else use system installed java in PATH env variable
|
||||
@ -126,7 +129,7 @@ public class PlatformUtil {
|
||||
|
||||
}
|
||||
|
||||
System.out.println("Using java binary path: " + javaPath);
|
||||
System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.jrePath.usingJavaPath.msg", javaPath));
|
||||
|
||||
|
||||
return javaPath;
|
||||
@ -427,10 +430,10 @@ public class PlatformUtil {
|
||||
if (sigar != null) {
|
||||
pid = sigar.getPid();
|
||||
} else {
|
||||
System.out.println("Can't get PID, sigar not initialized");
|
||||
System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getPID.sigarNotInit.msg"));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("Can't get PID," + e.toString());
|
||||
System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getPID.gen.msg", e.toString()));
|
||||
}
|
||||
return pid;
|
||||
|
||||
@ -457,10 +460,11 @@ public class PlatformUtil {
|
||||
ProcessFinder finder = new ProcessFinder(sigar);
|
||||
jpid = finder.findSingleProcess(sigarQuery);
|
||||
} else {
|
||||
System.out.println("Can't get PID of a java process, sigar not initialized");
|
||||
System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getJavaPID.sigarNotInit.msg"));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("Can't get PID for query: " + sigarQuery + ", " + e.toString());
|
||||
System.out.println(
|
||||
NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getJavaPID.gen.msg", sigarQuery, e.toString()));
|
||||
}
|
||||
return jpid;
|
||||
|
||||
@ -487,10 +491,11 @@ public class PlatformUtil {
|
||||
ProcessFinder finder = new ProcessFinder(sigar);
|
||||
jpids = finder.find(sigarQuery);
|
||||
} else {
|
||||
System.out.println("Can't get PIDs of a java process, sigar not initialized");
|
||||
System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getJavaPIDs.sigarNotInit"));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("Can't get PIDs for query: " + sigarQuery + ", " + e.toString());
|
||||
System.out.println(
|
||||
NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getJavaPIDs.gen.msg", sigarQuery, e.toString()));
|
||||
}
|
||||
return jpids;
|
||||
|
||||
@ -509,10 +514,11 @@ public class PlatformUtil {
|
||||
if (sigar != null) {
|
||||
sigar.kill(pid, 9);
|
||||
} else {
|
||||
System.out.println("Can't kill process by pid, sigar not initialized.");
|
||||
System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.killProcess.sigarNotInit.msg"));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("Can't kill process: " + pid + ", " + e.toString());
|
||||
System.out.println(
|
||||
NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.killProcess.gen.msg", pid, e.toString()));
|
||||
}
|
||||
|
||||
}
|
||||
@ -532,12 +538,12 @@ public class PlatformUtil {
|
||||
}
|
||||
|
||||
if (sigar == null || pid == -1) {
|
||||
System.out.println("Can't get virt mem used, sigar not initialized. ");
|
||||
System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getProcVmUsed.sigarNotInit.msg"));
|
||||
return -1;
|
||||
}
|
||||
virtMem = sigar.getProcMem(pid).getSize();
|
||||
} catch (Exception e) {
|
||||
System.out.println("Can't get virt mem used, " + e.toString());
|
||||
System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getProcVmUsed.gen.msg", e.toString()));
|
||||
}
|
||||
|
||||
return virtMem;
|
||||
@ -557,9 +563,9 @@ public class PlatformUtil {
|
||||
final MemoryUsage heap = memoryManager.getHeapMemoryUsage();
|
||||
final MemoryUsage nonHeap = memoryManager.getNonHeapMemoryUsage();
|
||||
|
||||
return "JVM heap usage: " + heap.toString() + ", JVM non-heap usage: " + nonHeap.toString();
|
||||
|
||||
|
||||
return NbBundle.getMessage(PlatformUtil.class,
|
||||
"PlatformUtil.getJvmMemInfo.usageText",
|
||||
heap.toString(), nonHeap.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -572,9 +578,9 @@ public class PlatformUtil {
|
||||
final long maxMemory = runTime.maxMemory();
|
||||
final long totalMemory = runTime.totalMemory();
|
||||
final long freeMemory = runTime.freeMemory();
|
||||
return "Physical memory usage (max, total, free): "
|
||||
+ Long.toString(maxMemory) + ", " + Long.toString(totalMemory)
|
||||
+ ", " + Long.toString(freeMemory);
|
||||
return NbBundle.getMessage(PlatformUtil.class,
|
||||
"PlatformUtil.getPhysicalMemInfo.usageText",
|
||||
Long.toString(maxMemory), Long.toString(totalMemory), Long.toString(freeMemory));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -583,10 +589,14 @@ public class PlatformUtil {
|
||||
* @return formatted string with all memory usage info
|
||||
*/
|
||||
public static String getAllMemUsageInfo() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(PlatformUtil.getPhysicalMemInfo()).append("\n");
|
||||
sb.append(PlatformUtil.getJvmMemInfo()).append("\n");
|
||||
sb.append("Process Virtual Memory: ").append(PlatformUtil.getProcessVirtualMemoryUsed());
|
||||
return sb.toString();
|
||||
// StringBuilder sb = new StringBuilder();
|
||||
// sb.append(PlatformUtil.getPhysicalMemInfo()).append("\n");
|
||||
// sb.append(PlatformUtil.getJvmMemInfo()).append("\n");
|
||||
// sb.append("Process Virtual Memory: ").append(PlatformUtil.getProcessVirtualMemoryUsed());
|
||||
// return sb.toString();
|
||||
return NbBundle.getMessage(PlatformUtil.class,
|
||||
"PlatformUtil.getAllMemUsageInfo.usageText",
|
||||
PlatformUtil.getPhysicalMemInfo(), PlatformUtil.getJvmMemInfo(),
|
||||
PlatformUtil.getProcessVirtualMemoryUsed());
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,8 @@ import java.util.List;
|
||||
import java.util.Properties;
|
||||
import java.util.StringTokenizer;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.coreutils.StringExtract.StringExtractUnicodeTable.SCRIPT;
|
||||
|
||||
@ -78,7 +80,8 @@ public class StringExtract {
|
||||
unicodeTable = StringExtractUnicodeTable.getInstance();
|
||||
|
||||
if (unicodeTable == null) {
|
||||
throw new IllegalStateException("Unicode table not properly initialized, cannot instantiate StringExtract");
|
||||
throw new IllegalStateException(
|
||||
NbBundle.getMessage(StringExtract.class, "StringExtract.illegalStateException.cannotInit.msg"));
|
||||
}
|
||||
|
||||
setEnabledScripts(SUPPORTED_SCRIPTS);
|
||||
|
@ -22,6 +22,8 @@ import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.datamodel.AbstractFile;
|
||||
import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||
@ -52,117 +54,125 @@ public abstract class AbstractAbstractFileNode<T extends AbstractFile> extends A
|
||||
NAME {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Name";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.nameColLbl");
|
||||
}
|
||||
},
|
||||
LOCATION {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Location";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.locationColLbl");
|
||||
}
|
||||
},
|
||||
MOD_TIME {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Modified Time";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.modifiedTimeColLbl");
|
||||
}
|
||||
},
|
||||
CHANGED_TIME {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Change Time";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.changeTimeColLbl");
|
||||
}
|
||||
},
|
||||
ACCESS_TIME {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Access Time";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.accessTimeColLbl");
|
||||
}
|
||||
},
|
||||
CREATED_TIME {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Created Time";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.createdTimeColLbl");
|
||||
}
|
||||
},
|
||||
SIZE {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Size";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.sizeColLbl");
|
||||
}
|
||||
},
|
||||
FLAGS_DIR {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Flags(Dir)";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.flagsDirColLbl");
|
||||
}
|
||||
},
|
||||
FLAGS_META {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Flags(Meta)";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.flagsMetaColLbl");
|
||||
}
|
||||
},
|
||||
MODE {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Mode";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.modeColLbl");
|
||||
}
|
||||
},
|
||||
USER_ID {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "UserID";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.useridColLbl");
|
||||
}
|
||||
},
|
||||
GROUP_ID {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "GroupID";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.groupidColLbl");
|
||||
}
|
||||
},
|
||||
META_ADDR {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Meta Addr.";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.metaAddrColLbl");
|
||||
}
|
||||
},
|
||||
ATTR_ADDR {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Attr. Addr.";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.attrAddrColLbl");
|
||||
}
|
||||
},
|
||||
TYPE_DIR {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Type(Dir)";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.typeDirColLbl");
|
||||
}
|
||||
},
|
||||
TYPE_META {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Type(Meta)";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.typeMetaColLbl");
|
||||
}
|
||||
},
|
||||
KNOWN {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Known";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.knownColLbl");
|
||||
}
|
||||
},
|
||||
HASHSETS {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "In Hashsets";
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.inHashsetsColLbl");
|
||||
}
|
||||
},
|
||||
MD5HASH {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MD5 Hash";
|
||||
|
||||
return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.md5HashColLbl");
|
||||
}
|
||||
},
|
||||
ObjectID {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Object ID";
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@ -201,6 +211,7 @@ public abstract class AbstractAbstractFileNode<T extends AbstractFile> extends A
|
||||
map.put(AbstractFilePropertyType.KNOWN.toString(), content.getKnown().getName());
|
||||
map.put(AbstractFilePropertyType.HASHSETS.toString(), getHashSetHitsForFile(content));
|
||||
map.put(AbstractFilePropertyType.MD5HASH.toString(), content.getMd5Hash() == null ? "" : content.getMd5Hash());
|
||||
map.put(AbstractFilePropertyType.ObjectID.toString(), content.getId());
|
||||
}
|
||||
|
||||
|
||||
|
@ -21,7 +21,7 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
import org.openide.nodes.AbstractNode;
|
||||
import org.openide.nodes.Children.Keys;
|
||||
import org.openide.nodes.Node;
|
||||
import org.sleuthkit.autopsy.datamodel.KeywordHits.KeywordHitsRootNode;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.datamodel.DerivedFile;
|
||||
import org.sleuthkit.datamodel.Directory;
|
||||
import org.sleuthkit.datamodel.File;
|
||||
@ -106,7 +106,8 @@ abstract class AbstractContentChildren<T> extends Keys<T> {
|
||||
|
||||
@Override
|
||||
protected AbstractContentNode defaultVisit(SleuthkitVisitableItem di) {
|
||||
throw new UnsupportedOperationException("No Node defined for the given SleuthkitItem");
|
||||
throw new UnsupportedOperationException(NbBundle.getMessage(this.getClass(),
|
||||
"AbstractContentChildren.CreateTSKNodeVisitor.exception.noNodeMsg"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -186,7 +187,9 @@ abstract class AbstractContentChildren<T> extends Keys<T> {
|
||||
|
||||
@Override
|
||||
protected AbstractNode defaultVisit(AutopsyVisitableItem di) {
|
||||
throw new UnsupportedOperationException("No Node defined for the given DisplayableItem");
|
||||
throw new UnsupportedOperationException(
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.datamodel.Content;
|
||||
@ -63,7 +65,8 @@ public abstract class AbstractContentNode<T extends Content> extends ContentNode
|
||||
|
||||
@Override
|
||||
public void setName(String name) {
|
||||
throw new UnsupportedOperationException("Can't change the system name.");
|
||||
throw new UnsupportedOperationException(
|
||||
NbBundle.getMessage(this.getClass(), "AbstractContentNode.exception.cannotChangeSysName.msg"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.datamodel.AbstractFile;
|
||||
|
||||
@ -73,7 +74,7 @@ public abstract class AbstractFsContentNode<T extends AbstractFile> extends Abst
|
||||
|
||||
AbstractFilePropertyType[] fsTypes = AbstractFilePropertyType.values();
|
||||
final int FS_PROPS_LEN = fsTypes.length;
|
||||
final String NO_DESCR = "no description";
|
||||
final String NO_DESCR = NbBundle.getMessage(this.getClass(), "AbstractFsContentNode.noDesc.text");
|
||||
for (int i = 0; i < FS_PROPS_LEN; ++i) {
|
||||
final AbstractFilePropertyType propType = AbstractFilePropertyType.values()[i];
|
||||
final String propString = propType.toString();
|
||||
|
@ -22,6 +22,8 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.TimeZone;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||
import org.sleuthkit.datamodel.BlackboardAttribute;
|
||||
@ -135,7 +137,9 @@ public class ArtifactStringContent implements StringContent {
|
||||
//add file path
|
||||
|
||||
buffer.append("<tr>");
|
||||
buffer.append("<td>Source File Path</td>");
|
||||
buffer.append("<td>");
|
||||
buffer.append(NbBundle.getMessage(this.getClass(), "ArtifactStringContent.getStr.srcFilePath.text"));
|
||||
buffer.append("</td>");
|
||||
buffer.append("<td>");
|
||||
buffer.append(path);
|
||||
buffer.append("</td>");
|
||||
@ -146,7 +150,7 @@ public class ArtifactStringContent implements StringContent {
|
||||
|
||||
stringContent = buffer.toString();
|
||||
} catch (TskException ex) {
|
||||
stringContent = "Error getting content";
|
||||
stringContent = NbBundle.getMessage(this.getClass(), "ArtifactStringContent.getStr.err");
|
||||
}
|
||||
}
|
||||
|
||||
@ -159,7 +163,7 @@ public class ArtifactStringContent implements StringContent {
|
||||
} catch (TskException ex) {
|
||||
logger.log(Level.WARNING, "Getting file failed", ex);
|
||||
}
|
||||
throw new IllegalArgumentException("Couldn't get file from database");
|
||||
throw new IllegalArgumentException(NbBundle.getMessage(ArtifactStringContent.class, "ArtifactStringContent.exception.msg"));
|
||||
}
|
||||
|
||||
private static TimeZone getTimeZone(BlackboardArtifact artifact) {
|
||||
|
@ -18,10 +18,10 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.openide.nodes.AbstractNode;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
@ -65,15 +65,15 @@ public class ArtifactTypeNode extends DisplayableItemNode {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Artifact Type",
|
||||
"Artifact Type",
|
||||
"no description",
|
||||
type.getDisplayName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.artType.name"),
|
||||
NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.artType.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.artType.desc"),
|
||||
type.getDisplayName()));
|
||||
|
||||
ss.put(new NodeProperty("Child Count",
|
||||
"Child Count",
|
||||
"no description",
|
||||
childCount));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.childCnt.name"),
|
||||
NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.childCnt.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.childCnt.desc"),
|
||||
childCount));
|
||||
|
||||
return s;
|
||||
}
|
||||
|
@ -24,6 +24,8 @@ import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Sheet;
|
||||
@ -103,15 +105,15 @@ public class BlackboardArtifactNode extends DisplayableItemNode {
|
||||
ss = Sheet.createPropertiesSet();
|
||||
s.put(ss);
|
||||
}
|
||||
final String NO_DESCR = "no description";
|
||||
final String NO_DESCR = NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.noDesc.text");
|
||||
|
||||
Map<String, Object> map = new LinkedHashMap<String, Object>();
|
||||
fillPropertyMap(map, artifact);
|
||||
|
||||
ss.put(new NodeProperty("Source File",
|
||||
"Source File",
|
||||
NO_DESCR,
|
||||
associated.getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.srcFile.name"),
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.srcFile.displayName"),
|
||||
NO_DESCR,
|
||||
associated.getName()));
|
||||
|
||||
for (Map.Entry<String, Object> entry : map.entrySet()) {
|
||||
ss.put(new NodeProperty(entry.getKey(),
|
||||
@ -135,7 +137,10 @@ public class BlackboardArtifactNode extends DisplayableItemNode {
|
||||
AbstractFile af = (AbstractFile) associated;
|
||||
ext = af.getNameExtension();
|
||||
}
|
||||
ss.put(new NodeProperty("Extension", "Extension", NO_DESCR, ext));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.ext.name"),
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.ext.displayName"),
|
||||
NO_DESCR,
|
||||
ext));
|
||||
|
||||
try {
|
||||
String actualMimeType = "";
|
||||
@ -151,7 +156,11 @@ public class BlackboardArtifactNode extends DisplayableItemNode {
|
||||
if (actualMimeType.isEmpty()) {
|
||||
logger.log(Level.WARNING, "Could not find expected TSK_FILE_TYPE_SIG attribute.");
|
||||
} else {
|
||||
ss.put(new NodeProperty("MIME Type", "MIME Type", NO_DESCR, actualMimeType));
|
||||
ss.put(new NodeProperty(
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.mimeType.name"),
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.mimeType.displayName"),
|
||||
NO_DESCR,
|
||||
actualMimeType));
|
||||
}
|
||||
} catch (TskCoreException ex) {
|
||||
logger.log(Level.WARNING, "Error while searching for TSK_FILE_TYPE_SIG attribute: ", ex);
|
||||
@ -167,8 +176,11 @@ public class BlackboardArtifactNode extends DisplayableItemNode {
|
||||
}
|
||||
|
||||
if (sourcePath.isEmpty() == false) {
|
||||
ss.put(new NodeProperty("File Path", "File Path",
|
||||
NO_DESCR, sourcePath));
|
||||
ss.put(new NodeProperty(
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.filePath.name"),
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.filePath.displayName"),
|
||||
NO_DESCR,
|
||||
sourcePath));
|
||||
}
|
||||
} else {
|
||||
String dataSource = "";
|
||||
@ -184,8 +196,11 @@ public class BlackboardArtifactNode extends DisplayableItemNode {
|
||||
}
|
||||
|
||||
if (dataSource.isEmpty() == false) {
|
||||
ss.put(new NodeProperty("Data Source", "Data Source",
|
||||
NO_DESCR, dataSource));
|
||||
ss.put(new NodeProperty(
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.dataSrc.name"),
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.dataSrc.displayName"),
|
||||
NO_DESCR,
|
||||
dataSource));
|
||||
}
|
||||
}
|
||||
|
||||
@ -300,7 +315,8 @@ public class BlackboardArtifactNode extends DisplayableItemNode {
|
||||
} catch (TskException ex) {
|
||||
logger.log(Level.WARNING, "Getting file failed", ex);
|
||||
}
|
||||
throw new IllegalArgumentException("Couldn't get file from database");
|
||||
throw new IllegalArgumentException(
|
||||
NbBundle.getMessage(BlackboardArtifactNode.class, "BlackboardArtifactNode.getAssocCont.exception.msg"));
|
||||
}
|
||||
|
||||
private static HighlightLookup getHighlightLookup(BlackboardArtifact artifact, Content content) {
|
||||
|
@ -24,6 +24,7 @@ import java.util.logging.Logger;
|
||||
import javax.swing.Action;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.autopsy.actions.DeleteBlackboardArtifactTagAction;
|
||||
import org.sleuthkit.datamodel.BlackboardArtifactTag;
|
||||
@ -57,18 +58,34 @@ public class BlackboardArtifactTagNode extends DisplayableItemNode {
|
||||
propertySheet.put(properties);
|
||||
}
|
||||
|
||||
properties.put(new NodeProperty("Source File", "Source File", "", tag.getContent().getName()));
|
||||
properties.put(new NodeProperty(
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.srcFile.text"),
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.srcFile.text"),
|
||||
"",
|
||||
tag.getContent().getName()));
|
||||
String contentPath;
|
||||
try {
|
||||
contentPath = tag.getContent().getUniquePath();
|
||||
}
|
||||
catch (TskCoreException ex) {
|
||||
Logger.getLogger(ContentTagNode.class.getName()).log(Level.SEVERE, "Failed to get path for content (id = " + tag.getContent().getId() + ")", ex);
|
||||
contentPath = "Unavailable";
|
||||
contentPath = NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.unavail.text");
|
||||
}
|
||||
properties.put(new NodeProperty("Source File Path", "Source File Path", "", contentPath));
|
||||
properties.put(new NodeProperty("Result Type", "Result Type", "", tag.getArtifact().getDisplayName()));
|
||||
properties.put(new NodeProperty("Comment", "Comment", "", tag.getComment()));
|
||||
properties.put(new NodeProperty(
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.srcFilePath.text"),
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.srcFilePath.text"),
|
||||
"",
|
||||
contentPath));
|
||||
properties.put(new NodeProperty(
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.resultType.text"),
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.resultType.text"),
|
||||
"",
|
||||
tag.getArtifact().getDisplayName()));
|
||||
properties.put(new NodeProperty(
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.comment.text"),
|
||||
NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.comment.text"),
|
||||
"",
|
||||
tag.getComment()));
|
||||
|
||||
return propertySheet;
|
||||
}
|
||||
|
@ -1 +1,254 @@
|
||||
OpenIDE-Module-Name=DataModel
|
||||
AbstractAbstractFileNode.nameColLbl=Name
|
||||
AbstractAbstractFileNode.locationColLbl=Location
|
||||
AbstractAbstractFileNode.modifiedTimeColLbl=Modified Time
|
||||
AbstractAbstractFileNode.changeTimeColLbl=Change Time
|
||||
AbstractAbstractFileNode.accessTimeColLbl=Access Time
|
||||
AbstractAbstractFileNode.createdTimeColLbl=Created Time
|
||||
AbstractAbstractFileNode.sizeColLbl=Size
|
||||
AbstractAbstractFileNode.flagsDirColLbl=Flags(Dir)
|
||||
AbstractAbstractFileNode.flagsMetaColLbl=Flags(Meta)
|
||||
AbstractAbstractFileNode.modeColLbl=Mode
|
||||
AbstractAbstractFileNode.useridColLbl=UserID
|
||||
AbstractAbstractFileNode.groupidColLbl=GroupID
|
||||
AbstractAbstractFileNode.metaAddrColLbl=Meta Addr.
|
||||
AbstractAbstractFileNode.attrAddrColLbl=Attr. Addr.
|
||||
AbstractAbstractFileNode.typeDirColLbl=Type(Dir)
|
||||
AbstractAbstractFileNode.typeMetaColLbl=Type(Meta)
|
||||
AbstractAbstractFileNode.knownColLbl=Known
|
||||
AbstractAbstractFileNode.inHashsetsColLbl=In Hashsets
|
||||
AbstractAbstractFileNode.md5HashColLbl=MD5 Hash
|
||||
AbstractContentChildren.CreateTSKNodeVisitor.exception.noNodeMsg=No Node defined for the given SleuthkitItem
|
||||
AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg=No Node defined for the given DisplayableItem
|
||||
AbstractContentNode.exception.cannotChangeSysName.msg=Can't change the system name.
|
||||
AbstractFsContentNode.noDesc.text=no description
|
||||
ArtifactStringContent.getStr.srcFilePath.text=Source File Path
|
||||
ArtifactStringContent.getStr.err=Error getting content
|
||||
ArtifactStringContent.exception.msg=Couldn't get file from database
|
||||
ArtifactTypeNode.createSheet.artType.name=Artifact Type
|
||||
ArtifactTypeNode.createSheet.artType.displayName=Artifact Type
|
||||
ArtifactTypeNode.createSheet.artType.desc=no description
|
||||
ArtifactTypeNode.createSheet.childCnt.name=Child Count
|
||||
ArtifactTypeNode.createSheet.childCnt.displayName=Child Count
|
||||
ArtifactTypeNode.createSheet.childCnt.desc=no description
|
||||
BlackboardArtifactNode.noDesc.text=no description
|
||||
BlackboardArtifactNode.createSheet.srcFile.name=Source File
|
||||
BlackboardArtifactNode.createSheet.srcFile.displayName=Source File
|
||||
BlackboardArtifactNode.createSheet.ext.name=Extension
|
||||
BlackboardArtifactNode.createSheet.ext.displayName=Extension
|
||||
BlackboardArtifactNode.createSheet.mimeType.name=MIME Type
|
||||
BlackboardArtifactNode.createSheet.mimeType.displayName=MIME Type
|
||||
BlackboardArtifactNode.createSheet.filePath.name=File Path
|
||||
BlackboardArtifactNode.createSheet.filePath.displayName=File Path
|
||||
BlackboardArtifactNode.createSheet.dataSrc.name=Data Source
|
||||
BlackboardArtifactNode.createSheet.dataSrc.displayName=Data Source
|
||||
BlackboardArtifactNode.getAssocCont.exception.msg=Couldn't get file from database
|
||||
BlackboardArtifactTagNode.createSheet.srcFile.text=Source File
|
||||
BlackboardArtifactTagNode.createSheet.unavail.text=Unavailable
|
||||
BlackboardArtifactTagNode.createSheet.srcFilePath.text=Source File Path
|
||||
BlackboardArtifactTagNode.createSheet.resultType.text=Result Type
|
||||
BlackboardArtifactTagNode.createSheet.comment.text=Comment
|
||||
ContentTagNode.createSheet.file.name=File
|
||||
ContentTagNode.createSheet.file.displayName=File
|
||||
ContentTagNode.createSheet.unavail.path=Unavailable
|
||||
ContentTagNode.createSheet.filePath.name=File Path
|
||||
ContentTagNode.createSheet.filePath.displayName=File Path
|
||||
ContentTagNode.createSheet.comment.name=Comment
|
||||
ContentTagNode.createSheet.comment.displayName=Comment
|
||||
ContentTagTypeNode.displayName.text=File Tags
|
||||
ContentTagTypeNode.createSheet.name.name=Name
|
||||
ContentTagTypeNode.createSheet.name.displayName=Name
|
||||
ContentUtils.exception.msg=Can't extract a {0}
|
||||
DataModelActionsFactory.srcFileInDir.text=View Source File in Directory
|
||||
DataModelActionsFactory.fileInDir.text=View File in Directory
|
||||
DataModelActionsFactory.viewNewWin.text=View in New Window
|
||||
DataModelActionsFactory.openExtViewer.text=Open in External Viewer
|
||||
DataModelActionsFactory.srfFileSameMD5.text=Search for files with the same MD5 hash
|
||||
DataSourcesNode.name=Data Sources
|
||||
DataSourcesNode.createSheet.name.name=Name
|
||||
DataSourcesNode.createSheet.name.displayName=Name
|
||||
DataSourcesNode.createSheet.name.desc=no description
|
||||
DeletedContent.fsDelFilter.text=File System
|
||||
DeletedContent.allDelFilter.text=All
|
||||
DeletedContent.deletedContentsNode.name=Deleted Files
|
||||
DeletedContent.createSheet.name.name=Name
|
||||
DeletedContent.createSheet.name.displayName=Name
|
||||
DeletedContent.createSheet.name.desc=no description
|
||||
DeletedContent.createSheet.filterType.name=Filter Type
|
||||
DeletedContent.createSheet.filterType.displayName=Filter Type
|
||||
DeletedContent.createSheet.filterType.desc=no description
|
||||
DeletedContent.createKeys.maxObjects.msg=There are more Deleted Files than can be displayed. Only the first {0} Deleted Files will be shown.
|
||||
DeletedContent.createNodeForKey.typeNotSupported.msg=Not supported for this type of Displayable Item\: {0}
|
||||
DirectoryNode.parFolder.text=[parent folder]
|
||||
DirectoryNode.curFolder.text=[current folder]
|
||||
DirectoryNode.getActions.viewFileInDir.text=View File in Directory
|
||||
DirectoryNode.viewInNewWin.text=View in New Window
|
||||
EmailExtracted.mailAccount.text=Account
|
||||
EmailExtracted.mailFolder.text=Folder
|
||||
EmailExtracted.defaultAcct.text=Default
|
||||
EmailExtracted.defaultFolder.text=Default
|
||||
EmailExtracted.createSheet.name.name=Name
|
||||
EmailExtracted.createSheet.name.displayName=Name
|
||||
EmailExtracted.createSheet.name.desc=no description
|
||||
ExtractedContentNode.name.text=Extracted Content
|
||||
ExtractedContentNode.createSheet.name.name=Name
|
||||
ExtractedContentNode.createSheet.name.displayName=Name
|
||||
ExtractedContentNode.createSheet.name.desc=no description
|
||||
FileNode.viewFileInDir.text=View File in Directory
|
||||
FileNode.getActions.viewInNewWin.text=View in New Window
|
||||
FileNode.getActions.openInExtViewer.text=Open in External Viewer
|
||||
FileNode.getActions.searchFilesSameMD5.text=Search for files with the same MD5 hash
|
||||
FileSize.fileSizeRootNode.name=File Size
|
||||
FileSize.createSheet.name.name=Name
|
||||
FileSize.createSheet.name.displayName=Name
|
||||
FileSize.createSheet.name.desc=no description
|
||||
FileSize.createSheet.filterType.name=Filter Type
|
||||
FileSize.createSheet.filterType.displayName=Filter Type
|
||||
FileSize.createSheet.filterType.desc=no description
|
||||
FileSize.exception.notSupported.msg=Not supported for this type of Displayable Item\: {0}
|
||||
FileTypeChildren.exception.notSupported.msg=Not supported for this type of Displayable Item\: {0}
|
||||
FileTypeExtensionFilters.tskImgFilter.text=Images
|
||||
FileTypeExtensionFilters.tskVideoFilter.text=Videos
|
||||
FileTypeExtensionFilters.tskAudioFilter.text=Audio
|
||||
FileTypeExtensionFilters.tskArchiveFilter.text=Archives
|
||||
FileTypeExtensionFilters.tskDocumentFilter.text=Documents
|
||||
FileTypeExtensionFilters.tskExecFilter.text=Executable
|
||||
FileTypeExtensionFilters.autDocHtmlFilter.text=HTML
|
||||
FileTypeExtensionFilters.autDocOfficeFilter.text=Office
|
||||
FileTypeExtensionFilters.autoDocPdfFilter.text=PDF
|
||||
FileTypeExtensionFilters.autDocTxtFilter.text=Plain Text
|
||||
FileTypeExtensionFilters.autDocRtfFilter.text=Rich Text
|
||||
FileTypeNode.createSheet.filterType.name=Filter Type
|
||||
FileTypeNode.createSheet.filterType.displayName=Filter Type
|
||||
FileTypeNode.createSheet.filterType.desc=no description
|
||||
FileTypeNode.createSheet.fileExt.name=File Extensions
|
||||
FileTypeNode.createSheet.fileExt.displayName=File Extensions
|
||||
FileTypeNode.createSheet.fileExt.desc=no description
|
||||
FileTypesNode.fname.text=File Types
|
||||
FileTypesNode.createSheet.name.name=Name
|
||||
FileTypesNode.createSheet.name.displayName=Name
|
||||
FileTypesNode.createSheet.name.desc=no description
|
||||
HashsetHits.createSheet.name.name=Name
|
||||
HashsetHits.createSheet.name.displayName=Name
|
||||
HashsetHits.createSheet.name.desc=no description
|
||||
ImageNode.getActions.viewInNewWin.text=View in New Window
|
||||
ImageNode.getActions.openFileSearchByAttr.text=Open File Search by Attributes
|
||||
ImageNode.createSheet.name.name=Name
|
||||
ImageNode.createSheet.name.displayName=Name
|
||||
ImageNode.createSheet.name.desc=no description
|
||||
Installer.exception.tskVerStringNull.msg=Sleuth Kit JNI test call returned without error, but version string was null\!
|
||||
Installer.exception.taskVerStringBang.msg=Sleuth Kit JNI test call returned without error, but version string was ""\!
|
||||
Installer.tskLibErr.msg=Problem with Sleuth Kit JNI. Test call failed\!\
|
||||
\
|
||||
Details\: {0}
|
||||
Installer.tskLibErr.err=Fatal Error\!
|
||||
InterestingHits.interestingItems.text=INTERESTING ITEMS
|
||||
InterestingHits.displayName.text=Interesting Items
|
||||
InterestingHits.createSheet.name.name=Name
|
||||
InterestingHits.createSheet.name.displayName=Name
|
||||
InterestingHits.createSheet.name.desc=no description
|
||||
KeyValueNode.createSheet.name.name=Name
|
||||
KeyValueNode.createSheet.name.displayName=Name
|
||||
KeyValueNode.createSheet.name.desc=n/a
|
||||
KeyValueNode.createSheet.map.desc=n/a
|
||||
KeywordHits.kwHits.text=Keyword Hits
|
||||
KeywordHits.simpleLiteralSearch.text=Single Literal Keyword Search
|
||||
KeywordHits.singleRegexSearch.text=Single Regular Expression Search
|
||||
KeywordHits.createSheet.name.name=Name
|
||||
KeywordHits.createSheet.name.displayName=Name
|
||||
KeywordHits.createSheet.name.desc=no description
|
||||
KeywordHits.createSheet.listName.name=List Name
|
||||
KeywordHits.createSheet.listName.displayName=List Name
|
||||
KeywordHits.createSheet.listName.desc=no description
|
||||
KeywordHits.createSheet.numChildren.name=Number of Children
|
||||
KeywordHits.createSheet.numChildren.displayName=Number of Children
|
||||
KeywordHits.createSheet.numChildren.desc=no description
|
||||
KeywordHits.createSheet.filesWithHits.name=Files with Hits
|
||||
KeywordHits.createSheet.filesWithHits.displayName=Files with Hits
|
||||
KeywordHits.createSheet.filesWithHits.desc=no description
|
||||
KeywordHits.createNodeForKey.modTime.displayName=Modified Time
|
||||
KeywordHits.createNodeForKey.modTime.desc=Modified Time
|
||||
KeywordHits.createNodeForKey.accessTime.displayName=Access Time
|
||||
KeywordHits.createNodeForKey.accessTime.desc=Access Time
|
||||
KeywordHits.createNodeForKey.chgTime.displayName=Change Time
|
||||
KeywordHits.createNodeForKey.chgTime.desc=Change Time
|
||||
KeywordHits.createNodeForKey.chgTime.name=ChangeTime
|
||||
KeywordHits.createNodeForKey.accessTime.name=AccessTime
|
||||
KeywordHits.createNodeForKey.modTime.name=ModifiedTime
|
||||
KnownFileFilterNode.selectionContext.dataSources=Data Sources
|
||||
KnownFileFilterNode.selectionContext.views=Views
|
||||
LayoutFileNode.propertyType.parts=Parts
|
||||
LayoutFileNode.createSheet.name.name=Name
|
||||
LayoutFileNode.createSheet.name.displayName=Name
|
||||
LayoutFileNode.createSheet.name.desc=no description
|
||||
LayoutFileNode.createSheet.noDescr.text=no description
|
||||
LayoutFileNode.getActions.viewInNewWin.text=View in New Window
|
||||
LayoutFileNode.getActions.openInExtViewer.text=Open in External Viewer
|
||||
LocalFileNode.createSheet.name.name=Name
|
||||
LocalFileNode.createSheet.name.displayName=Name
|
||||
LocalFileNode.createSheet.name.desc=no description
|
||||
LocalFileNode.createSheet.noDescr.text=no description
|
||||
LocalFileNode.getActions.viewInNewWin.text=View in New Window
|
||||
LocalFileNode.getActions.openInExtViewer.text=Open in External Viewer
|
||||
LocalFileNode.getActions.searchFilesSameMd5.text=Search for files with the same MD5 hash
|
||||
RecentFiles.aut0DayFilter.displayName.text=Final Day
|
||||
RecentFiles.aut1dayFilter.displayName.text=Final Day - 1
|
||||
RecentFiles.aut2dayFilter.displayName.text=Final Day - 2
|
||||
RecentFiles.aut3dayFilter.displayName.text=Final Day - 3
|
||||
RecentFiles.aut4dayFilter.displayName.text=Final Day - 4
|
||||
RecentFiles.aut5dayFilter.displayName.text=Final Day - 5
|
||||
RecentFiles.aut6dayFilter.displayName.text=Final Day - 6
|
||||
RecentFilesFilterChildren.exception.defaultVisit.msg=Not supported for this type of Displayable Item\: {0}
|
||||
RecentFilesFilterNode.createSheet.filterType.name=Filter Type
|
||||
RecentFilesFilterNode.createSheet.filterType.displayName=Filter Type
|
||||
RecentFilesFilterNode.createSheet.filterType.desc=no description
|
||||
RecentFilesNode.createSheet.name.name=Name
|
||||
RecentFilesNode.createSheet.name.displayName=Name
|
||||
RecentFilesNode.createSheet.name.desc=no description
|
||||
RecentFilesNode.name.text=Recent Files
|
||||
ResultsNode.name.text=Results
|
||||
ResultsNode.createSheet.name.name=Name
|
||||
ResultsNode.createSheet.name.displayName=Name
|
||||
ResultsNode.createSheet.name.desc=no description
|
||||
TagNameNode.namePlusTags.text={0} Tags
|
||||
TagNameNode.contentTagTypeNodeKey.text=Content Tags
|
||||
TagNameNode.bbArtTagTypeNodeKey.text=Result Tags
|
||||
TagNameNode.bookmark.text=Bookmark
|
||||
TagNameNode.createSheet.name.name=Name
|
||||
TagNameNode.createSheet.name.displayName=Name
|
||||
TagsNode.displayName.text=Tags
|
||||
TagsNode.createSheet.name.name=Name
|
||||
TagsNode.createSheet.name.displayName=Name
|
||||
ViewsNode.name.text=Views
|
||||
ViewsNode.createSheet.name.name=Name
|
||||
ViewsNode.createSheet.name.displayName=Name
|
||||
ViewsNode.createSheet.name.desc=no description
|
||||
VirtualDirectoryNode.getActions.viewInNewWin.text=View in New Window
|
||||
VirtualDirectoryNode.createSheet.name.name=Name
|
||||
VirtualDirectoryNode.createSheet.name.displayName=Name
|
||||
VirtualDirectoryNode.createSheet.name.desc=no description
|
||||
VirtualDirectoryNode.createSheet.noDesc=no description
|
||||
VolumeNode.getActions.viewInNewWin.text=View in New Window
|
||||
VolumeNode.createSheet.name.name=Name
|
||||
VolumeNode.createSheet.name.displayName=Name
|
||||
VolumeNode.createSheet.name.desc=no description
|
||||
VolumeNode.createSheet.id.name=ID
|
||||
VolumeNode.createSheet.id.displayName=ID
|
||||
VolumeNode.createSheet.id.desc=no description
|
||||
VolumeNode.createSheet.startSector.name=Starting Sector
|
||||
VolumeNode.createSheet.startSector.displayName=Starting Sector
|
||||
VolumeNode.createSheet.startSector.desc=no description
|
||||
VolumeNode.createSheet.lenSectors.name=Length in Sectors
|
||||
VolumeNode.createSheet.lenSectors.displayName=Length in Sectors
|
||||
VolumeNode.createSheet.lenSectors.desc=no description
|
||||
VolumeNode.createSheet.description.name=Description
|
||||
VolumeNode.createSheet.description.displayName=Description
|
||||
VolumeNode.createSheet.description.desc=no description
|
||||
VolumeNode.createSheet.flags.name=Flags
|
||||
VolumeNode.createSheet.flags.displayName=Flags
|
||||
VolumeNode.createSheet.flags.desc=no description
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
249
Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties
Normal file
249
Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties
Normal file
@ -0,0 +1,249 @@
|
||||
OpenIDE-Module-Name=\u30C7\u30FC\u30BF\u30E2\u30C7\u30EB
|
||||
AbstractAbstractFileNode.nameColLbl=\u540D\u79F0
|
||||
AbstractAbstractFileNode.locationColLbl=\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3
|
||||
AbstractAbstractFileNode.modifiedTimeColLbl=\u4FEE\u6B63\u65E5\u6642
|
||||
AbstractAbstractFileNode.changeTimeColLbl=\u5909\u66F4\u65E5\u6642
|
||||
AbstractAbstractFileNode.accessTimeColLbl=\u30A2\u30AF\u30BB\u30B9\u65E5\u6642
|
||||
AbstractAbstractFileNode.createdTimeColLbl=\u4F5C\u6210\u65E5\u6642
|
||||
AbstractAbstractFileNode.sizeColLbl=\u30B5\u30A4\u30BA
|
||||
AbstractAbstractFileNode.modeColLbl=\u30E2\u30FC\u30C9
|
||||
AbstractAbstractFileNode.useridColLbl=\u30E6\u30FC\u30B6ID
|
||||
AbstractAbstractFileNode.groupidColLbl=\u30B0\u30EB\u30FC\u30D7ID
|
||||
AbstractAbstractFileNode.knownColLbl=\u65E2\u77E5
|
||||
AbstractAbstractFileNode.inHashsetsColLbl=HashSet\u306B\u5B58\u5728
|
||||
AbstractAbstractFileNode.md5HashColLbl=MD5\u30CF\u30C3\u30B7\u30E5
|
||||
AbstractContentChildren.CreateTSKNodeVisitor.exception.noNodeMsg=\u6307\u5B9A\u3055\u308C\u305FSleuthkitItem\u306E\u30CE\u30FC\u30C9\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093
|
||||
AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg=\u6307\u5B9A\u3055\u308C\u305F\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306E\u30CE\u30FC\u30C9\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093
|
||||
AbstractContentNode.exception.cannotChangeSysName.msg=\u30B7\u30B9\u30C6\u30E0\u540D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002
|
||||
AbstractFsContentNode.noDesc.text=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
ArtifactStringContent.getStr.srcFilePath.text=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9
|
||||
ArtifactStringContent.getStr.err=\u30B3\u30F3\u30C6\u30F3\u30C4\u5165\u624B\u30A8\u30E9\u30FC
|
||||
ArtifactStringContent.exception.msg=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u30D5\u30A1\u30A4\u30EB\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
|
||||
ArtifactTypeNode.createSheet.artType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
ArtifactTypeNode.createSheet.childCnt.name=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570
|
||||
ArtifactTypeNode.createSheet.childCnt.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
BlackboardArtifactNode.noDesc.text=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
BlackboardArtifactNode.createSheet.srcFile.name=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB
|
||||
BlackboardArtifactNode.createSheet.srcFile.displayName=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB
|
||||
BlackboardArtifactNode.createSheet.ext.name=\u62E1\u5F35\u5B50
|
||||
BlackboardArtifactNode.createSheet.ext.displayName=\u62E1\u5F35\u5B50
|
||||
BlackboardArtifactNode.createSheet.mimeType.name=MIME\u30BF\u30A4\u30D7
|
||||
BlackboardArtifactNode.createSheet.mimeType.displayName=MIME\u30BF\u30A4\u30D7
|
||||
BlackboardArtifactNode.createSheet.filePath.name=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9
|
||||
BlackboardArtifactNode.createSheet.filePath.displayName=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9
|
||||
BlackboardArtifactNode.createSheet.dataSrc.name=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9
|
||||
BlackboardArtifactNode.createSheet.dataSrc.displayName=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9
|
||||
BlackboardArtifactNode.getAssocCont.exception.msg=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u30D5\u30A1\u30A4\u30EB\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
|
||||
BlackboardArtifactTagNode.createSheet.srcFile.text=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB
|
||||
BlackboardArtifactTagNode.createSheet.unavail.text=\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
|
||||
BlackboardArtifactTagNode.createSheet.srcFilePath.text=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9
|
||||
BlackboardArtifactTagNode.createSheet.resultType.text=\u7D50\u679C\u30BF\u30A4\u30D7
|
||||
BlackboardArtifactTagNode.createSheet.comment.text=\u30B3\u30E1\u30F3\u30C8
|
||||
ContentTagNode.createSheet.file.name=\u30D5\u30A1\u30A4\u30EB
|
||||
ContentTagNode.createSheet.file.displayName=\u30D5\u30A1\u30A4\u30EB
|
||||
ContentTagNode.createSheet.unavail.path=\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
|
||||
ContentTagNode.createSheet.filePath.name=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9
|
||||
ContentTagNode.createSheet.filePath.displayName=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9
|
||||
ContentTagNode.createSheet.comment.name=\u30B3\u30E1\u30F3\u30C8
|
||||
ContentTagNode.createSheet.comment.displayName=\u30B3\u30E1\u30F3\u30C8
|
||||
ContentTagTypeNode.displayName.text=\u30D5\u30A1\u30A4\u30EB\u30BF\u30B0
|
||||
ContentTagTypeNode.createSheet.name.name=\u540D\u79F0
|
||||
ContentTagTypeNode.createSheet.name.displayName=\u540D\u79F0
|
||||
ContentUtils.exception.msg={0}\u3092\u62BD\u51FA\u3067\u304D\u307E\u305B\u3093
|
||||
DataModelActionsFactory.srcFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A
|
||||
DataModelActionsFactory.fileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A
|
||||
DataModelActionsFactory.viewNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A
|
||||
DataModelActionsFactory.openExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u306B\u8868\u793A
|
||||
DataModelActionsFactory.srfFileSameMD5.text=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22
|
||||
DataSourcesNode.name=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9
|
||||
DataSourcesNode.createSheet.name.name=\u540D\u79F0
|
||||
DataSourcesNode.createSheet.name.displayName=\u540D\u79F0
|
||||
DataSourcesNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
DeletedContent.fsDelFilter.text=\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0
|
||||
DeletedContent.allDelFilter.text=\u3059\u3079\u3066
|
||||
DeletedContent.deletedContentsNode.name=\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB
|
||||
DeletedContent.createSheet.name.name=\u540D\u79F0
|
||||
DeletedContent.createSheet.name.displayName=\u540D\u79F0
|
||||
DeletedContent.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
DeletedContent.createSheet.filterType.name=\u30D5\u30A1\u30A4\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7
|
||||
DeletedContent.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7
|
||||
DeletedContent.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
DeletedContent.createKeys.maxObjects.msg=\u8868\u793A\u53EF\u80FD\u306A\u6570\u3088\u308A\u3082\u591A\u304F\u306E\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u3059\u3002\u6700\u521D\u306E{0}\u306E\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002
|
||||
DeletedContent.createNodeForKey.typeNotSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0}
|
||||
DirectoryNode.parFolder.text=[\u30DA\u30A2\u30EC\u30F3\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC]
|
||||
DirectoryNode.curFolder.text=[\u73FE\u5728\u306E\u30D5\u30A9\u30EB\u30C0\u30FC]
|
||||
DirectoryNode.getActions.viewFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A
|
||||
DirectoryNode.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A
|
||||
EmailExtracted.mailAccount.text=\u30A2\u30AB\u30A6\u30F3\u30C8
|
||||
EmailExtracted.mailFolder.text=\u30D5\u30A9\u30EB\u30C0\u30FC
|
||||
EmailExtracted.defaultAcct.text=\u30C7\u30D5\u30A9\u30EB\u30C8
|
||||
EmailExtracted.defaultFolder.text=\u30C7\u30D5\u30A9\u30EB\u30C8
|
||||
EmailExtracted.createSheet.name.name=\u540D\u79F0
|
||||
EmailExtracted.createSheet.name.displayName=\u540D\u79F0
|
||||
EmailExtracted.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
ExtractedContentNode.name.text=\u62BD\u51FA\u3055\u308C\u305F\u30B3\u30F3\u30C6\u30F3\u30C4
|
||||
ExtractedContentNode.createSheet.name.name=\u540D\u79F0
|
||||
ExtractedContentNode.createSheet.name.displayName=\u540D\u79F0
|
||||
ExtractedContentNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
FileNode.viewFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A
|
||||
FileNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A
|
||||
FileNode.getActions.openInExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F
|
||||
FileNode.getActions.searchFilesSameMD5.text=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22
|
||||
FileSize.fileSizeRootNode.name=\u30D5\u30A1\u30A4\u30EB\u30B5\u30A4\u30BA
|
||||
FileSize.createSheet.name.name=\u540D\u79F0
|
||||
FileSize.createSheet.name.displayName=\u540D\u79F0
|
||||
FileSize.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
FileSize.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7
|
||||
FileSize.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7
|
||||
FileSize.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
FileSize.exception.notSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0}
|
||||
FileTypeChildren.exception.notSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0}
|
||||
FileTypeExtensionFilters.tskImgFilter.text=\u753B\u50CF
|
||||
FileTypeExtensionFilters.tskVideoFilter.text=\u30D3\u30C7\u30AA
|
||||
FileTypeExtensionFilters.tskAudioFilter.text=\u30AA\u30FC\u30C7\u30A3\u30AA
|
||||
FileTypeExtensionFilters.tskArchiveFilter.text=\u30A2\u30FC\u30AB\u30A4\u30D6
|
||||
FileTypeExtensionFilters.tskDocumentFilter.text=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8
|
||||
FileTypeExtensionFilters.tskExecFilter.text=\u5B9F\u884C\u53EF\u80FD
|
||||
FileTypeExtensionFilters.autDocHtmlFilter.text=HTML
|
||||
FileTypeExtensionFilters.autDocOfficeFilter.text=\u30AA\u30D5\u30A3\u30B9
|
||||
FileTypeExtensionFilters.autoDocPdfFilter.text=PDF
|
||||
FileTypeExtensionFilters.autDocTxtFilter.text=\u30D7\u30EC\u30FC\u30F3\u30C6\u30AD\u30B9\u30C8
|
||||
FileTypeExtensionFilters.autDocRtfFilter.text=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8
|
||||
FileTypeNode.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7
|
||||
FileTypeNode.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7
|
||||
FileTypeNode.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
FileTypeNode.createSheet.fileExt.name=\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u5B50
|
||||
FileTypeNode.createSheet.fileExt.displayName=\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u5B50
|
||||
FileTypeNode.createSheet.fileExt.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
FileTypesNode.fname.text=\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7
|
||||
FileTypesNode.createSheet.name.name=\u540D\u79F0
|
||||
FileTypesNode.createSheet.name.displayName=\u540D\u79F0
|
||||
FileTypesNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
HashsetHits.createSheet.name.name=\u540D\u79F0
|
||||
HashsetHits.createSheet.name.displayName=\u540D\u79F0
|
||||
HashsetHits.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
ImageNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A
|
||||
ImageNode.getActions.openFileSearchByAttr.text=\u5C5E\u6027\u306B\u3088\u308B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u3092\u958B\u304F
|
||||
ImageNode.createSheet.name.name=\u540D\u79F0
|
||||
ImageNode.createSheet.name.displayName=\u540D\u79F0
|
||||
ImageNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
Installer.exception.tskVerStringNull.msg=Sleuth Kit JNI\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u3067\u306F\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u304C\u3001\u30D0\u30FC\u30B8\u30E7\u30F3\u30B9\u30C8\u30EA\u30F3\u30B0\u306F\u30CC\u30EB\u3067\u3057\u305F\uFF01
|
||||
Installer.tskLibErr.msg=Sleuth Kit JNI\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A\
|
||||
\
|
||||
\u8A73\u7D30\uFF1A {0}
|
||||
Installer.tskLibErr.err=\u81F4\u547D\u7684\u30A8\u30E9\u30FC\uFF1A
|
||||
InterestingHits.interestingItems.text=\u602A\u3057\u3044\u30A2\u30A4\u30C6\u30E0
|
||||
InterestingHits.displayName.text=\u602A\u3057\u3044\u30A2\u30A4\u30C6\u30E0
|
||||
InterestingHits.createSheet.name.name=\u540D\u79F0
|
||||
InterestingHits.createSheet.name.displayName=\u540D\u79F0
|
||||
InterestingHits.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
KeyValueNode.createSheet.name.name=\u540D\u79F0
|
||||
KeyValueNode.createSheet.name.displayName=\u540D\u79F0
|
||||
KeyValueNode.createSheet.name.desc=\u8A72\u5F53\u306A\u3057
|
||||
KeyValueNode.createSheet.map.desc=\u8A72\u5F53\u306A\u3057
|
||||
KeywordHits.kwHits.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30D2\u30C3\u30C8
|
||||
KeywordHits.createSheet.name.name=\u540D\u79F0
|
||||
KeywordHits.createSheet.name.displayName=\u540D\u79F0
|
||||
KeywordHits.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
KeywordHits.createSheet.listName.name=\u30EA\u30B9\u30C8\u540D
|
||||
KeywordHits.createSheet.listName.displayName=\u30EA\u30B9\u30C8\u540D
|
||||
KeywordHits.createSheet.listName.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
KeywordHits.createSheet.numChildren.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
KeywordHits.createSheet.filesWithHits.name=\u30D2\u30C3\u30C8\u3057\u305F\u30D5\u30A1\u30A4\u30EB
|
||||
KeywordHits.createSheet.filesWithHits.displayName=\u30D2\u30C3\u30C8\u3057\u305F\u30D5\u30A1\u30A4\u30EB
|
||||
KeywordHits.createSheet.filesWithHits.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
KeywordHits.createNodeForKey.modTime.displayName=
|
||||
KeywordHits.createNodeForKey.modTime.desc=\u4FEE\u6B63\u65E5\u6642
|
||||
KeywordHits.createNodeForKey.accessTime.displayName=\u30A2\u30AF\u30BB\u30B9\u65E5\u6642
|
||||
KeywordHits.createNodeForKey.accessTime.desc=\u30A2\u30AF\u30BB\u30B9\u65E5\u6642
|
||||
KeywordHits.createNodeForKey.chgTime.displayName=\u5909\u66F4\u65E5\u6642
|
||||
KeywordHits.createNodeForKey.chgTime.desc=\u5909\u66F4\u65E5\u6642
|
||||
KeywordHits.createNodeForKey.chgTime.name=\u5909\u66F4\u65E5\u6642
|
||||
KeywordHits.createNodeForKey.accessTime.name=\u30A2\u30AF\u30BB\u30B9\u65E5\u6642
|
||||
KeywordHits.createNodeForKey.modTime.name=\u4FEE\u6B63\u65E5\u6642
|
||||
KnownFileFilterNode.selectionContext.dataSources=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9
|
||||
KnownFileFilterNode.selectionContext.views=\u30D3\u30E5\u30FC
|
||||
LayoutFileNode.propertyType.parts=\u30D1\u30FC\u30C4
|
||||
LayoutFileNode.createSheet.name.name=\u540D\u79F0
|
||||
LayoutFileNode.createSheet.name.displayName=\u540D\u79F0
|
||||
LayoutFileNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
LayoutFileNode.createSheet.noDescr.text=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
LayoutFileNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u8868\u793A
|
||||
LayoutFileNode.getActions.openInExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F
|
||||
LocalFileNode.createSheet.name.name=\u540D\u79F0
|
||||
LocalFileNode.createSheet.name.displayName=\u540D\u79F0
|
||||
LocalFileNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
LocalFileNode.createSheet.noDescr.text=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
LocalFileNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A
|
||||
LocalFileNode.getActions.openInExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F
|
||||
LocalFileNode.getActions.searchFilesSameMd5.text=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22
|
||||
RecentFiles.aut0DayFilter.displayName.text=\u6700\u7D42\u65E5
|
||||
RecentFiles.aut1dayFilter.displayName.text=\u6700\u7D42\u65E5 - 1
|
||||
RecentFiles.aut2dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF12
|
||||
RecentFiles.aut3dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF13
|
||||
RecentFiles.aut4dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF14
|
||||
RecentFiles.aut5dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF15
|
||||
RecentFiles.aut6dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF16
|
||||
RecentFilesFilterChildren.exception.defaultVisit.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u3067\u304D\u308B\u30A2\u30A4\u30C6\u30E0
|
||||
Installer.exception.taskVerStringBang.msg=Sleuth Kit JNI\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u3067\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u304C\u3001\u30D0\u30FC\u30B8\u30E7\u30F3\u30B9\u30C8\u30EA\u30F3\u30B0\u306F""\u3067\u3057\u305F\uFF01
|
||||
RecentFilesFilterNode.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7
|
||||
RecentFilesFilterNode.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7
|
||||
RecentFilesFilterNode.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
RecentFilesNode.createSheet.name.name=\u540D\u79F0
|
||||
RecentFilesNode.createSheet.name.displayName=\u540D\u79F0
|
||||
RecentFilesNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
RecentFilesNode.name.text=\u6700\u8FD1\u4F7F\u7528\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB
|
||||
ResultsNode.name.text=\u7D50\u679C
|
||||
ResultsNode.createSheet.name.name=\u540D\u79F0
|
||||
ResultsNode.createSheet.name.displayName=\u540D\u79F0
|
||||
ResultsNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
TagNameNode.namePlusTags.text={0}\u30BF\u30B0
|
||||
TagNameNode.contentTagTypeNodeKey.text=\u30B3\u30F3\u30C6\u30F3\u30C4\u30BF\u30B0
|
||||
TagNameNode.bbArtTagTypeNodeKey.text=\u7D50\u679C\u30BF\u30B0
|
||||
TagNameNode.bookmark.text=\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF
|
||||
TagNameNode.createSheet.name.name=\u540D\u79F0
|
||||
TagNameNode.createSheet.name.displayName=\u540D\u79F0
|
||||
TagsNode.displayName.text=\u30BF\u30B0
|
||||
TagsNode.createSheet.name.name=\u540D\u79F0
|
||||
AbstractAbstractFileNode.flagsDirColLbl=\u30D5\u30E9\u30B0\uFF08\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF09
|
||||
AbstractAbstractFileNode.flagsMetaColLbl=\u30D5\u30E9\u30B0\uFF08\u30E1\u30BF\u30C7\u30FC\u30BF\uFF09
|
||||
AbstractAbstractFileNode.metaAddrColLbl=\u30E1\u30BF\u30C7\u30FC\u30BF\u30A2\u30C9\u30EC\u30B9
|
||||
AbstractAbstractFileNode.attrAddrColLbl=\u5C5E\u6027\u30A2\u30C9\u30EC\u30B9
|
||||
AbstractAbstractFileNode.typeDirColLbl=\u30BF\u30A4\u30D7\uFF08\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF09
|
||||
AbstractAbstractFileNode.typeMetaColLbl=\u30BF\u30A4\u30D7\uFF08\u30E1\u30BF\u30C7\u30FC\u30BF\uFF09
|
||||
ArtifactTypeNode.createSheet.childCnt.displayName=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570
|
||||
TagsNode.createSheet.name.displayName=\u540D\u79F0
|
||||
ViewsNode.name.text=\u30D3\u30E5\u30FC
|
||||
ViewsNode.createSheet.name.name=\u540D\u79F0
|
||||
ViewsNode.createSheet.name.displayName=\u540D\u79F0
|
||||
ViewsNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
VirtualDirectoryNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A
|
||||
VirtualDirectoryNode.createSheet.name.name=\u540D\u79F0
|
||||
VirtualDirectoryNode.createSheet.name.displayName=\u540D\u79F0
|
||||
VirtualDirectoryNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
VirtualDirectoryNode.createSheet.noDesc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
VolumeNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A
|
||||
VolumeNode.createSheet.name.name=\u540D\u79F0
|
||||
VolumeNode.createSheet.name.displayName=\u540D\u79F0
|
||||
VolumeNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
VolumeNode.createSheet.id.name=ID
|
||||
VolumeNode.createSheet.id.displayName=ID
|
||||
VolumeNode.createSheet.id.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
VolumeNode.createSheet.startSector.name=\u6700\u521D\u306E\u30BB\u30AF\u30BF\u30FC
|
||||
VolumeNode.createSheet.startSector.displayName=\u6700\u521D\u306E\u30BB\u30AF\u30BF\u30FC
|
||||
VolumeNode.createSheet.startSector.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
VolumeNode.createSheet.lenSectors.name=\u30BB\u30AF\u30BF\u30FC\u306E\u9577\u3055
|
||||
VolumeNode.createSheet.lenSectors.displayName=\u30BB\u30AF\u30BF\u30FC\u306E\u9577\u3055
|
||||
VolumeNode.createSheet.lenSectors.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
VolumeNode.createSheet.description.name=\u8AAC\u660E
|
||||
VolumeNode.createSheet.description.displayName=\u8AAC\u660E
|
||||
VolumeNode.createSheet.description.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
VolumeNode.createSheet.flags.name=\u30D5\u30E9\u30B0
|
||||
VolumeNode.createSheet.flags.displayName=\u30D5\u30E9\u30B0
|
||||
VolumeNode.createSheet.flags.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
ArtifactTypeNode.createSheet.artType.name=\u6210\u679C\u7269\u30BF\u30A4\u30D7
|
||||
ArtifactTypeNode.createSheet.artType.displayName=\u6210\u679C\u7269\u30BF\u30A4\u30D7
|
||||
KeywordHits.createSheet.numChildren.name=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570
|
||||
KeywordHits.createSheet.numChildren.displayName=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570
|
||||
KeywordHits.simpleLiteralSearch.text=\u30B7\u30F3\u30B0\u30EB\u30EA\u30C6\u30E9\u30EB\u691C\u7D22
|
||||
KeywordHits.singleRegexSearch.text=\u30B7\u30F3\u30B0\u30EB\u6B63\u898F\u8868\u73FE\u691C\u7D22
|
@ -25,6 +25,7 @@ import java.util.logging.Logger;
|
||||
import javax.swing.Action;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.autopsy.actions.DeleteContentTagAction;
|
||||
import org.sleuthkit.datamodel.ContentTag;
|
||||
@ -57,17 +58,26 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
propertySheet.put(properties);
|
||||
}
|
||||
|
||||
properties.put(new NodeProperty("File", "File", "", tag.getContent().getName()));
|
||||
properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.file.name"),
|
||||
NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.file.displayName"),
|
||||
"",
|
||||
tag.getContent().getName()));
|
||||
String contentPath;
|
||||
try {
|
||||
contentPath = tag.getContent().getUniquePath();
|
||||
}
|
||||
catch (TskCoreException ex) {
|
||||
Logger.getLogger(ContentTagNode.class.getName()).log(Level.SEVERE, "Failed to get path for content (id = " + tag.getContent().getId() + ")", ex);
|
||||
contentPath = "Unavailable";
|
||||
contentPath = NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.unavail.path");
|
||||
}
|
||||
properties.put(new NodeProperty("File Path", "File Path", "", contentPath));
|
||||
properties.put(new NodeProperty("Comment", "Comment", "", tag.getComment()));
|
||||
properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.filePath.name"),
|
||||
NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.filePath.displayName"),
|
||||
"",
|
||||
contentPath));
|
||||
properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.comment.name"),
|
||||
NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.comment.displayName"),
|
||||
"",
|
||||
tag.getComment()));
|
||||
|
||||
return propertySheet;
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ import org.openide.nodes.ChildFactory;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.autopsy.casemodule.Case;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
@ -37,7 +38,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
* then by tag name.
|
||||
*/
|
||||
public class ContentTagTypeNode extends DisplayableItemNode {
|
||||
private static final String DISPLAY_NAME = "File Tags";
|
||||
private static final String DISPLAY_NAME = NbBundle.getMessage(ContentTagTypeNode.class, "ContentTagTypeNode.displayName.text");
|
||||
private static final String ICON_PATH = "org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png";
|
||||
|
||||
public ContentTagTypeNode(TagName tagName) {
|
||||
@ -65,7 +66,10 @@ public class ContentTagTypeNode extends DisplayableItemNode {
|
||||
propertySheet.put(properties);
|
||||
}
|
||||
|
||||
properties.put(new NodeProperty("Name", "Name", "", getName()));
|
||||
properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagTypeNode.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "ContentTagTypeNode.createSheet.name.displayName"),
|
||||
"",
|
||||
getName()));
|
||||
|
||||
return propertySheet;
|
||||
}
|
||||
|
@ -25,6 +25,8 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.TimeZone;
|
||||
import java.util.logging.Level;
|
||||
import java.util.prefs.Preferences;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import javax.swing.SwingWorker;
|
||||
import org.netbeans.api.progress.ProgressHandle;
|
||||
@ -50,7 +52,7 @@ public final class ContentUtils {
|
||||
private final static Logger logger = Logger.getLogger(ContentUtils.class.getName());
|
||||
private static final SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
|
||||
private static final SimpleDateFormat dateFormatterISO8601 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
|
||||
|
||||
private static boolean displayInLocalTime;
|
||||
// don't instantiate
|
||||
private ContentUtils() {
|
||||
throw new AssertionError();
|
||||
@ -104,12 +106,11 @@ public final class ContentUtils {
|
||||
public static String getStringTimeISO8601(long epochSeconds, Content c) {
|
||||
return getStringTimeISO8601(epochSeconds, getTimeZone(c));
|
||||
}
|
||||
|
||||
|
||||
public static TimeZone getTimeZone(Content c) {
|
||||
Preferences generalPanelPrefs = NbPreferences.root().node("/org/sleuthkit/autopsy/core");
|
||||
boolean useLocalTime = generalPanelPrefs.getBoolean("useLocalTime", true);
|
||||
|
||||
try {
|
||||
if (!useLocalTime) {
|
||||
if (!getDisplayInLocalTime()) {
|
||||
return TimeZone.getTimeZone("GMT");
|
||||
}
|
||||
else {
|
||||
@ -356,8 +357,23 @@ public final class ContentUtils {
|
||||
|
||||
@Override
|
||||
protected Void defaultVisit(Content cntnt) {
|
||||
throw new UnsupportedOperationException("Can't extract a "
|
||||
+ cntnt.getClass().getSimpleName());
|
||||
throw new UnsupportedOperationException(NbBundle.getMessage(this.getClass(),
|
||||
"ContentUtils.exception.msg",
|
||||
cntnt.getClass().getSimpleName()));
|
||||
}
|
||||
}
|
||||
/**sets displayInlocalTime value based on button in GeneralPanel.java
|
||||
*
|
||||
* @param flag
|
||||
*/
|
||||
public static void setDisplayInLocalTime(boolean flag) {
|
||||
displayInLocalTime = flag;
|
||||
}
|
||||
/** get global timezone setting for displaying time values
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static boolean getDisplayInLocalTime(){
|
||||
return displayInLocalTime;
|
||||
}
|
||||
}
|
||||
|
@ -21,6 +21,8 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.swing.Action;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.actions.AddBlackboardArtifactTagAction;
|
||||
import org.sleuthkit.autopsy.actions.AddContentTagAction;
|
||||
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
||||
@ -46,17 +48,28 @@ import org.sleuthkit.datamodel.VirtualDirectory;
|
||||
// method could be implemented. If the different nodes are necessary, is it merely because of some misuse of the Visitor pattern somewhere?
|
||||
// 2. All of this would be much improved by not constructing nodes with actions, but this might be necessary with pushing of nodes rather than use of lookups to
|
||||
// handle selections.
|
||||
class DataModelActionsFactory {
|
||||
class DataModelActionsFactory {
|
||||
public static final String VIEW_SOURCE_FILE_IN_DIR = NbBundle
|
||||
.getMessage(DataModelActionsFactory.class, "DataModelActionsFactory.srcFileInDir.text");
|
||||
public static final String VIEW_FILE_IN_DIR = NbBundle
|
||||
.getMessage(DataModelActionsFactory.class, "DataModelActionsFactory.fileInDir.text");
|
||||
public static final String VIEW_IN_NEW_WINDOW = NbBundle
|
||||
.getMessage(DataModelActionsFactory.class, "DataModelActionsFactory.viewNewWin.text");
|
||||
public static final String OPEN_IN_EXTERNAL_VIEWER = NbBundle
|
||||
.getMessage(DataModelActionsFactory.class, "DataModelActionsFactory.openExtViewer.text");
|
||||
public static final String SEARCH_FOR_FILES_SAME_MD5 = NbBundle
|
||||
.getMessage(DataModelActionsFactory.class, "DataModelActionsFactory.srfFileSameMD5.text");
|
||||
|
||||
static List<Action> getActions(File file, boolean isArtifactSource) {
|
||||
List<Action> actions = new ArrayList<>();
|
||||
actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), file));
|
||||
actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), file));
|
||||
final FileNode fileNode = new FileNode(file);
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(new NewWindowViewAction("View in New Window", fileNode));
|
||||
actions.add(new ExternalViewerAction("Open in External Viewer", fileNode));
|
||||
actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, fileNode));
|
||||
actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, fileNode));
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(ExtractAction.getInstance());
|
||||
actions.add(new HashSearchAction("Search for files with the same MD5 hash", fileNode));
|
||||
actions.add(new HashSearchAction(SEARCH_FOR_FILES_SAME_MD5, fileNode));
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(AddContentTagAction.getInstance());
|
||||
if (isArtifactSource) {
|
||||
@ -68,11 +81,11 @@ class DataModelActionsFactory {
|
||||
|
||||
static List<Action> getActions(LayoutFile file, boolean isArtifactSource) {
|
||||
List<Action> actions = new ArrayList<>();
|
||||
actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), file));
|
||||
actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), file));
|
||||
LayoutFileNode layoutFileNode = new LayoutFileNode(file);
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(new NewWindowViewAction("View in New Window", layoutFileNode));
|
||||
actions.add(new ExternalViewerAction("Open in External Viewer", layoutFileNode));
|
||||
actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, layoutFileNode));
|
||||
actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, layoutFileNode));
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(ExtractAction.getInstance());//
|
||||
actions.add(null); // creates a menu separator
|
||||
@ -86,11 +99,11 @@ class DataModelActionsFactory {
|
||||
|
||||
static List<Action> getActions(Directory directory, boolean isArtifactSource) {
|
||||
List<Action> actions = new ArrayList<>();
|
||||
actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), directory));
|
||||
actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), directory));
|
||||
DirectoryNode directoryNode = new DirectoryNode(directory);
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(new NewWindowViewAction("View in New Window", directoryNode));
|
||||
actions.add(new ExternalViewerAction("Open in External Viewer", directoryNode));
|
||||
actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, directoryNode));
|
||||
actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, directoryNode));
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(ExtractAction.getInstance());
|
||||
actions.add(null); // creates a menu separator
|
||||
@ -104,11 +117,11 @@ class DataModelActionsFactory {
|
||||
|
||||
static List<Action> getActions(VirtualDirectory directory, boolean isArtifactSource) {
|
||||
List<Action> actions = new ArrayList<>();
|
||||
actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), directory));
|
||||
actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), directory));
|
||||
VirtualDirectoryNode directoryNode = new VirtualDirectoryNode(directory);
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(new NewWindowViewAction("View in New Window", directoryNode));
|
||||
actions.add(new ExternalViewerAction("Open in External Viewer", directoryNode));
|
||||
actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, directoryNode));
|
||||
actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, directoryNode));
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(ExtractAction.getInstance());
|
||||
actions.add(null); // creates a menu separator
|
||||
@ -122,11 +135,11 @@ class DataModelActionsFactory {
|
||||
|
||||
static List<Action> getActions(LocalFile file, boolean isArtifactSource) {
|
||||
List<Action> actions = new ArrayList<>();
|
||||
actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), file));
|
||||
actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), file));
|
||||
final LocalFileNode localFileNode = new LocalFileNode(file);
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(new NewWindowViewAction("View in New Window", localFileNode));
|
||||
actions.add(new ExternalViewerAction("Open in External Viewer", localFileNode));
|
||||
actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, localFileNode));
|
||||
actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, localFileNode));
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(ExtractAction.getInstance());
|
||||
actions.add(null); // creates a menu separator
|
||||
@ -140,11 +153,11 @@ class DataModelActionsFactory {
|
||||
|
||||
static List<Action> getActions(DerivedFile file, boolean isArtifactSource) {
|
||||
List<Action> actions = new ArrayList<>();
|
||||
actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), file));
|
||||
actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), file));
|
||||
final LocalFileNode localFileNode = new LocalFileNode(file);
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(new NewWindowViewAction("View in New Window", localFileNode));
|
||||
actions.add(new ExternalViewerAction("Open in External Viewer", localFileNode));
|
||||
actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, localFileNode));
|
||||
actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, localFileNode));
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(ExtractAction.getInstance());
|
||||
actions.add(null); // creates a menu separator
|
||||
|
@ -19,8 +19,9 @@
|
||||
package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import java.util.List;
|
||||
import org.openide.nodes.AbstractNode;
|
||||
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.datamodel.Content;
|
||||
|
||||
@ -29,7 +30,7 @@ import org.sleuthkit.datamodel.Content;
|
||||
*/
|
||||
public class DataSourcesNode extends DisplayableItemNode {
|
||||
|
||||
public static final String NAME = "Data Sources";
|
||||
public static final String NAME = NbBundle.getMessage(DataSourcesNode.class, "DataSourcesNode.name");
|
||||
|
||||
public DataSourcesNode(List<Content> images) {
|
||||
super(new RootContentChildren(images), Lookups.singleton(NAME));
|
||||
@ -57,10 +58,10 @@ public class DataSourcesNode extends DisplayableItemNode {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
NAME));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "DataSourcesNode.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "DataSourcesNode.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "DataSourcesNode.createSheet.name.desc"),
|
||||
NAME));
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ import org.openide.nodes.ChildFactory;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.datamodel.AbstractFile;
|
||||
@ -51,8 +52,12 @@ public class DeletedContent implements AutopsyVisitableItem {
|
||||
|
||||
public enum DeletedContentFilter implements AutopsyVisitableItem {
|
||||
|
||||
FS_DELETED_FILTER(0, "FS_DELETED_FILTER", "File System"),
|
||||
ALL_DELETED_FILTER(1, "ALL_DELETED_FILTER", "All");
|
||||
FS_DELETED_FILTER(0,
|
||||
"FS_DELETED_FILTER",
|
||||
NbBundle.getMessage(DeletedContent.class, "DeletedContent.fsDelFilter.text")),
|
||||
ALL_DELETED_FILTER(1,
|
||||
"ALL_DELETED_FILTER",
|
||||
NbBundle.getMessage(DeletedContent.class, "DeletedContent.allDelFilter.text"));
|
||||
private int id;
|
||||
private String name;
|
||||
private String displayName;
|
||||
@ -97,7 +102,8 @@ public class DeletedContent implements AutopsyVisitableItem {
|
||||
|
||||
public static class DeletedContentsNode extends DisplayableItemNode {
|
||||
|
||||
private static final String NAME = "Deleted Files";
|
||||
private static final String NAME = NbBundle.getMessage(DeletedContent.class,
|
||||
"DeletedContent.deletedContentsNode.name");
|
||||
private SleuthkitCase skCase;
|
||||
|
||||
DeletedContentsNode(SleuthkitCase skCase) {
|
||||
@ -127,10 +133,10 @@ public class DeletedContent implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
NAME));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.name.desc"),
|
||||
NAME));
|
||||
return s;
|
||||
}
|
||||
}
|
||||
@ -191,9 +197,10 @@ public class DeletedContent implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Filter Type",
|
||||
"Filter Type",
|
||||
"no description",
|
||||
ss.put(new NodeProperty(
|
||||
NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.filterType.name"),
|
||||
NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.filterType.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.filterType.desc"),
|
||||
filter.getDisplayName()));
|
||||
|
||||
return s;
|
||||
@ -225,9 +232,9 @@ public class DeletedContent implements AutopsyVisitableItem {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
JOptionPane.showMessageDialog(null, "There are more Deleted Files than can be displayed. Only the first "
|
||||
+ (MAX_OBJECTS - 1)
|
||||
+ " Deleted Files will be shown.");
|
||||
JOptionPane.showMessageDialog(null, NbBundle.getMessage(this.getClass(),
|
||||
"DeletedContent.createKeys.maxObjects.msg",
|
||||
MAX_OBJECTS - 1));
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -330,7 +337,9 @@ public class DeletedContent implements AutopsyVisitableItem {
|
||||
|
||||
@Override
|
||||
protected AbstractNode defaultVisit(Content di) {
|
||||
throw new UnsupportedOperationException("Not supported for this type of Displayable Item: " + di.toString());
|
||||
throw new UnsupportedOperationException(NbBundle.getMessage(this.getClass(),
|
||||
"DeletedContent.createNodeForKey.typeNotSupported.msg",
|
||||
di.toString()));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -21,6 +21,8 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.swing.Action;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
||||
import org.sleuthkit.autopsy.actions.AddContentTagAction;
|
||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||
@ -36,8 +38,8 @@ import org.sleuthkit.datamodel.TskData.TSK_FS_NAME_FLAG_ENUM;
|
||||
*/
|
||||
public class DirectoryNode extends AbstractFsContentNode<AbstractFile> {
|
||||
|
||||
public static final String DOTDOTDIR = "[parent folder]";
|
||||
public static final String DOTDIR = "[current folder]";
|
||||
public static final String DOTDOTDIR = NbBundle.getMessage(DirectoryNode.class, "DirectoryNode.parFolder.text");
|
||||
public static final String DOTDIR = NbBundle.getMessage(DirectoryNode.class, "DirectoryNode.curFolder.text");
|
||||
|
||||
public DirectoryNode(Directory dir) {
|
||||
this(dir, true);
|
||||
@ -70,10 +72,11 @@ public class DirectoryNode extends AbstractFsContentNode<AbstractFile> {
|
||||
public Action[] getActions(boolean popup) {
|
||||
List<Action> actions = new ArrayList<>();
|
||||
if (!getDirectoryBrowseMode()) {
|
||||
actions.add(new ViewContextAction("View File in Directory", this));
|
||||
actions.add(new ViewContextAction(
|
||||
NbBundle.getMessage(this.getClass(), "DirectoryNode.getActions.viewFileInDir.text"), this));
|
||||
actions.add(null); // creates a menu separator
|
||||
}
|
||||
actions.add(new NewWindowViewAction("View in New Window", this));
|
||||
actions.add(new NewWindowViewAction(NbBundle.getMessage(this.getClass(), "DirectoryNode.viewInNewWin.text"), this));
|
||||
actions.add(null); // creates a menu separator
|
||||
actions.add(ExtractAction.getInstance());
|
||||
actions.add(null); // creates a menu separator
|
||||
|
@ -26,8 +26,9 @@ import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.openide.nodes.AbstractNode;
|
||||
import org.openide.nodes.ChildFactory;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Node;
|
||||
@ -49,8 +50,8 @@ public class EmailExtracted implements AutopsyVisitableItem {
|
||||
private static final String LABEL_NAME = BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG.getLabel();
|
||||
private static final String DISPLAY_NAME = BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG.getDisplayName();
|
||||
private static final Logger logger = Logger.getLogger(EmailExtracted.class.getName());
|
||||
private static final String MAIL_ACCOUNT = "Account";
|
||||
private static final String MAIL_FOLDER = "Folder";
|
||||
private static final String MAIL_ACCOUNT = NbBundle.getMessage(EmailExtracted.class, "EmailExtracted.mailAccount.text");
|
||||
private static final String MAIL_FOLDER = NbBundle.getMessage(EmailExtracted.class, "EmailExtracted.mailFolder.text");
|
||||
private static final String MAIL_PATH_SEPARATOR = "/";
|
||||
private SleuthkitCase skCase;
|
||||
private Map<String, Map<String, List<Long>>> accounts;
|
||||
@ -104,8 +105,8 @@ public class EmailExtracted implements AutopsyVisitableItem {
|
||||
if (split.length < 4) {
|
||||
logger.log(Level.WARNING, "Unexpected number of tokens when parsing email PATH: "
|
||||
+ split.length + ", will use defaults");
|
||||
parsed.put(MAIL_ACCOUNT, "Default");
|
||||
parsed.put(MAIL_FOLDER, "Default");
|
||||
parsed.put(MAIL_ACCOUNT, NbBundle.getMessage(EmailExtracted.class, "EmailExtracted.defaultAcct.text"));
|
||||
parsed.put(MAIL_FOLDER, NbBundle.getMessage(EmailExtracted.class, "EmailExtracted.defaultFolder.text"));
|
||||
return parsed;
|
||||
}
|
||||
|
||||
@ -152,10 +153,10 @@ public class EmailExtracted implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.desc"),
|
||||
getName()));
|
||||
|
||||
return s;
|
||||
}
|
||||
@ -234,10 +235,10 @@ public class EmailExtracted implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.desc"),
|
||||
getName()));
|
||||
|
||||
return s;
|
||||
}
|
||||
@ -281,10 +282,10 @@ public class EmailExtracted implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.desc"),
|
||||
getName()));
|
||||
|
||||
return s;
|
||||
}
|
||||
@ -351,10 +352,10 @@ public class EmailExtracted implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.desc"),
|
||||
getName()));
|
||||
|
||||
return s;
|
||||
}
|
||||
|
@ -18,9 +18,9 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import org.openide.nodes.AbstractNode;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.datamodel.SleuthkitCase;
|
||||
|
||||
@ -29,7 +29,7 @@ import org.sleuthkit.datamodel.SleuthkitCase;
|
||||
*/
|
||||
public class ExtractedContentNode extends DisplayableItemNode {
|
||||
|
||||
public static final String NAME = "Extracted Content";
|
||||
public static final String NAME = NbBundle.getMessage(ExtractedContentNode.class, "ExtractedContentNode.name.text");
|
||||
|
||||
public ExtractedContentNode(SleuthkitCase skCase) {
|
||||
super(Children.create(new ExtractedContentChildren(skCase), true), Lookups.singleton(NAME));
|
||||
@ -57,9 +57,9 @@ public class ExtractedContentNode extends DisplayableItemNode {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ExtractedContentNode.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "ExtractedContentNode.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "ExtractedContentNode.createSheet.name.desc"),
|
||||
NAME));
|
||||
return s;
|
||||
}
|
||||
|
@ -21,6 +21,8 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.swing.Action;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
||||
import org.sleuthkit.autopsy.actions.AddContentTagAction;
|
||||
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
||||
@ -76,14 +78,17 @@ public class FileNode extends AbstractFsContentNode<AbstractFile> {
|
||||
public Action[] getActions(boolean popup) {
|
||||
List<Action> actionsList = new ArrayList<>();
|
||||
if (!this.getDirectoryBrowseMode()) {
|
||||
actionsList.add(new ViewContextAction("View File in Directory", this));
|
||||
actionsList.add(new ViewContextAction(NbBundle.getMessage(this.getClass(), "FileNode.viewFileInDir.text"), this));
|
||||
actionsList.add(null); // creates a menu separator
|
||||
}
|
||||
actionsList.add(new NewWindowViewAction("View in New Window", this));
|
||||
actionsList.add(new ExternalViewerAction("Open in External Viewer", this));
|
||||
actionsList.add(new NewWindowViewAction(
|
||||
NbBundle.getMessage(this.getClass(), "FileNode.getActions.viewInNewWin.text"), this));
|
||||
actionsList.add(new ExternalViewerAction(
|
||||
NbBundle.getMessage(this.getClass(), "FileNode.getActions.openInExtViewer.text"), this));
|
||||
actionsList.add(null); // creates a menu separator
|
||||
actionsList.add(ExtractAction.getInstance());
|
||||
actionsList.add(new HashSearchAction("Search for files with the same MD5 hash", this));
|
||||
actionsList.add(new HashSearchAction(
|
||||
NbBundle.getMessage(this.getClass(), "FileNode.getActions.searchFilesSameMD5.text"), this));
|
||||
actionsList.add(null); // creates a menu separator
|
||||
actionsList.add(AddContentTagAction.getInstance());
|
||||
actionsList.addAll(ContextMenuExtensionPoint.getActions());
|
||||
|
@ -27,6 +27,7 @@ import org.openide.nodes.ChildFactory;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.datamodel.AbstractFile;
|
||||
@ -99,7 +100,7 @@ public class FileSize implements AutopsyVisitableItem {
|
||||
|
||||
public static class FileSizeRootNode extends DisplayableItemNode {
|
||||
|
||||
private static final String NAME = "File Size";
|
||||
private static final String NAME = NbBundle.getMessage(FileSize.class, "FileSize.fileSizeRootNode.name");
|
||||
private SleuthkitCase skCase;
|
||||
|
||||
FileSizeRootNode(SleuthkitCase skCase) {
|
||||
@ -129,9 +130,9 @@ public class FileSize implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileSize.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "FileSize.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "FileSize.createSheet.name.desc"),
|
||||
NAME));
|
||||
return s;
|
||||
}
|
||||
@ -193,10 +194,10 @@ public class FileSize implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Filter Type",
|
||||
"Filter Type",
|
||||
"no description",
|
||||
filter.getDisplayName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileSize.createSheet.filterType.name"),
|
||||
NbBundle.getMessage(this.getClass(), "FileSize.createSheet.filterType.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "FileSize.createSheet.filterType.desc"),
|
||||
filter.getDisplayName()));
|
||||
|
||||
return s;
|
||||
}
|
||||
@ -327,7 +328,10 @@ public class FileSize implements AutopsyVisitableItem {
|
||||
|
||||
@Override
|
||||
protected AbstractNode defaultVisit(Content di) {
|
||||
throw new UnsupportedOperationException("Not supported for this type of Displayable Item: " + di.toString());
|
||||
throw new UnsupportedOperationException(
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"FileSize.exception.notSupported.msg",
|
||||
di.toString()));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -21,6 +21,8 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.openide.nodes.AbstractNode;
|
||||
import org.openide.nodes.ChildFactory;
|
||||
@ -125,7 +127,10 @@ class FileTypeChildren extends ChildFactory<Content> {
|
||||
|
||||
@Override
|
||||
protected AbstractNode defaultVisit(Content di) {
|
||||
throw new UnsupportedOperationException("Not supported for this type of Displayable Item: " + di.toString());
|
||||
throw new UnsupportedOperationException(
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"FileTypeChildren.exception.notSupported.msg",
|
||||
di.toString()));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.datamodel.SleuthkitCase;
|
||||
|
||||
/**
|
||||
@ -31,12 +33,24 @@ import org.sleuthkit.datamodel.SleuthkitCase;
|
||||
|
||||
// root node filters
|
||||
public enum RootFilter implements AutopsyVisitableItem,SearchFilterInterface {
|
||||
TSK_IMAGE_FILTER(0, "TSK_IMAGE_FILTER", "Images", FileTypeExtensions.getImageExtensions()),
|
||||
TSK_VIDEO_FILTER(1, "TSK_VIDEO_FILTER", "Videos", FileTypeExtensions.getVideoExtensions()),
|
||||
TSK_AUDIO_FILTER(2, "TSK_AUDIO_FILTER", "Audio", FileTypeExtensions.getAudioExtensions()),
|
||||
TSK_ARCHIVE_FILTER(3, "TSK_ARCHIVE_FILTER", "Archives", FileTypeExtensions.getArchiveExtensions()),
|
||||
TSK_DOCUMENT_FILTER(3, "TSK_DOCUMENT_FILTER", "Documents", Arrays.asList(".doc", ".docx", ".pdf", ".xls", ".rtf", ".txt")),
|
||||
TSK_EXECUTABLE_FILTER(3, "TSK_EXECUTABLE_FILTER", "Executable", Arrays.asList(".exe", ".dll", ".bat", ".cmd", ".com"));
|
||||
TSK_IMAGE_FILTER(0, "TSK_IMAGE_FILTER",
|
||||
NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskImgFilter.text"),
|
||||
FileTypeExtensions.getImageExtensions()),
|
||||
TSK_VIDEO_FILTER(1, "TSK_VIDEO_FILTER",
|
||||
NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskVideoFilter.text"),
|
||||
FileTypeExtensions.getVideoExtensions()),
|
||||
TSK_AUDIO_FILTER(2, "TSK_AUDIO_FILTER",
|
||||
NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskAudioFilter.text"),
|
||||
FileTypeExtensions.getAudioExtensions()),
|
||||
TSK_ARCHIVE_FILTER(3, "TSK_ARCHIVE_FILTER",
|
||||
NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskArchiveFilter.text"),
|
||||
FileTypeExtensions.getArchiveExtensions()),
|
||||
TSK_DOCUMENT_FILTER(3, "TSK_DOCUMENT_FILTER",
|
||||
NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskDocumentFilter.text"),
|
||||
Arrays.asList(".doc", ".docx", ".pdf", ".xls", ".rtf", ".txt")),
|
||||
TSK_EXECUTABLE_FILTER(3, "TSK_EXECUTABLE_FILTER",
|
||||
NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskExecFilter.text"),
|
||||
Arrays.asList(".exe", ".dll", ".bat", ".cmd", ".com"));
|
||||
|
||||
private int id;
|
||||
private String name;
|
||||
@ -78,12 +92,21 @@ import org.sleuthkit.datamodel.SleuthkitCase;
|
||||
|
||||
// document sub-node filters
|
||||
public enum DocumentFilter implements AutopsyVisitableItem,SearchFilterInterface {
|
||||
AUT_DOC_HTML(0, "AUT_DOC_HTML", "HTML", Arrays.asList(".htm", ".html")),
|
||||
AUT_DOC_OFFICE(1, "AUT_DOC_OFFICE", "Office", Arrays.asList(".doc", ".docx",
|
||||
".odt", ".xls", ".xlsx", ".ppt", ".pptx")),
|
||||
AUT_DOC_PDF(2, "AUT_DOC_PDF", "PDF", Arrays.asList(".pdf")),
|
||||
AUT_DOC_TXT(3, "AUT_DOC_TXT", "Plain Text", Arrays.asList(".txt")),
|
||||
AUT_DOC_RTF(4, "AUT_DOC_RTF", "Rich Text", Arrays.asList(".rtf"));
|
||||
AUT_DOC_HTML(0, "AUT_DOC_HTML",
|
||||
NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.autDocHtmlFilter.text"),
|
||||
Arrays.asList(".htm", ".html")),
|
||||
AUT_DOC_OFFICE(1, "AUT_DOC_OFFICE",
|
||||
NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.autDocOfficeFilter.text"),
|
||||
Arrays.asList(".doc", ".docx", ".odt", ".xls", ".xlsx", ".ppt", ".pptx")),
|
||||
AUT_DOC_PDF(2, "AUT_DOC_PDF",
|
||||
NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.autoDocPdfFilter.text"),
|
||||
Arrays.asList(".pdf")),
|
||||
AUT_DOC_TXT(3, "AUT_DOC_TXT",
|
||||
NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.autDocTxtFilter.text"),
|
||||
Arrays.asList(".txt")),
|
||||
AUT_DOC_RTF(4, "AUT_DOC_RTF",
|
||||
NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.autDocRtfFilter.text"),
|
||||
Arrays.asList(".rtf"));
|
||||
|
||||
private int id;
|
||||
private String name;
|
||||
|
@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.datamodel.SleuthkitCase;
|
||||
|
||||
@ -61,19 +62,19 @@ public class FileTypeNode extends DisplayableItemNode {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Filter Type",
|
||||
"Filter Type",
|
||||
"no description",
|
||||
filter.getDisplayName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.filterType.name"),
|
||||
NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.filterType.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.filterType.desc"),
|
||||
filter.getDisplayName()));
|
||||
String extensions = "";
|
||||
for (String ext : filter.getFilter()) {
|
||||
extensions += "'" + ext + "', ";
|
||||
}
|
||||
extensions = extensions.substring(0, extensions.lastIndexOf(','));
|
||||
ss.put(new NodeProperty("File Extensions",
|
||||
"File Extensions",
|
||||
"no description",
|
||||
extensions));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.fileExt.name"),
|
||||
NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.fileExt.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.fileExt.desc"),
|
||||
extensions));
|
||||
|
||||
return s;
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.datamodel.SleuthkitCase;
|
||||
|
||||
@ -28,7 +29,7 @@ import org.sleuthkit.datamodel.SleuthkitCase;
|
||||
*/
|
||||
public class FileTypesNode extends DisplayableItemNode {
|
||||
|
||||
private static final String FNAME = "File Types";
|
||||
private static final String FNAME = NbBundle.getMessage(FileTypesNode.class, "FileTypesNode.fname.text");
|
||||
private SleuthkitCase skCase;
|
||||
|
||||
/**
|
||||
@ -71,9 +72,9 @@ public class FileTypesNode extends DisplayableItemNode {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypesNode.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "FileTypesNode.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "FileTypesNode.createSheet.name.desc"),
|
||||
getName()));
|
||||
return s;
|
||||
}
|
||||
|
@ -20,21 +20,19 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.openide.nodes.AbstractNode;
|
||||
import org.openide.nodes.ChildFactory;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.Exceptions;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||
import org.sleuthkit.datamodel.BlackboardAttribute;
|
||||
@ -131,10 +129,10 @@ public class HashsetHits implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.desc"),
|
||||
getName()));
|
||||
|
||||
return s;
|
||||
}
|
||||
@ -177,10 +175,10 @@ public class HashsetHits implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.desc"),
|
||||
getName()));
|
||||
|
||||
return s;
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.swing.Action;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.directorytree.ExplorerNodeActionVisitor;
|
||||
import org.sleuthkit.autopsy.directorytree.FileSearchAction;
|
||||
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
||||
@ -66,8 +67,10 @@ public class ImageNode extends AbstractContentNode<Image> {
|
||||
public Action[] getActions(boolean context) {
|
||||
List<Action> actionsList = new ArrayList<Action>();
|
||||
|
||||
actionsList.add(new NewWindowViewAction("View in New Window", this));
|
||||
actionsList.add(new FileSearchAction("Open File Search by Attributes"));
|
||||
actionsList.add(new NewWindowViewAction(
|
||||
NbBundle.getMessage(this.getClass(), "ImageNode.getActions.viewInNewWin.text"), this));
|
||||
actionsList.add(new FileSearchAction(
|
||||
NbBundle.getMessage(this.getClass(), "ImageNode.getActions.openFileSearchByAttr.text")));
|
||||
actionsList.addAll(ExplorerNodeActionVisitor.getActions(content));
|
||||
|
||||
return actionsList.toArray(new Action[0]);
|
||||
@ -82,7 +85,10 @@ public class ImageNode extends AbstractContentNode<Image> {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name", "Name", "no description", getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ImageNode.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "ImageNode.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "ImageNode.createSheet.name.desc"),
|
||||
getName()));
|
||||
// @@@ add more properties here...
|
||||
|
||||
return s;
|
||||
|
@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import javax.swing.JOptionPane;
|
||||
import org.openide.LifecycleManager;
|
||||
@ -62,9 +64,9 @@ public class Installer extends ModuleInstall {
|
||||
String skVersion = SleuthkitJNI.getVersion();
|
||||
|
||||
if (skVersion == null) {
|
||||
throw new Exception("Sleuth Kit JNI test call returned without error, but version string was null!");
|
||||
throw new Exception(NbBundle.getMessage(this.getClass(), "Installer.exception.tskVerStringNull.msg"));
|
||||
} else if (skVersion.length() == 0) {
|
||||
throw new Exception("Sleuth Kit JNI test call returned without error, but version string was \"\"!");
|
||||
throw new Exception(NbBundle.getMessage(this.getClass(), "Installer.exception.taskVerStringBang.msg"));
|
||||
} else {
|
||||
logger.log(Level.CONFIG, "Sleuth Kit Version: {0}", skVersion);
|
||||
}
|
||||
@ -75,8 +77,8 @@ public class Installer extends ModuleInstall {
|
||||
|
||||
// Normal error box log handler won't be loaded yet, so show error here.
|
||||
final Component parentComponent = null; // Use default window frame.
|
||||
final String message = "Problem with Sleuth Kit JNI. Test call failed!\n\nDetails: " + e.toString();
|
||||
final String title = "Fatal Error!";
|
||||
final String message = NbBundle.getMessage(this.getClass(), "Installer.tskLibErr.msg", e.toString());
|
||||
final String title = NbBundle.getMessage(this.getClass(), "Installer.tskLibErr.err");
|
||||
final int messageType = JOptionPane.ERROR_MESSAGE;
|
||||
|
||||
JOptionPane.showMessageDialog(
|
||||
|
@ -27,6 +27,8 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.openide.nodes.ChildFactory;
|
||||
import org.openide.nodes.Children;
|
||||
@ -41,8 +43,9 @@ import org.sleuthkit.datamodel.TskException;
|
||||
|
||||
public class InterestingHits implements AutopsyVisitableItem {
|
||||
|
||||
private static final String INTERESTING_ITEMS = "INTERESTING ITEMS";
|
||||
private static final String DISPLAY_NAME = "Interesting Items";
|
||||
private static final String INTERESTING_ITEMS = NbBundle
|
||||
.getMessage(InterestingHits.class, "InterestingHits.interestingItems.text");
|
||||
private static final String DISPLAY_NAME = NbBundle.getMessage(InterestingHits.class, "InterestingHits.displayName.text");
|
||||
private static final Logger logger = Logger.getLogger(InterestingHits.class.getName());
|
||||
private SleuthkitCase skCase;
|
||||
private Map<String, Set<Long>> interestingItemsMap;
|
||||
@ -132,10 +135,10 @@ public class InterestingHits implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.desc"),
|
||||
getName()));
|
||||
|
||||
return s;
|
||||
}
|
||||
@ -178,10 +181,10 @@ public class InterestingHits implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.desc"),
|
||||
getName()));
|
||||
|
||||
return s;
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ import org.openide.nodes.AbstractNode;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.Lookup;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.datamodel.AbstractFile;
|
||||
|
||||
@ -78,12 +79,18 @@ import org.sleuthkit.datamodel.AbstractFile;
|
||||
|
||||
// table view drops first column of properties under assumption
|
||||
// that it contains the node's name
|
||||
ss.put(new NodeProperty("Name", "Name", "n/a", data.getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.name.desc"),
|
||||
data.getName()));
|
||||
|
||||
for (Map.Entry<String, Object> entry : data.getMap().entrySet()) {
|
||||
String key = entry.getKey();
|
||||
Object value = entry.getValue();
|
||||
ss.put(new NodeProperty(key, key, "n/a", value));
|
||||
ss.put(new NodeProperty(key,
|
||||
key,
|
||||
NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.map.desc"),
|
||||
value));
|
||||
}
|
||||
|
||||
return s;
|
||||
|
@ -27,12 +27,13 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.openide.nodes.ChildFactory;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.Exceptions;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||
import org.sleuthkit.datamodel.BlackboardAttribute;
|
||||
@ -48,10 +49,12 @@ public class KeywordHits implements AutopsyVisitableItem {
|
||||
|
||||
private SleuthkitCase skCase;
|
||||
private static final Logger logger = Logger.getLogger(KeywordHits.class.getName());
|
||||
private static final String KEYWORD_HITS = "Keyword Hits";
|
||||
private static final String KEYWORD_HITS = NbBundle.getMessage(KeywordHits.class, "KeywordHits.kwHits.text");
|
||||
public static final String NAME = BlackboardArtifact.ARTIFACT_TYPE.TSK_KEYWORD_HIT.getLabel();
|
||||
public static final String SIMPLE_LITERAL_SEARCH = "Single Literal Keyword Search";
|
||||
public static final String SIMPLE_REGEX_SEARCH = "Single Regular Expression Search";
|
||||
public static final String SIMPLE_LITERAL_SEARCH = NbBundle
|
||||
.getMessage(KeywordHits.class, "KeywordHits.simpleLiteralSearch.text");
|
||||
public static final String SIMPLE_REGEX_SEARCH = NbBundle
|
||||
.getMessage(KeywordHits.class, "KeywordHits.singleRegexSearch.text");
|
||||
// Map from String (list name) to Map from string (keyword) to set<long> (artifact ids)
|
||||
private Map<String, Map<String, Set<Long>>> topLevelMap;
|
||||
private Map<String, Map<String, Set<Long>>> listsMap;
|
||||
@ -190,10 +193,10 @@ public class KeywordHits implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("Name",
|
||||
"Name",
|
||||
"no description",
|
||||
getName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.name.desc"),
|
||||
getName()));
|
||||
|
||||
return s;
|
||||
}
|
||||
@ -240,16 +243,16 @@ public class KeywordHits implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("List Name",
|
||||
"List Name",
|
||||
"no description",
|
||||
name));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.name"),
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.desc"),
|
||||
name));
|
||||
|
||||
|
||||
ss.put(new NodeProperty("Number of Children",
|
||||
"Number of Children",
|
||||
"no description",
|
||||
children.size()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.numChildren.name"),
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.numChildren.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.numChildren.desc"),
|
||||
children.size()));
|
||||
|
||||
return s;
|
||||
}
|
||||
@ -321,16 +324,16 @@ public class KeywordHits implements AutopsyVisitableItem {
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
ss.put(new NodeProperty("List Name",
|
||||
"List Name",
|
||||
"no description",
|
||||
getDisplayName()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.name"),
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.desc"),
|
||||
getDisplayName()));
|
||||
|
||||
|
||||
ss.put(new NodeProperty("Files with Hits",
|
||||
"Files with Hits",
|
||||
"no description",
|
||||
children.size()));
|
||||
ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.filesWithHits.name"),
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.filesWithHits.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.filesWithHits.desc"),
|
||||
children.size()));
|
||||
|
||||
return s;
|
||||
}
|
||||
@ -371,19 +374,28 @@ public class KeywordHits implements AutopsyVisitableItem {
|
||||
return n;
|
||||
}
|
||||
|
||||
n.addNodeProperty(new NodeProperty("ModifiedTime",
|
||||
"Modified Time",
|
||||
"Modified Time",
|
||||
n.addNodeProperty(new NodeProperty(
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createNodeForKey.modTime.name"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"KeywordHits.createNodeForKey.modTime.displayName"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"KeywordHits.createNodeForKey.modTime.desc"),
|
||||
ContentUtils.getStringTime(file.getMtime(), file)));
|
||||
n.addNodeProperty(new NodeProperty("AccessTime",
|
||||
"Access Time",
|
||||
"Access Time",
|
||||
n.addNodeProperty(new NodeProperty(
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createNodeForKey.accessTime.name"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"KeywordHits.createNodeForKey.accessTime.displayName"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"KeywordHits.createNodeForKey.accessTime.desc"),
|
||||
ContentUtils.getStringTime(file.getAtime(), file)));
|
||||
n.addNodeProperty(new NodeProperty("ChangeTime",
|
||||
"Change Time",
|
||||
"Change Time",
|
||||
n.addNodeProperty(new NodeProperty(
|
||||
NbBundle.getMessage(this.getClass(), "KeywordHits.createNodeForKey.chgTime.name"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"KeywordHits.createNodeForKey.chgTime.displayName"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"KeywordHits.createNodeForKey.chgTime.desc"),
|
||||
ContentUtils.getStringTime(file.getCtime(), file)));
|
||||
|
||||
|
||||
return n;
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ import java.util.prefs.PreferenceChangeListener;
|
||||
import java.util.prefs.Preferences;
|
||||
import org.openide.nodes.FilterNode;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.NbPreferences;
|
||||
import org.sleuthkit.datamodel.AbstractFile;
|
||||
import org.sleuthkit.datamodel.TskData;
|
||||
@ -56,8 +57,8 @@ public class KnownFileFilterNode extends FilterNode {
|
||||
* is a sub-node of. (i.e. Data Sources, Views, Results)
|
||||
*/
|
||||
public enum SelectionContext {
|
||||
DATA_SOURCES("Data Sources"), // Subnode of DataSources
|
||||
VIEWS("Views"), // Subnode of Views
|
||||
DATA_SOURCES(NbBundle.getMessage(KnownFileFilterNode.class, "KnownFileFilterNode.selectionContext.dataSources")), // Subnode of DataSources
|
||||
VIEWS(NbBundle.getMessage(KnownFileFilterNode.class, "KnownFileFilterNode.selectionContext.views")), // Subnode of Views
|
||||
OTHER(""); // Subnode of another node.
|
||||
|
||||
private final String displayName;
|
||||
|
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