19 package org.sleuthkit.autopsy.timeline;
 
   21 import java.awt.Component;
 
   22 import java.util.logging.Level;
 
   23 import javafx.application.Platform;
 
   24 import javax.swing.ImageIcon;
 
   25 import javax.swing.JButton;
 
   26 import javax.swing.JMenuItem;
 
   27 import org.openide.awt.ActionID;
 
   28 import org.openide.awt.ActionReference;
 
   29 import org.openide.awt.ActionReferences;
 
   30 import org.openide.awt.ActionRegistration;
 
   31 import org.openide.util.HelpCtx;
 
   32 import org.openide.util.NbBundle;
 
   33 import org.openide.util.actions.CallableSystemAction;
 
   51 @ActionID(category = 
"Tools", 
id = 
"org.sleuthkit.autopsy.timeline.Timeline")
 
   52 @ActionRegistration(displayName = 
"#CTL_MakeTimeline", lazy = 
false)
 
   53 @ActionReferences(value = {
 
   54     @ActionReference(path = 
"Menu/Tools", position = 102)
 
   56     @ActionReference(path = 
"Toolbars/Case", position = 102)})
 
   59     private static final long serialVersionUID = 1L;
 
   61     private static final int FILE_LIMIT = 6_000_000;
 
   64     private final JButton toolbarButton = 
new JButton(getName(),
 
   65             new ImageIcon(getClass().getResource(
"images/btn_icon_timeline_colorized_26.png"))); 
 
   69         toolbarButton.addActionListener(actionEvent -> performAction());
 
   70         menuItem = super.getMenuPresenter();
 
   71         this.setEnabled(
false);
 
   86     public 
void performAction() {
 
   88             Platform.runLater(PromptDialogManager::showTooManyFiles);
 
   91             Platform.runLater(PromptDialogManager::showTimeLineDisabledMessage);
 
   96             } 
catch (TskCoreException ex) {
 
   98                 logger.log(Level.SEVERE, 
"Error showingtimeline.", ex);
 
  104         "OpenTimelineAction.settingsErrorMessage=Failed to initialize timeline settings.",
 
  105         "OpenTimeLineAction.msgdlg.text=Could not create timeline, there are no data sources."})
 
  106     synchronized private void showTimeline(AbstractFile file, BlackboardArtifact artifact) 
throws TskCoreException {
 
  109             if (currentCase.
hasData() == 
false) {
 
  111                 logger.log(Level.INFO, 
"Could not create timeline, there are no data sources.");
 
  115             controller.showTimeLine(file, artifact);
 
  125     public 
void showTimeline() throws TskCoreException {
 
  126         showTimeline(null, null);
 
  137     public 
void showFileInTimeline(AbstractFile file) throws TskCoreException {
 
  138         showTimeline(file, null);
 
  148     public 
void showArtifactInTimeline(BlackboardArtifact artifact) throws TskCoreException {
 
  149         showTimeline(null, artifact);
 
  153     @NbBundle.Messages(
"OpenTimelineAction.displayName=Timeline")
 
  155         return Bundle.OpenTimelineAction_displayName();
 
  160         return HelpCtx.DEFAULT_HELP;
 
  175         super.setEnabled(enable);
 
  176         menuItem.setEnabled(enable);
 
  177         toolbarButton.setEnabled(enable);
 
  187         return toolbarButton;
 
  199             logger.log(Level.SEVERE, 
"Can not open timeline with no case open.", ex);
 
  200         } 
catch (TskCoreException ex) {
 
  201             logger.log(Level.SEVERE, 
"Error counting files in the DB.", ex);
 
Component getToolbarPresenter()
static boolean isJavaFxInited()
void setEnabled(boolean enable)
JMenuItem getMenuPresenter()
SleuthkitCase getSleuthkitCase()
synchronized void showTimeline(AbstractFile file, BlackboardArtifact artifact)
static String getConfigSetting(String moduleName, String settingName)
synchronized static Logger getLogger(String name)
static Case getCurrentCaseThrows()
static TimeLineController getController()
static void info(String message)
static boolean isCaseOpen()
static void error(String message)