diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java index 1e42c760dd..afba856cb1 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java @@ -830,6 +830,7 @@ public final class DrawableDB { * * @throws TskCoreException */ + @Deprecated public long countFiles() throws TskCoreException { Statement statement = null; ResultSet rs = null; diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java index 78ff9f21cd..16869bc2a9 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java @@ -345,16 +345,19 @@ public class GroupManager { values = new ArrayList<>(names); break; case MIME_TYPE: - try (SleuthkitCase.CaseDbQuery executeQuery = controller.getSleuthKitCase().executeQuery("select distinct mime_type from tsk_files"); + HashSet types = new HashSet<>(); + try (SleuthkitCase.CaseDbQuery executeQuery = controller.getSleuthKitCase().executeQuery("select obj_id, mime_type from tsk_files"); ResultSet resultSet = executeQuery.getResultSet();) { - values = new ArrayList<>(); while (resultSet.next()) { - - values.add((A) resultSet.getString("mime_type")); + if (db.isInDB(resultSet.getLong("obj_id"))) { + types.add(resultSet.getString("mime_type")); + } } } catch (SQLException | TskCoreException ex) { Exceptions.printStackTrace(ex); } + values = new ArrayList((Collection) types); + break; default: //otherwise do straight db query return db.findValuesForAttribute(groupBy, sortBy, sortOrder); @@ -375,6 +378,8 @@ public class GroupManager { return getFileIDsWithCategory((Category) groupKey.getValue()); case TAGS: return getFileIDsWithTag((TagName) groupKey.getValue()); + case MIME_TYPE: + return getFileIDsWithMimeType((String) groupKey.getValue()); // case HASHSET: //comment out this case to use db functionality for hashsets // return getFileIDsWithHashSetName((String) groupKey.getValue()); default: @@ -679,8 +684,23 @@ public class GroupManager { return null; } - public Set getFileIDsWithMimeType(String string) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + public Set getFileIDsWithMimeType(String mimeType) throws TskCoreException { + + HashSet hashSet = new HashSet<>(); + try (SleuthkitCase.CaseDbQuery executeQuery = controller.getSleuthKitCase().executeQuery("select obj_id from tsk_files where mime_type = '" + mimeType + "'");) { + ResultSet resultSet = executeQuery.getResultSet(); + while (resultSet.next()) { + final long fileID = resultSet.getLong("obj_id"); + if (db.isInDB(fileID)) { + hashSet.add(fileID); + } + } + return hashSet; + + } catch (Exception ex) { + Exceptions.printStackTrace(ex); + throw new TskCoreException("Failed to get file ids with mime type " + mimeType, ex); + } } /**