// delete image helper private void doDeleteImage() { // no more image left in this case if (currentCase.getRootObjectsCount() == 0) { // close all top components CoreComponentControl.closeCoreWindows(); } }
// case change helper private static void doCaseChange(Case toChangeTo) { logger.log(Level.INFO, "Changing Case to: " + toChangeTo); if (toChangeTo != null) { // new case is open // clear the temp folder when the case is created / opened Case.clearTempFolder(); checkSubFolders(toChangeTo); // enable these menus CallableSystemAction.get(AddImageAction.class).setEnabled(true); CallableSystemAction.get(CaseCloseAction.class).setEnabled(true); CallableSystemAction.get(CasePropertiesAction.class).setEnabled(true); CallableSystemAction.get(CaseDeleteAction.class).setEnabled(true); // Delete Case menu if (toChangeTo.getRootObjectsCount() > 0) { // open all top components CoreComponentControl.openCoreWindows(); } else { // close all top components CoreComponentControl.closeCoreWindows(); } } else { // case is closed // close all top components first CoreComponentControl.closeCoreWindows(); // disable these menus CallableSystemAction.get(AddImageAction.class).setEnabled(false); // Add Image menu CallableSystemAction.get(CaseCloseAction.class).setEnabled(false); // Case Close menu CallableSystemAction.get(CasePropertiesAction.class) .setEnabled(false); // Case Properties menu CallableSystemAction.get(CaseDeleteAction.class).setEnabled(false); // Delete Case menu // clear pending notifications MessageNotifyUtil.Notify.clear(); Frame f = WindowManager.getDefault().getMainWindow(); f.setTitle(Case.getAppName()); // set the window name to just application name // try to force gc to happen System.gc(); System.gc(); } // log memory usage after case changed logger.log(Level.INFO, PlatformUtil.getAllMemUsageInfo()); }
/** * Adds the image to the current case after it has been added to the DB Sends out event and * reopens windows if needed. * * @param imgPaths the paths of the image that being added * @param imgId the ID of the image that being added * @param timeZone the timeZone of the image where it's added */ Image addImage(String imgPath, long imgId, String timeZone) throws CaseActionException { logger.log( Level.INFO, "Adding image to Case. imgPath: {0} ID: {1} TimeZone: {2}", new Object[] {imgPath, imgId, timeZone}); try { Image newImage = db.getImageById(imgId); pcs.firePropertyChange( CASE_ADD_DATA_SOURCE, null, newImage); // the new value is the instance of the image CoreComponentControl.openCoreWindows(); return newImage; } catch (Exception ex) { throw new CaseActionException("Error adding image to the case", ex); } }
/** * Finishes adding new local data source to the case Sends out event and reopens windows if * needed. * * @param newDataSource new data source added */ void addLocalDataSource(Content newDataSource) { pcs.firePropertyChange(CASE_ADD_DATA_SOURCE, null, newDataSource); CoreComponentControl.openCoreWindows(); }