mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-15 09:17:42 +00:00
Extracted hard coded strings. Commented strings that shouldn't be extracted using NON-NLS. Used @NbBundle.Messages() style annotations for strings.
This commit is contained in:
parent
c8841d7314
commit
8afdd0d6c3
@ -85,16 +85,16 @@ public class FXMLConstructor {
|
||||
try {
|
||||
fxmlLoader.load();
|
||||
} catch (IOException exception) {
|
||||
LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, falling back on default Class Loader, and trying again.", exception);
|
||||
LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, falling back on default Class Loader, and trying again.", exception); //NON-NLS
|
||||
try {
|
||||
fxmlLoader.setClassLoader(FXMLLoader.getDefaultClassLoader());
|
||||
fxmlLoader.load();
|
||||
} catch (IOException ex) {
|
||||
LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, node initialization may not be complete.", ex);
|
||||
LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, node initialization may not be complete.", ex); //NON-NLS
|
||||
}
|
||||
}
|
||||
} catch (MalformedURLException ex) {
|
||||
LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, node initialization may not be complete.", ex);
|
||||
LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, node initialization may not be complete.", ex); //NON-NLS
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -63,7 +63,7 @@ public class PromptDialogManager {
|
||||
try {
|
||||
x = new Image(new URL("nbresloc:/org/netbeans/core/startup/frame.gif").openStream()); //NOI18N
|
||||
} catch (IOException ex) {
|
||||
LOGGER.log(Level.WARNING, "Failed to load branded icon for progress dialog.", ex); //NOI18N
|
||||
LOGGER.log(Level.WARNING, "Failed to load branded icon for progress dialog.", ex); //NOI18N NON-NLS
|
||||
}
|
||||
LOGO = x;
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ import org.sleuthkit.autopsy.timeline.TimeLineController;
|
||||
*/
|
||||
public class ZoomIn extends Action {
|
||||
|
||||
private static final Image MAGNIFIER_IN = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-in-green.png"); //NOI18N
|
||||
private static final Image MAGNIFIER_IN = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-in-green.png"); //NOI18N NON-NLS
|
||||
|
||||
@NbBundle.Messages({"ZoomIn.longText=Zoom in to view about half as much time.",
|
||||
"ZoomIn.action.text=Zoom in"})
|
||||
|
@ -31,7 +31,7 @@ import org.sleuthkit.autopsy.timeline.datamodel.FilteredEventsModel;
|
||||
*/
|
||||
public class ZoomOut extends Action {
|
||||
|
||||
private static final Image MAGNIFIER_OUT = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-out-red.png"); //NOI18N
|
||||
private static final Image MAGNIFIER_OUT = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-out-red.png"); //NOI18N NON-NLS
|
||||
|
||||
@NbBundle.Messages({"ZoomOut.longText=Zoom out to view about 50% more time.",
|
||||
"ZoomOut.action.text=Zoom out"})
|
||||
|
@ -31,7 +31,7 @@ import org.sleuthkit.autopsy.timeline.datamodel.FilteredEventsModel;
|
||||
*/
|
||||
public class ZoomToEvents extends Action {
|
||||
|
||||
private static final Image MAGNIFIER_OUT = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-out-red.png", 16, 16, true, true); //NOI18N
|
||||
private static final Image MAGNIFIER_OUT = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-out-red.png", 16, 16, true, true); //NOI18N NON-NLS
|
||||
|
||||
@NbBundle.Messages({"ZoomToEvents.action.text=Zoom to events",
|
||||
"ZoomToEvents.longText=Zoom out to show the nearest events."})
|
||||
|
@ -191,6 +191,6 @@ public final class EventStripe implements EventBundle<EventCluster> {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "EventStripe{" + "description=" + description + ", eventIDs=" + eventIDs.size() + '}';
|
||||
return "EventStripe{" + "description=" + description + ", eventIDs=" + eventIDs.size() + '}'; //NON-NLS
|
||||
}
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ public final class FilteredEventsModel {
|
||||
@GuardedBy("this")
|
||||
private final ReadOnlyObjectWrapper<ZoomParams> requestedZoomParamters = new ReadOnlyObjectWrapper<>();
|
||||
|
||||
private final EventBus eventbus = new EventBus("Event_Repository_EventBus");
|
||||
private final EventBus eventbus = new EventBus("Event_Repository_EventBus"); //NON-NLS
|
||||
|
||||
/**
|
||||
* The underlying repo for events. Atomic access to repo is synchronized
|
||||
@ -374,7 +374,7 @@ public final class FilteredEventsModel {
|
||||
Set<Long> updatedEventIDs = repo.deleteTag(content.getId(), null, deletedTagInfo.getTagID(), tagged);
|
||||
return postTagsUpdated(updatedEventIDs);
|
||||
} catch (TskCoreException ex) {
|
||||
LOGGER.log(Level.SEVERE, "unable to determine tagged status of content.", ex);
|
||||
LOGGER.log(Level.SEVERE, "unable to determine tagged status of content.", ex); //NON-NLS
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -387,7 +387,7 @@ public final class FilteredEventsModel {
|
||||
Set<Long> updatedEventIDs = repo.deleteTag(artifact.getObjectID(), artifact.getArtifactID(), deletedTagInfo.getTagID(), tagged);
|
||||
return postTagsUpdated(updatedEventIDs);
|
||||
} catch (TskCoreException ex) {
|
||||
LOGGER.log(Level.SEVERE, "unable to determine tagged status of artifact.", ex);
|
||||
LOGGER.log(Level.SEVERE, "unable to determine tagged status of artifact.", ex); //NON-NLS
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -137,7 +137,7 @@ public enum MiscTypes implements EventType, ArtifactEventType {
|
||||
return file.getName();
|
||||
}
|
||||
} catch (TskCoreException ex) {
|
||||
Logger.getLogger(MiscTypes.class.getName()).log(Level.SEVERE, "Exif event type failed to look up backing file name", ex);
|
||||
Logger.getLogger(MiscTypes.class.getName()).log(Level.SEVERE, "Exif event type failed to look up backing file name", ex); //NON-NLS
|
||||
}
|
||||
return " error loading file name"; // NON-NLS
|
||||
}),
|
||||
|
@ -232,7 +232,7 @@ public class EventDB {
|
||||
return rs.getInt("count"); // NON-NLS
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
LOGGER.log(Level.SEVERE, "Error counting all events", ex);
|
||||
LOGGER.log(Level.SEVERE, "Error counting all events", ex); //NON-NLS
|
||||
} finally {
|
||||
DBLock.unlock();
|
||||
}
|
||||
@ -270,15 +270,15 @@ public class EventDB {
|
||||
HashMap<String, Long> counts = new HashMap<>();
|
||||
DBLock.lock();
|
||||
try (Statement createStatement = con.createStatement();
|
||||
ResultSet rs = createStatement.executeQuery("SELECT tag_name_display_name, COUNT(DISTINCT tag_id) AS count FROM tags"
|
||||
+ " WHERE event_id IN (" + StringUtils.join(eventIDsWithTags, ", ") + ")"
|
||||
+ " GROUP BY tag_name_id"
|
||||
+ " ORDER BY tag_name_display_name");) {
|
||||
ResultSet rs = createStatement.executeQuery("SELECT tag_name_display_name, COUNT(DISTINCT tag_id) AS count FROM tags" //NON-NLS
|
||||
+ " WHERE event_id IN (" + StringUtils.join(eventIDsWithTags, ", ") + ")" //NON-NLS
|
||||
+ " GROUP BY tag_name_id" //NON-NLS
|
||||
+ " ORDER BY tag_name_display_name");) { //NON-NLS
|
||||
while (rs.next()) {
|
||||
counts.put(rs.getString("tag_name_display_name"), rs.getLong("count"));
|
||||
counts.put(rs.getString("tag_name_display_name"), rs.getLong("count")); //NON-NLS
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
LOGGER.log(Level.SEVERE, "Failed to get tag counts by tag name.", ex);
|
||||
LOGGER.log(Level.SEVERE, "Failed to get tag counts by tag name.", ex); //NON-NLS
|
||||
} finally {
|
||||
DBLock.unlock();
|
||||
}
|
||||
@ -327,7 +327,7 @@ public class EventDB {
|
||||
final String sqlWhere = SQLHelper.getSQLWhere(filter);
|
||||
DBLock.lock();
|
||||
try (Statement stmt = con.createStatement(); //can't use prepared statement because of complex where clause
|
||||
ResultSet rs = stmt.executeQuery(" SELECT (SELECT Max(time) FROM events " + useHashHitTablesHelper(filter) + useTagTablesHelper(filter) + " WHERE time <=" + start + " AND " + sqlWhere + ") AS start,"
|
||||
ResultSet rs = stmt.executeQuery(" SELECT (SELECT Max(time) FROM events " + useHashHitTablesHelper(filter) + useTagTablesHelper(filter) + " WHERE time <=" + start + " AND " + sqlWhere + ") AS start," //NON-NLS
|
||||
+ "(SELECT Min(time) FROM events" + useHashHitTablesHelper(filter) + useTagTablesHelper(filter) + " WHERE time >= " + end + " AND " + sqlWhere + ") AS end")) { // NON-NLS
|
||||
while (rs.next()) {
|
||||
|
||||
@ -382,7 +382,7 @@ public class EventDB {
|
||||
try (Statement stmt = con.createStatement();
|
||||
ResultSet rs = stmt.executeQuery(query)) {
|
||||
while (rs.next()) {
|
||||
resultIDs.add(rs.getLong("event_id"));
|
||||
resultIDs.add(rs.getLong("event_id")); //NON-NLS
|
||||
}
|
||||
|
||||
} catch (SQLException sqlEx) {
|
||||
@ -416,7 +416,7 @@ public class EventDB {
|
||||
DBLock.lock();
|
||||
try (ResultSet rs = getDataSourceIDsStmt.executeQuery()) {
|
||||
while (rs.next()) {
|
||||
long datasourceID = rs.getLong("datasource_id");
|
||||
long datasourceID = rs.getLong("datasource_id"); //NON-NLS
|
||||
hashSet.add(datasourceID);
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
@ -432,8 +432,8 @@ public class EventDB {
|
||||
DBLock.lock();
|
||||
try (ResultSet rs = getHashSetNamesStmt.executeQuery();) {
|
||||
while (rs.next()) {
|
||||
long hashSetID = rs.getLong("hash_set_id");
|
||||
String hashSetName = rs.getString("hash_set_name");
|
||||
long hashSetID = rs.getLong("hash_set_id"); //NON-NLS
|
||||
String hashSetName = rs.getString("hash_set_name"); //NON-NLS
|
||||
hashSets.put(hashSetID, hashSetName);
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
@ -447,7 +447,7 @@ public class EventDB {
|
||||
void analyze() {
|
||||
DBLock.lock();
|
||||
try (Statement createStatement = con.createStatement()) {
|
||||
boolean b = createStatement.execute("analyze; analyze sqlite_master;");
|
||||
boolean b = createStatement.execute("analyze; analyze sqlite_master;"); //NON-NLS
|
||||
} catch (SQLException ex) {
|
||||
LOGGER.log(Level.SEVERE, "Failed to analyze events db.", ex); // NON-NLS
|
||||
} finally {
|
||||
@ -575,35 +575,35 @@ public class EventDB {
|
||||
}
|
||||
|
||||
try (Statement stmt = con.createStatement()) {
|
||||
String sql = "CREATE TABLE if not exists hash_sets "
|
||||
+ "( hash_set_id INTEGER primary key,"
|
||||
+ " hash_set_name VARCHAR(255) UNIQUE NOT NULL)";
|
||||
String sql = "CREATE TABLE if not exists hash_sets " //NON-NLS
|
||||
+ "( hash_set_id INTEGER primary key," //NON-NLS
|
||||
+ " hash_set_name VARCHAR(255) UNIQUE NOT NULL)"; //NON-NLS
|
||||
stmt.execute(sql);
|
||||
} catch (SQLException ex) {
|
||||
LOGGER.log(Level.SEVERE, "problem creating hash_sets table", ex);
|
||||
LOGGER.log(Level.SEVERE, "problem creating hash_sets table", ex); //NON-NLS
|
||||
}
|
||||
|
||||
try (Statement stmt = con.createStatement()) {
|
||||
String sql = "CREATE TABLE if not exists hash_set_hits "
|
||||
+ "(hash_set_id INTEGER REFERENCES hash_sets(hash_set_id) not null, "
|
||||
+ " event_id INTEGER REFERENCES events(event_id) not null, "
|
||||
+ " PRIMARY KEY (hash_set_id, event_id))";
|
||||
String sql = "CREATE TABLE if not exists hash_set_hits " //NON-NLS
|
||||
+ "(hash_set_id INTEGER REFERENCES hash_sets(hash_set_id) not null, " //NON-NLS
|
||||
+ " event_id INTEGER REFERENCES events(event_id) not null, " //NON-NLS
|
||||
+ " PRIMARY KEY (hash_set_id, event_id))"; //NON-NLS
|
||||
stmt.execute(sql);
|
||||
} catch (SQLException ex) {
|
||||
LOGGER.log(Level.SEVERE, "problem creating hash_set_hits table", ex);
|
||||
LOGGER.log(Level.SEVERE, "problem creating hash_set_hits table", ex); //NON-NLS
|
||||
}
|
||||
|
||||
initializeTagsTable();
|
||||
|
||||
createIndex("events", Arrays.asList("datasource_id"));
|
||||
createIndex("events", Arrays.asList("event_id", "hash_hit"));
|
||||
createIndex("events", Arrays.asList("event_id", "tagged"));
|
||||
createIndex("events", Arrays.asList("file_id"));
|
||||
createIndex("events", Arrays.asList("artifact_id"));
|
||||
createIndex("events", Arrays.asList("sub_type", "short_description", "time"));
|
||||
createIndex("events", Arrays.asList("base_type", "short_description", "time"));
|
||||
createIndex("events", Arrays.asList("time"));
|
||||
createIndex("events", Arrays.asList("known_state"));
|
||||
createIndex("events", Arrays.asList("datasource_id")); //NON-NLS
|
||||
createIndex("events", Arrays.asList("event_id", "hash_hit")); //NON-NLS
|
||||
createIndex("events", Arrays.asList("event_id", "tagged")); //NON-NLS
|
||||
createIndex("events", Arrays.asList("file_id")); //NON-NLS
|
||||
createIndex("events", Arrays.asList("artifact_id")); //NON-NLS
|
||||
createIndex("events", Arrays.asList("sub_type", "short_description", "time")); //NON-NLS
|
||||
createIndex("events", Arrays.asList("base_type", "short_description", "time")); //NON-NLS
|
||||
createIndex("events", Arrays.asList("time")); //NON-NLS
|
||||
createIndex("events", Arrays.asList("known_state")); //NON-NLS
|
||||
|
||||
try {
|
||||
insertRowStmt = prepareStatement(
|
||||
@ -616,19 +616,19 @@ public class EventDB {
|
||||
getEventByIDStmt = prepareStatement("SELECT * FROM events WHERE event_id = ?"); // NON-NLS
|
||||
recordDBInfoStmt = prepareStatement("INSERT OR REPLACE INTO db_info (key, value) values (?, ?)"); // NON-NLS
|
||||
getDBInfoStmt = prepareStatement("SELECT value FROM db_info WHERE key = ?"); // NON-NLS
|
||||
insertHashSetStmt = prepareStatement("INSERT OR IGNORE INTO hash_sets (hash_set_name) values (?)");
|
||||
selectHashSetStmt = prepareStatement("SELECT hash_set_id FROM hash_sets WHERE hash_set_name = ?");
|
||||
insertHashHitStmt = prepareStatement("INSERT OR IGNORE INTO hash_set_hits (hash_set_id, event_id) values (?,?)");
|
||||
insertTagStmt = prepareStatement("INSERT OR IGNORE INTO tags (tag_id, tag_name_id,tag_name_display_name, event_id) values (?,?,?,?)");
|
||||
deleteTagStmt = prepareStatement("DELETE FROM tags WHERE tag_id = ?");
|
||||
countAllEventsStmt = prepareStatement("SELECT count(*) AS count FROM events");
|
||||
dropEventsTableStmt = prepareStatement("DROP TABLE IF EXISTS events");
|
||||
dropHashSetHitsTableStmt = prepareStatement("DROP TABLE IF EXISTS hash_set_hits");
|
||||
dropHashSetsTableStmt = prepareStatement("DROP TABLE IF EXISTS hash_sets");
|
||||
dropTagsTableStmt = prepareStatement("DROP TABLE IF EXISTS tags");
|
||||
dropDBInfoTableStmt = prepareStatement("DROP TABLE IF EXISTS db_ino");
|
||||
selectNonArtifactEventIDsByObjectIDStmt = prepareStatement("SELECT event_id FROM events WHERE file_id == ? AND artifact_id IS NULL");
|
||||
selectEventIDsBYObjectAndArtifactIDStmt = prepareStatement("SELECT event_id FROM events WHERE file_id == ? AND artifact_id = ?");
|
||||
insertHashSetStmt = prepareStatement("INSERT OR IGNORE INTO hash_sets (hash_set_name) values (?)"); //NON-NLS
|
||||
selectHashSetStmt = prepareStatement("SELECT hash_set_id FROM hash_sets WHERE hash_set_name = ?"); //NON-NLS
|
||||
insertHashHitStmt = prepareStatement("INSERT OR IGNORE INTO hash_set_hits (hash_set_id, event_id) values (?,?)"); //NON-NLS
|
||||
insertTagStmt = prepareStatement("INSERT OR IGNORE INTO tags (tag_id, tag_name_id,tag_name_display_name, event_id) values (?,?,?,?)"); //NON-NLS
|
||||
deleteTagStmt = prepareStatement("DELETE FROM tags WHERE tag_id = ?"); //NON-NLS
|
||||
countAllEventsStmt = prepareStatement("SELECT count(*) AS count FROM events"); //NON-NLS
|
||||
dropEventsTableStmt = prepareStatement("DROP TABLE IF EXISTS events"); //NON-NLS
|
||||
dropHashSetHitsTableStmt = prepareStatement("DROP TABLE IF EXISTS hash_set_hits"); //NON-NLS
|
||||
dropHashSetsTableStmt = prepareStatement("DROP TABLE IF EXISTS hash_sets"); //NON-NLS
|
||||
dropTagsTableStmt = prepareStatement("DROP TABLE IF EXISTS tags"); //NON-NLS
|
||||
dropDBInfoTableStmt = prepareStatement("DROP TABLE IF EXISTS db_ino"); //NON-NLS
|
||||
selectNonArtifactEventIDsByObjectIDStmt = prepareStatement("SELECT event_id FROM events WHERE file_id == ? AND artifact_id IS NULL"); //NON-NLS
|
||||
selectEventIDsBYObjectAndArtifactIDStmt = prepareStatement("SELECT event_id FROM events WHERE file_id == ? AND artifact_id = ?"); //NON-NLS
|
||||
} catch (SQLException sQLException) {
|
||||
LOGGER.log(Level.SEVERE, "failed to prepareStatment", sQLException); // NON-NLS
|
||||
}
|
||||
@ -643,15 +643,15 @@ public class EventDB {
|
||||
*/
|
||||
private void initializeTagsTable() {
|
||||
try (Statement stmt = con.createStatement()) {
|
||||
String sql = "CREATE TABLE IF NOT EXISTS tags "
|
||||
+ "(tag_id INTEGER NOT NULL,"
|
||||
+ " tag_name_id INTEGER NOT NULL, "
|
||||
+ " tag_name_display_name TEXT NOT NULL, "
|
||||
+ " event_id INTEGER REFERENCES events(event_id) NOT NULL, "
|
||||
+ " PRIMARY KEY (event_id, tag_name_id))";
|
||||
String sql = "CREATE TABLE IF NOT EXISTS tags " //NON-NLS
|
||||
+ "(tag_id INTEGER NOT NULL," //NON-NLS
|
||||
+ " tag_name_id INTEGER NOT NULL, " //NON-NLS
|
||||
+ " tag_name_display_name TEXT NOT NULL, " //NON-NLS
|
||||
+ " event_id INTEGER REFERENCES events(event_id) NOT NULL, " //NON-NLS
|
||||
+ " PRIMARY KEY (event_id, tag_name_id))"; //NON-NLS
|
||||
stmt.execute(sql);
|
||||
} catch (SQLException ex) {
|
||||
LOGGER.log(Level.SEVERE, "problem creating tags table", ex);
|
||||
LOGGER.log(Level.SEVERE, "problem creating tags table", ex); //NON-NLS
|
||||
}
|
||||
}
|
||||
|
||||
@ -662,7 +662,7 @@ public class EventDB {
|
||||
*/
|
||||
private void createIndex(final String tableName, final List<String> columnList) {
|
||||
String indexColumns = columnList.stream().collect(Collectors.joining(",", "(", ")"));
|
||||
String indexName = tableName + "_" + StringUtils.join(columnList, "_") + "_idx";
|
||||
String indexName = tableName + "_" + StringUtils.join(columnList, "_") + "_idx"; //NON-NLS
|
||||
try (Statement stmt = con.createStatement()) {
|
||||
|
||||
String sql = "CREATE INDEX IF NOT EXISTS " + indexName + " ON " + tableName + indexColumns; // NON-NLS
|
||||
@ -680,7 +680,7 @@ public class EventDB {
|
||||
private boolean hasDBColumn(@Nonnull final String dbColumn) {
|
||||
try (Statement stmt = con.createStatement()) {
|
||||
|
||||
ResultSet executeQuery = stmt.executeQuery("PRAGMA table_info(events)");
|
||||
ResultSet executeQuery = stmt.executeQuery("PRAGMA table_info(events)"); //NON-NLS
|
||||
while (executeQuery.next()) {
|
||||
if (dbColumn.equals(executeQuery.getString("name"))) {
|
||||
return true;
|
||||
@ -693,15 +693,15 @@ public class EventDB {
|
||||
}
|
||||
|
||||
private boolean hasDataSourceIDColumn() {
|
||||
return hasDBColumn("datasource_id");
|
||||
return hasDBColumn("datasource_id"); //NON-NLS
|
||||
}
|
||||
|
||||
private boolean hasTaggedColumn() {
|
||||
return hasDBColumn("tagged");
|
||||
return hasDBColumn("tagged"); //NON-NLS
|
||||
}
|
||||
|
||||
private boolean hasHashHitColumn() {
|
||||
return hasDBColumn("hash_hit");
|
||||
return hasDBColumn("hash_hit"); //NON-NLS
|
||||
}
|
||||
|
||||
void insertEvent(long time, EventType type, long datasourceID, long objID,
|
||||
@ -764,7 +764,7 @@ public class EventDB {
|
||||
|
||||
try (ResultSet generatedKeys = insertRowStmt.getGeneratedKeys()) {
|
||||
while (generatedKeys.next()) {
|
||||
long eventID = generatedKeys.getLong("last_insert_rowid()");
|
||||
long eventID = generatedKeys.getLong("last_insert_rowid()"); //NON-NLS
|
||||
for (String name : hashSetNames) {
|
||||
|
||||
// "insert or ignore into hash_sets (hash_set_name) values (?)"
|
||||
@ -776,7 +776,7 @@ public class EventDB {
|
||||
selectHashSetStmt.setString(1, name);
|
||||
try (ResultSet rs = selectHashSetStmt.executeQuery()) {
|
||||
while (rs.next()) {
|
||||
int hashsetID = rs.getInt("hash_set_id");
|
||||
int hashsetID = rs.getInt("hash_set_id"); //NON-NLS
|
||||
//"insert or ignore into hash_set_hits (hash_set_id, obj_id) values (?,?)";
|
||||
insertHashHitStmt.setInt(1, hashsetID);
|
||||
insertHashHitStmt.setLong(2, eventID);
|
||||
@ -925,14 +925,14 @@ public class EventDB {
|
||||
HashSet<Long> eventIDs = new HashSet<>();
|
||||
try (ResultSet executeQuery = selectStmt.executeQuery();) {
|
||||
while (executeQuery.next()) {
|
||||
eventIDs.add(executeQuery.getLong("event_id"));
|
||||
eventIDs.add(executeQuery.getLong("event_id")); //NON-NLS
|
||||
}
|
||||
}
|
||||
|
||||
//update tagged state for all event with selected ids
|
||||
try (Statement updateStatement = con.createStatement();) {
|
||||
updateStatement.executeUpdate("UPDATE events SET tagged = " + (tagged ? 1 : 0)
|
||||
+ " WHERE event_id IN (" + StringUtils.join(eventIDs, ",") + ")");
|
||||
updateStatement.executeUpdate("UPDATE events SET tagged = " + (tagged ? 1 : 0) //NON-NLS
|
||||
+ " WHERE event_id IN (" + StringUtils.join(eventIDs, ",") + ")"); //NON-NLS
|
||||
}
|
||||
|
||||
return eventIDs;
|
||||
@ -986,22 +986,22 @@ public class EventDB {
|
||||
SQLiteJDBCLoader.getVersion(), SQLiteJDBCLoader.isNativeMode()
|
||||
? "native" : "pure-java")); // NON-NLS
|
||||
} catch (Exception exception) {
|
||||
LOGGER.log(Level.SEVERE, "Failed to determine if sqlite-jdbc is loaded in native or pure-java mode.", exception);
|
||||
LOGGER.log(Level.SEVERE, "Failed to determine if sqlite-jdbc is loaded in native or pure-java mode.", exception); //NON-NLS
|
||||
}
|
||||
}
|
||||
|
||||
private TimeLineEvent constructTimeLineEvent(ResultSet rs) throws SQLException {
|
||||
return new TimeLineEvent(rs.getLong("event_id"),
|
||||
rs.getLong("datasource_id"),
|
||||
rs.getLong("file_id"),
|
||||
rs.getLong("artifact_id"),
|
||||
rs.getLong("time"), RootEventType.allTypes.get(rs.getInt("sub_type")),
|
||||
rs.getString("full_description"),
|
||||
rs.getString("med_description"),
|
||||
rs.getString("short_description"),
|
||||
TskData.FileKnown.valueOf(rs.getByte("known_state")),
|
||||
rs.getInt("hash_hit") != 0,
|
||||
rs.getInt("tagged") != 0);
|
||||
return new TimeLineEvent(rs.getLong("event_id"), //NON-NLS
|
||||
rs.getLong("datasource_id"), //NON-NLS
|
||||
rs.getLong("file_id"), //NON-NLS
|
||||
rs.getLong("artifact_id"), //NON-NLS
|
||||
rs.getLong("time"), RootEventType.allTypes.get(rs.getInt("sub_type")), //NON-NLS
|
||||
rs.getString("full_description"), //NON-NLS
|
||||
rs.getString("med_description"), //NON-NLS
|
||||
rs.getString("short_description"), //NON-NLS
|
||||
TskData.FileKnown.valueOf(rs.getByte("known_state")), //NON-NLS
|
||||
rs.getInt("hash_hit") != 0, //NON-NLS
|
||||
rs.getInt("tagged") != 0); //NON-NLS
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1031,7 +1031,7 @@ public class EventDB {
|
||||
final boolean useSubTypes = (zoomLevel == EventTypeZoomLevel.SUB_TYPE);
|
||||
|
||||
//get some info about the range of dates requested
|
||||
final String queryString = "SELECT count(DISTINCT events.event_id) AS count, " + typeColumnHelper(useSubTypes)
|
||||
final String queryString = "SELECT count(DISTINCT events.event_id) AS count, " + typeColumnHelper(useSubTypes) //NON-NLS
|
||||
+ " FROM events" + useHashHitTablesHelper(filter) + useTagTablesHelper(filter) + " WHERE time >= " + startTime + " AND time < " + endTime + " AND " + SQLHelper.getSQLWhere(filter) // NON-NLS
|
||||
+ " GROUP BY " + typeColumnHelper(useSubTypes); // NON-NLS
|
||||
|
||||
@ -1040,8 +1040,8 @@ public class EventDB {
|
||||
ResultSet rs = stmt.executeQuery(queryString);) {
|
||||
while (rs.next()) {
|
||||
EventType type = useSubTypes
|
||||
? RootEventType.allTypes.get(rs.getInt("sub_type"))
|
||||
: BaseTypes.values()[rs.getInt("base_type")];
|
||||
? RootEventType.allTypes.get(rs.getInt("sub_type")) //NON-NLS
|
||||
: BaseTypes.values()[rs.getInt("base_type")]; //NON-NLS
|
||||
|
||||
typeMap.put(type, rs.getLong("count")); // NON-NLS
|
||||
}
|
||||
@ -1090,9 +1090,9 @@ public class EventDB {
|
||||
|
||||
//compose query string, the new-lines are only for nicer formatting if printing the entire query
|
||||
String query = "SELECT strftime('" + strfTimeFormat + "',time , 'unixepoch'" + timeZone + ") AS interval," // NON-NLS
|
||||
+ "\n group_concat(events.event_id) as event_ids,"
|
||||
+ "\n group_concat(CASE WHEN hash_hit = 1 THEN events.event_id ELSE NULL END) as hash_hits,"
|
||||
+ "\n group_concat(CASE WHEN tagged = 1 THEN events.event_id ELSE NULL END) as taggeds,"
|
||||
+ "\n group_concat(events.event_id) as event_ids," //NON-NLS
|
||||
+ "\n group_concat(CASE WHEN hash_hit = 1 THEN events.event_id ELSE NULL END) as hash_hits," //NON-NLS
|
||||
+ "\n group_concat(CASE WHEN tagged = 1 THEN events.event_id ELSE NULL END) as taggeds," //NON-NLS
|
||||
+ "\n min(time), max(time), " + typeColumn + ", " + descriptionColumn // NON-NLS
|
||||
+ "\n FROM events" + useHashHitTablesHelper(filter) + useTagTablesHelper(filter) // NON-NLS
|
||||
+ "\n WHERE time >= " + start + " AND time < " + end + " AND " + SQLHelper.getSQLWhere(filter) // NON-NLS
|
||||
@ -1101,7 +1101,7 @@ public class EventDB {
|
||||
|
||||
switch (Version.getBuildType()) {
|
||||
case DEVELOPMENT:
|
||||
LOGGER.log(Level.INFO, "executing timeline query: {0}", query);
|
||||
LOGGER.log(Level.INFO, "executing timeline query: {0}", query); //NON-NLS
|
||||
break;
|
||||
case RELEASE:
|
||||
default:
|
||||
@ -1145,8 +1145,8 @@ public class EventDB {
|
||||
String description = rs.getString(SQLHelper.getDescriptionColumn(descriptionLOD));
|
||||
EventType type = useSubTypes ? RootEventType.allTypes.get(rs.getInt("sub_type")) : BaseTypes.values()[rs.getInt("base_type")];// NON-NLS
|
||||
|
||||
Set<Long> hashHits = SQLHelper.unGroupConcat(rs.getString("hash_hits"), Long::valueOf);
|
||||
Set<Long> tagged = SQLHelper.unGroupConcat(rs.getString("taggeds"), Long::valueOf);
|
||||
Set<Long> hashHits = SQLHelper.unGroupConcat(rs.getString("hash_hits"), Long::valueOf); //NON-NLS
|
||||
Set<Long> tagged = SQLHelper.unGroupConcat(rs.getString("taggeds"), Long::valueOf); //NON-NLS
|
||||
|
||||
return new EventCluster(interval, type, eventIDs, hashHits, tagged,
|
||||
description, descriptionLOD);
|
||||
@ -1217,7 +1217,7 @@ public class EventDB {
|
||||
}
|
||||
|
||||
private static String typeColumnHelper(final boolean useSubTypes) {
|
||||
return useSubTypes ? "sub_type" : "base_type";
|
||||
return useSubTypes ? "sub_type" : "base_type"; //NON-NLS
|
||||
}
|
||||
|
||||
private long getDBInfo(DBInfoKey key, long defaultValue) {
|
||||
|
@ -97,7 +97,7 @@ public class EventsRepository {
|
||||
|
||||
private final static Logger LOGGER = Logger.getLogger(EventsRepository.class.getName());
|
||||
|
||||
private final Executor workerExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("eventrepository-worker-%d").build());
|
||||
private final Executor workerExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("eventrepository-worker-%d").build()); //NON-NLS
|
||||
private DBPopulationWorker dbWorker;
|
||||
private final EventDB eventDB;
|
||||
private final Case autoCase;
|
||||
@ -218,7 +218,7 @@ public class EventsRepository {
|
||||
try {
|
||||
return eventStripeCache.get(params);
|
||||
} catch (ExecutionException ex) {
|
||||
LOGGER.log(Level.SEVERE, "Failed to load Event Stripes from cache for " + params.toString(), ex);
|
||||
LOGGER.log(Level.SEVERE, "Failed to load Event Stripes from cache for " + params.toString(), ex); //NON-NLS
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
@ -275,7 +275,7 @@ public class EventsRepository {
|
||||
try {
|
||||
datasourcesMap.putIfAbsent(id, skCase.getContentById(id).getDataSource().getName());
|
||||
} catch (TskCoreException ex) {
|
||||
LOGGER.log(Level.SEVERE, "Failed to get datasource by ID.", ex);
|
||||
LOGGER.log(Level.SEVERE, "Failed to get datasource by ID.", ex); //NON-NLS
|
||||
}
|
||||
}
|
||||
|
||||
@ -283,7 +283,7 @@ public class EventsRepository {
|
||||
//should this only be tags applied to files or event bearing artifacts?
|
||||
tagNames.setAll(skCase.getTagNamesInUse());
|
||||
} catch (TskCoreException ex) {
|
||||
LOGGER.log(Level.SEVERE, "Failed to get tag names in use.", ex);
|
||||
LOGGER.log(Level.SEVERE, "Failed to get tag names in use.", ex); //NON-NLS
|
||||
}
|
||||
}
|
||||
|
||||
@ -310,7 +310,7 @@ public class EventsRepository {
|
||||
try {
|
||||
tagNames.setAll(autoCase.getSleuthkitCase().getTagNamesInUse());
|
||||
} catch (TskCoreException ex) {
|
||||
LOGGER.log(Level.SEVERE, "Failed to get tag names in use.", ex);
|
||||
LOGGER.log(Level.SEVERE, "Failed to get tag names in use.", ex); //NON-NLS
|
||||
}
|
||||
}
|
||||
|
||||
@ -368,7 +368,7 @@ public class EventsRepository {
|
||||
*/
|
||||
@ThreadConfined(type = ThreadConfined.ThreadType.JFX)
|
||||
private CancellationProgressTask<Void> rebuildRepository(final DBPopulationMode mode) {
|
||||
LOGGER.log(Level.INFO, "(re)starting {0} db population task", mode);
|
||||
LOGGER.log(Level.INFO, "(re)starting {0} db population task", mode); //NON-NLS
|
||||
if (dbWorker != null) {
|
||||
dbWorker.cancel();
|
||||
}
|
||||
@ -481,7 +481,7 @@ public class EventsRepository {
|
||||
//reset database //TODO: can we do more incremental updates? -jm
|
||||
eventDB.reInitializeDB();
|
||||
//grab ids of all files
|
||||
List<Long> fileIDs = skCase.findAllFileIdsWhere("name != '.' AND name != '..'");
|
||||
List<Long> fileIDs = skCase.findAllFileIdsWhere("name != '.' AND name != '..'"); //NON-NLS
|
||||
final int numFiles = fileIDs.size();
|
||||
|
||||
trans = eventDB.beginTransaction();
|
||||
@ -635,7 +635,7 @@ public class EventsRepository {
|
||||
try {
|
||||
get();
|
||||
} catch (CancellationException ex) {
|
||||
LOGGER.log(Level.WARNING, "Timeline database population was cancelled by the user. "
|
||||
LOGGER.log(Level.WARNING, "Timeline database population was cancelled by the user. " //NON-NLS
|
||||
+ " Not all events may be present or accurate."); // NON-NLS
|
||||
} catch (Exception ex) {
|
||||
LOGGER.log(Level.WARNING, "Unexpected exception while populating database.", ex); // NON-NLS
|
||||
|
@ -62,12 +62,12 @@ class SQLHelper {
|
||||
|
||||
static String useHashHitTablesHelper(RootFilter filter) {
|
||||
HashHitsFilter hashHitFilter = filter.getHashHitsFilter();
|
||||
return hashHitFilter.isActive() ? " LEFT JOIN hash_set_hits " : " ";
|
||||
return hashHitFilter.isActive() ? " LEFT JOIN hash_set_hits " : " "; //NON-NLS
|
||||
}
|
||||
|
||||
static String useTagTablesHelper(RootFilter filter) {
|
||||
TagsFilter tagsFilter = filter.getTagsFilter();
|
||||
return tagsFilter.isActive() ? " LEFT JOIN tags " : " ";
|
||||
return tagsFilter.isActive() ? " LEFT JOIN tags " : " "; //NON-NLS
|
||||
}
|
||||
|
||||
/**
|
||||
@ -93,13 +93,13 @@ class SQLHelper {
|
||||
return filter.getSubFilters().stream()
|
||||
.filter(Filter::isSelected)
|
||||
.map(SQLHelper::getSQLWhere)
|
||||
.collect(Collectors.joining(" and ", "( ", ")"));
|
||||
.collect(Collectors.joining(" and ", "( ", ")")); //NON-NLS
|
||||
}
|
||||
|
||||
private static String getSQLWhere(UnionFilter<?> filter) {
|
||||
return filter.getSubFilters().stream()
|
||||
.filter(Filter::isSelected).map(SQLHelper::getSQLWhere)
|
||||
.collect(Collectors.joining(" or ", "( ", ")"));
|
||||
.collect(Collectors.joining(" or ", "( ", ")")); //NON-NLS
|
||||
}
|
||||
|
||||
static String getSQLWhere(RootFilter filter) {
|
||||
@ -143,7 +143,7 @@ class SQLHelper {
|
||||
} else {
|
||||
throw new IllegalArgumentException("getSQLWhere not defined for " + filter.getClass().getCanonicalName());
|
||||
}
|
||||
result = StringUtils.deleteWhitespace(result).equals("(1and1and1)") ? "1" : result;
|
||||
result = StringUtils.deleteWhitespace(result).equals("(1and1and1)") ? "1" : result; //NON-NLS
|
||||
result = StringUtils.deleteWhitespace(result).equals("()") ? "1" : result;
|
||||
return result;
|
||||
}
|
||||
@ -158,7 +158,7 @@ class SQLHelper {
|
||||
|
||||
private static String getSQLWhere(DescriptionFilter filter) {
|
||||
if (filter.isActive()) {
|
||||
String likeOrNotLike = (filter.getFilterMode() == DescriptionFilter.FilterMode.INCLUDE ? "" : " NOT") + " LIKE '";
|
||||
String likeOrNotLike = (filter.getFilterMode() == DescriptionFilter.FilterMode.INCLUDE ? "" : " NOT") + " LIKE '"; //NON-NLS
|
||||
return "(" + getDescriptionColumn(filter.getDescriptionLoD()) + likeOrNotLike + filter.getDescription() + "' )"; // NON-NLS
|
||||
} else {
|
||||
return "1";
|
||||
@ -172,8 +172,8 @@ class SQLHelper {
|
||||
.filter((TagNameFilter t) -> t.isSelected() && !t.isDisabled())
|
||||
.map((TagNameFilter t) -> String.valueOf(t.getTagName().getId()))
|
||||
.collect(Collectors.joining(", ", "(", ")"));
|
||||
return "(events.event_id == tags.event_id AND "
|
||||
+ "tags.tag_name_id IN " + tagNameIDs + ") ";
|
||||
return "(events.event_id == tags.event_id AND " //NON-NLS
|
||||
+ "tags.tag_name_id IN " + tagNameIDs + ") "; //NON-NLS
|
||||
} else {
|
||||
return "1";
|
||||
}
|
||||
@ -187,7 +187,7 @@ class SQLHelper {
|
||||
.filter((HashSetFilter t) -> t.isSelected() && !t.isDisabled())
|
||||
.map((HashSetFilter t) -> String.valueOf(t.getHashSetID()))
|
||||
.collect(Collectors.joining(", ", "(", ")"));
|
||||
return "(hash_set_hits.hash_set_id IN " + hashSetIDs + " AND hash_set_hits.event_id == events.event_id)";
|
||||
return "(hash_set_hits.hash_set_id IN " + hashSetIDs + " AND hash_set_hits.event_id == events.event_id)"; //NON-NLS
|
||||
} else {
|
||||
return "1";
|
||||
}
|
||||
@ -195,14 +195,14 @@ class SQLHelper {
|
||||
|
||||
private static String getSQLWhere(DataSourceFilter filter) {
|
||||
if (filter.isActive()) {
|
||||
return "(datasource_id = '" + filter.getDataSourceID() + "')";
|
||||
return "(datasource_id = '" + filter.getDataSourceID() + "')"; //NON-NLS
|
||||
} else {
|
||||
return "1";
|
||||
}
|
||||
}
|
||||
|
||||
private static String getSQLWhere(DataSourcesFilter filter) {
|
||||
return (filter.isActive()) ? "(datasource_id in ("
|
||||
return (filter.isActive()) ? "(datasource_id in (" //NON-NLS
|
||||
+ filter.getSubFilters().stream()
|
||||
.filter(AbstractFilter::isActive)
|
||||
.map((dataSourceFilter) -> String.valueOf(dataSourceFilter.getDataSourceID()))
|
||||
@ -215,9 +215,9 @@ class SQLHelper {
|
||||
return "1";
|
||||
}
|
||||
String strippedFilterText = StringUtils.strip(filter.getText());
|
||||
return "((med_description like '%" + strippedFilterText + "%')"
|
||||
+ " or (full_description like '%" + strippedFilterText + "%')"
|
||||
+ " or (short_description like '%" + strippedFilterText + "%'))";
|
||||
return "((med_description like '%" + strippedFilterText + "%')" //NON-NLS
|
||||
+ " or (full_description like '%" + strippedFilterText + "%')" //NON-NLS
|
||||
+ " or (short_description like '%" + strippedFilterText + "%'))"; //NON-NLS
|
||||
} else {
|
||||
return "1";
|
||||
}
|
||||
@ -240,7 +240,7 @@ class SQLHelper {
|
||||
return "1"; //then collapse clause to true
|
||||
}
|
||||
}
|
||||
return "(sub_type IN (" + StringUtils.join(getActiveSubTypes(typeFilter), ",") + "))";
|
||||
return "(sub_type IN (" + StringUtils.join(getActiveSubTypes(typeFilter), ",") + "))"; //NON-NLS
|
||||
}
|
||||
|
||||
private static List<Integer> getActiveSubTypes(TypeFilter filter) {
|
||||
@ -288,12 +288,12 @@ class SQLHelper {
|
||||
static String getDescriptionColumn(DescriptionLoD lod) {
|
||||
switch (lod) {
|
||||
case FULL:
|
||||
return "full_description";
|
||||
return "full_description"; //NON-NLS
|
||||
case MEDIUM:
|
||||
return "med_description";
|
||||
return "med_description"; //NON-NLS
|
||||
case SHORT:
|
||||
default:
|
||||
return "short_description";
|
||||
return "short_description"; //NON-NLS
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -78,7 +78,7 @@ class EventNode extends DisplayableItemNode {
|
||||
try {
|
||||
timePropery.setValue(getDateTimeString());
|
||||
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
|
||||
LOGGER.log(Level.SEVERE, "unexpected error setting date/time property on EventNode explorer node", ex);
|
||||
LOGGER.log(Level.SEVERE, "unexpected error setting date/time property on EventNode explorer node", ex); //NON-NLS
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -53,8 +53,8 @@ import org.sleuthkit.autopsy.timeline.TimeLineController;
|
||||
*/
|
||||
public abstract class IntervalSelector<X> extends BorderPane {
|
||||
|
||||
private static final Image ClEAR_INTERVAL_ICON = new Image("/org/sleuthkit/autopsy/timeline/images/cross-script.png", 16, 16, true, true, true);
|
||||
private static final Image ZOOM_TO_INTERVAL_ICON = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-fit.png", 16, 16, true, true, true);
|
||||
private static final Image ClEAR_INTERVAL_ICON = new Image("/org/sleuthkit/autopsy/timeline/images/cross-script.png", 16, 16, true, true, true); //NON-NLS
|
||||
private static final Image ZOOM_TO_INTERVAL_ICON = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-fit.png", 16, 16, true, true, true); //NON-NLS
|
||||
private static final double STROKE_WIDTH = 3;
|
||||
private static final double HALF_STROKE = STROKE_WIDTH / 2;
|
||||
|
||||
|
@ -84,10 +84,11 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@NbBundle.Messages({"EventBundleNodeBase.toolTip.loading=loading..."})
|
||||
public abstract class EventBundleNodeBase<BundleType extends EventBundle<ParentType>, ParentType extends EventBundle<BundleType>, ParentNodeType extends EventBundleNodeBase<ParentType, BundleType, ?>> extends StackPane {
|
||||
|
||||
private static final Logger LOGGER = Logger.getLogger(EventBundleNodeBase.class.getName());
|
||||
private static final Image HASH_PIN = new Image("/org/sleuthkit/autopsy/images/hashset_hits.png"); //NOI18N
|
||||
private static final Image HASH_PIN = new Image("/org/sleuthkit/autopsy/images/hashset_hits.png"); //NOI18N NON-NLS
|
||||
private static final Image TAG = new Image("/org/sleuthkit/autopsy/images/green-tag-icon-16.png"); // NON-NLS //NOI18N
|
||||
|
||||
static final CornerRadii CORNER_RADII_3 = new CornerRadii(3);
|
||||
@ -131,7 +132,7 @@ public abstract class EventBundleNodeBase<BundleType extends EventBundle<ParentT
|
||||
final ImageView tagIV = new ImageView(TAG);
|
||||
final HBox infoHBox = new HBox(5, descrLabel, countLabel, hashIV, tagIV);
|
||||
|
||||
private final Tooltip tooltip = new Tooltip("loading...");
|
||||
private final Tooltip tooltip = new Tooltip(Bundle.EventBundleNodeBase_toolTip_loading());
|
||||
private Timeline timeline;
|
||||
|
||||
public EventBundleNodeBase(EventDetailsChart chart, BundleType eventBundle, ParentNodeType parentNode) {
|
||||
@ -226,13 +227,18 @@ public abstract class EventBundleNodeBase<BundleType extends EventBundle<ParentT
|
||||
"# {2} - description",
|
||||
"# {3} - start date/time",
|
||||
"# {4} - end date/time",
|
||||
"EventBundleNodeBase.tooltip.text={0} {1} events\n{2}\nbetween\t{3}\nand \t{4}"})
|
||||
"EventBundleNodeBase.tooltip.text={0} {1} events\n{2}\nbetween\t{3}\nand \t{4}",
|
||||
"EventBundleNodeBase.toolTip.loading2=loading tooltip",
|
||||
"# {0} - hash set count string",
|
||||
"EventBundleNodeBase.toolTip.hashSetHits=\n\nHash Set Hits\n{0}",
|
||||
"# {0} - tag count string",
|
||||
"EventBundleNodeBase.toolTip.tags=\n\nTags\n{0}"})
|
||||
@ThreadConfined(type = ThreadConfined.ThreadType.JFX)
|
||||
private void installTooltip() {
|
||||
if (tooltip.getText().equalsIgnoreCase("loading...")) {
|
||||
if (tooltip.getText().equalsIgnoreCase(Bundle.EventBundleNodeBase_toolTip_loading())) {
|
||||
final Task<String> tooltTipTask = new Task<String>() {
|
||||
{
|
||||
updateTitle("loading tooltip");
|
||||
updateTitle(Bundle.EventBundleNodeBase_toolTip_loading2());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -248,7 +254,7 @@ public abstract class EventBundleNodeBase<BundleType extends EventBundle<ParentT
|
||||
}
|
||||
}
|
||||
} catch (TskCoreException ex) {
|
||||
LOGGER.log(Level.SEVERE, "Error getting hashset hit info for event.", ex);
|
||||
LOGGER.log(Level.SEVERE, "Error getting hashset hit info for event.", ex); //NON-NLS
|
||||
}
|
||||
}
|
||||
String hashSetCountsString = hashSetCounts.entrySet().stream()
|
||||
@ -266,8 +272,8 @@ public abstract class EventBundleNodeBase<BundleType extends EventBundle<ParentT
|
||||
return Bundle.EventBundleNodeBase_tooltip_text(getEventIDs().size(), getEventType(), getDescription(),
|
||||
TimeLineController.getZonedFormatter().print(getStartMillis()),
|
||||
TimeLineController.getZonedFormatter().print(getEndMillis() + 1000))
|
||||
+ (hashSetCountsString.isEmpty() ? "" : "\n\nHash Set Hits\n" + hashSetCountsString)
|
||||
+ (tagCountsString.isEmpty() ? "" : "\n\nTags\n" + tagCountsString);
|
||||
+ (hashSetCountsString.isEmpty() ? "" : Bundle.EventBundleNodeBase_toolTip_hashSetHits(hashSetCountsString))
|
||||
+ (tagCountsString.isEmpty() ? "" : Bundle.EventBundleNodeBase_toolTip_tags(tagCountsString));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -277,7 +283,7 @@ public abstract class EventBundleNodeBase<BundleType extends EventBundle<ParentT
|
||||
tooltip.setText(get());
|
||||
tooltip.setGraphic(null);
|
||||
} catch (InterruptedException | ExecutionException ex) {
|
||||
LOGGER.log(Level.SEVERE, "Tooltip generation failed.", ex);
|
||||
LOGGER.log(Level.SEVERE, "Tooltip generation failed.", ex); //NON-NLS
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -207,7 +207,7 @@ final public class EventClusterNode extends EventBundleNodeBase<EventCluster, Ev
|
||||
descLOD.set(loadedDescriptionLoD);
|
||||
}
|
||||
} catch (InterruptedException | ExecutionException ex) {
|
||||
LOGGER.log(Level.SEVERE, "Error loading subnodes", ex);
|
||||
LOGGER.log(Level.SEVERE, "Error loading subnodes", ex); //NON-NLS
|
||||
}
|
||||
chart.requestChartLayout();
|
||||
chart.setCursor(null);
|
||||
|
@ -96,10 +96,10 @@ import org.sleuthkit.autopsy.timeline.zooming.DescriptionLoD;
|
||||
*/
|
||||
public final class EventDetailsChart extends XYChart<DateTime, EventStripe> implements TimeLineChart<DateTime> {
|
||||
|
||||
private static final String styleSheet = GuideLine.class.getResource("EventsDetailsChart.css").toExternalForm();
|
||||
private static final String styleSheet = GuideLine.class.getResource("EventsDetailsChart.css").toExternalForm(); //NON-NLS
|
||||
private static final Image HIDE = new Image("/org/sleuthkit/autopsy/timeline/images/eye--minus.png"); // NON-NLS
|
||||
private static final Image SHOW = new Image("/org/sleuthkit/autopsy/timeline/images/eye--plus.png"); // NON-NLS
|
||||
private static final Image MARKER = new Image("/org/sleuthkit/autopsy/timeline/images/marker.png", 16, 16, true, true, true);
|
||||
private static final Image MARKER = new Image("/org/sleuthkit/autopsy/timeline/images/marker.png", 16, 16, true, true, true); //NON-NLS
|
||||
private static final int PROJECTED_LINE_Y_OFFSET = 5;
|
||||
private static final int PROJECTED_LINE_STROKE_WIDTH = 5;
|
||||
private static final int MINIMUM_EVENT_NODE_GAP = 4;
|
||||
@ -725,11 +725,13 @@ public final class EventDetailsChart extends XYChart<DateTime, EventStripe> impl
|
||||
}
|
||||
}
|
||||
|
||||
@NbBundle.Messages({"HideDescriptionAction.displayName=Hide",
|
||||
"HideDescriptionAction.displayMsg=Hide this group from the details view."})
|
||||
class HideDescriptionAction extends Action {
|
||||
|
||||
HideDescriptionAction(String description, DescriptionLoD descriptionLoD) {
|
||||
super("Hide");
|
||||
setLongText("Hide this group from the details view.");
|
||||
super(Bundle.HideDescriptionAction_displayName());
|
||||
setLongText(Bundle.HideDescriptionAction_displayMsg());
|
||||
setGraphic(new ImageView(HIDE));
|
||||
setEventHandler((ActionEvent t) -> {
|
||||
final DescriptionFilter testFilter = new DescriptionFilter(
|
||||
@ -749,10 +751,11 @@ public final class EventDetailsChart extends XYChart<DateTime, EventStripe> impl
|
||||
}
|
||||
}
|
||||
|
||||
@NbBundle.Messages({"UnhideDescriptionAction.displayName=Unhide"})
|
||||
class UnhideDescriptionAction extends Action {
|
||||
|
||||
UnhideDescriptionAction(String description, DescriptionLoD descriptionLoD) {
|
||||
super("Unhide");
|
||||
super(Bundle.UnhideDescriptionAction_displayName());
|
||||
setGraphic(new ImageView(SHOW));
|
||||
setEventHandler((ActionEvent t) ->
|
||||
getController().getQuickHideFilters().stream()
|
||||
|
@ -53,7 +53,7 @@ class GuideLine extends Line {
|
||||
Axis<DateTime> xAxis = chart.getXAxis();
|
||||
endYProperty().bind(chart.heightProperty().subtract(xAxis.heightProperty().subtract(xAxis.tickLengthProperty())));
|
||||
|
||||
getStyleClass().add("guide-line");
|
||||
getStyleClass().add("guide-line"); //NON-NLS
|
||||
|
||||
Tooltip.install(this, tooltip);
|
||||
tooltip.setOnShowing(showing -> tooltip.setText(Bundle.GuideLine_tooltip_text(getDateTimeAsString())));
|
||||
|
@ -53,9 +53,6 @@ import org.sleuthkit.autopsy.timeline.filters.DescriptionFilter;
|
||||
import org.sleuthkit.autopsy.timeline.filters.Filter;
|
||||
import org.sleuthkit.autopsy.timeline.filters.RootFilter;
|
||||
import org.sleuthkit.autopsy.timeline.filters.TypeFilter;
|
||||
import static org.sleuthkit.autopsy.timeline.ui.filtering.Bundle.Timeline_ui_filtering_menuItem_none;
|
||||
import static org.sleuthkit.autopsy.timeline.ui.filtering.Bundle.Timeline_ui_filtering_menuItem_only;
|
||||
import static org.sleuthkit.autopsy.timeline.ui.filtering.Bundle.Timeline_ui_filtering_menuItem_select;
|
||||
|
||||
/**
|
||||
* The FXML controller for the filter ui.
|
||||
@ -65,7 +62,7 @@ import static org.sleuthkit.autopsy.timeline.ui.filtering.Bundle.Timeline_ui_fil
|
||||
*/
|
||||
final public class FilterSetPanel extends BorderPane {
|
||||
|
||||
private static final Image TICK = new Image("org/sleuthkit/autopsy/timeline/images/tick.png");
|
||||
private static final Image TICK = new Image("org/sleuthkit/autopsy/timeline/images/tick.png"); //NON-NLS
|
||||
|
||||
@FXML
|
||||
private Button applyButton;
|
||||
@ -103,7 +100,9 @@ final public class FilterSetPanel extends BorderPane {
|
||||
"Timeline.ui.filtering.menuItem.none=none",
|
||||
"Timeline.ui.filtering.menuItem.only=only",
|
||||
"Timeline.ui.filtering.menuItem.others=others",
|
||||
"Timeline.ui.filtering.menuItem.select=select"})
|
||||
"Timeline.ui.filtering.menuItem.select=select",
|
||||
"FilterSetPanel.hiddenDescriptionsListView.unhideAndRm=Unhide and remove from list",
|
||||
"FilterSetPanel.hiddenDescriptionsListView.remove=Remove from list"})
|
||||
void initialize() {
|
||||
assert applyButton != null : "fx:id=\"applyButton\" was not injected: check your FXML file 'FilterSetPanel.fxml'."; // NON-NLS
|
||||
|
||||
@ -123,14 +122,14 @@ final public class FilterSetPanel extends BorderPane {
|
||||
t.getValue().setSelected(Boolean.TRUE);
|
||||
});
|
||||
});
|
||||
MenuItem none = new MenuItem(Timeline_ui_filtering_menuItem_none());
|
||||
MenuItem none = new MenuItem(Bundle.Timeline_ui_filtering_menuItem_none());
|
||||
none.setOnAction(e -> {
|
||||
row.getTreeItem().getParent().getChildren().forEach((TreeItem<Filter> t) -> {
|
||||
t.getValue().setSelected(Boolean.FALSE);
|
||||
});
|
||||
});
|
||||
|
||||
MenuItem only = new MenuItem(Timeline_ui_filtering_menuItem_only());
|
||||
MenuItem only = new MenuItem(Bundle.Timeline_ui_filtering_menuItem_only());
|
||||
only.setOnAction(e -> {
|
||||
row.getTreeItem().getParent().getChildren().forEach((TreeItem<Filter> t) -> {
|
||||
if (t == row.getTreeItem()) {
|
||||
@ -151,7 +150,7 @@ final public class FilterSetPanel extends BorderPane {
|
||||
});
|
||||
});
|
||||
final ContextMenu rowMenu = new ContextMenu();
|
||||
Menu select = new Menu(Timeline_ui_filtering_menuItem_select());
|
||||
Menu select = new Menu(Bundle.Timeline_ui_filtering_menuItem_select());
|
||||
select.setOnAction(e -> {
|
||||
row.getItem().setSelected(!row.getItem().isSelected());
|
||||
});
|
||||
@ -212,9 +211,9 @@ final public class FilterSetPanel extends BorderPane {
|
||||
|
||||
private void configureText(Boolean newValue) {
|
||||
if (newValue) {
|
||||
setText("Unhide and remove from list");
|
||||
setText(Bundle.FilterSetPanel_hiddenDescriptionsListView_unhideAndRm());
|
||||
} else {
|
||||
setText("Remove from list");
|
||||
setText(Bundle.FilterSetPanel_hiddenDescriptionsListView_remove());
|
||||
}
|
||||
}
|
||||
}));
|
||||
@ -257,12 +256,13 @@ final public class FilterSetPanel extends BorderPane {
|
||||
});
|
||||
}
|
||||
|
||||
@NbBundle.Messages({"FilterSetPanel.applyButton.text=Apply"})
|
||||
@NbBundle.Messages({"FilterSetPanel.applyButton.text=Apply",
|
||||
"FilterSetPanel.applyButton.longText=(Re)Apply filters"})
|
||||
private class ApplyFiltersAction extends Action {
|
||||
|
||||
ApplyFiltersAction() {
|
||||
super(Bundle.FilterSetPanel_applyButton_text());
|
||||
setLongText("(Re)Apply filters");
|
||||
setLongText(Bundle.FilterSetPanel_applyButton_longText());
|
||||
setGraphic(new ImageView(TICK));
|
||||
setEventHandler((ActionEvent t) -> {
|
||||
applyFilters();
|
||||
|
@ -130,7 +130,7 @@ public class ZoomParams {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ZoomParams{" + "timeRange=" + timeRange + ", typeZoomLevel=" + typeZoomLevel + ", filter=" + filter + ", descrLOD=" + descrLOD + '}';
|
||||
return "ZoomParams{" + "timeRange=" + timeRange + ", typeZoomLevel=" + typeZoomLevel + ", filter=" + filter + ", descrLOD=" + descrLOD + '}'; //NON-NLS
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user