19 package org.sleuthkit.autopsy.keywordsearch.multicase;
 
   21 import java.awt.BorderLayout;
 
   22 import java.awt.Component;
 
   23 import org.openide.util.NbBundle.Messages;
 
   24 import org.openide.windows.TopComponent;
 
   25 import org.openide.windows.WindowManager;
 
   26 import org.openide.windows.Mode;
 
   28 @TopComponent.Description(
 
   29         preferredID = 
"MultiCaseKeywordSearchTopComponent",
 
   30         persistenceType = TopComponent.PERSISTENCE_NEVER
 
   32 @TopComponent.Registration(mode = 
"multiCaseKeywordSearch", openAtStartup = 
false)
 
   34     "CTL_MultiCaseKeywordSearchTopComponentAction=Multi-case Keyword Search",
 
   35     "CTL_MultiCaseKeywordSearchTopComponent=Multi-case Keyword Search"})
 
   39 final class MultiCaseKeywordSearchTopComponent extends TopComponent {
 
   41     public final static String PREFERRED_ID = 
"MultiCaseKeywordSearchTopComponent"; 
 
   42     private static final long serialVersionUID = 1L;
 
   43     private static boolean topComponentInitialized = 
false;
 
   46         "MultiCaseKeywordSearchTopComponent.exceptionMessage.failedToCreatePanel=Failed to create Multi-case Keyword Search panel.",})
 
   51     static void openTopComponent() {
 
   52         final MultiCaseKeywordSearchTopComponent tc = (MultiCaseKeywordSearchTopComponent) WindowManager.getDefault().findTopComponent(PREFERRED_ID);
 
   54             if (tc.isOpened() == 
false) {
 
   55                 topComponentInitialized = 
true;
 
   56                 Mode mode = WindowManager.getDefault().findMode(
"multiCaseKeywordSearch"); 
 
   70     static void closeTopComponent() {
 
   71         if (topComponentInitialized) {
 
   72             final TopComponent tc = WindowManager.getDefault().findTopComponent(PREFERRED_ID);
 
   76                 } 
catch (Exception e) {
 
   83     @Messages({
"MultiCaseKeywordSearchTopComponent.name.text=Multi-case Keyword Search"})
 
   87     MultiCaseKeywordSearchTopComponent() {
 
   89         setName(Bundle.MultiCaseKeywordSearchTopComponent_name_text());
 
   90         setDisplayName(Bundle.MultiCaseKeywordSearchTopComponent_name_text());
 
   91         setToolTipText(Bundle.MultiCaseKeywordSearchTopComponent_name_text());
 
   92         setSize(this.getPreferredSize());
 
   93         setLayout(
new BorderLayout());
 
   94         MultiCaseKeywordSearchPanel searchPanel = 
new MultiCaseKeywordSearchPanel();
 
   95         searchPanel.setSize(searchPanel.getPreferredSize());
 
   96         searchPanel.setVisible(
true);
 
  101     public void componentOpened() {
 
  102         super.componentOpened();
 
  103         WindowManager.getDefault().setTopComponentFloating(
this, 
true);
 
  107     public boolean canClose() {
 
  108         for (Component component : getComponents()) {
 
  109             if (component instanceof MultiCaseKeywordSearchPanel) {
 
  110                 ((MultiCaseKeywordSearchPanel) component).closeSearchPanel();
 
  113         return super.canClose();
 
  122     private void initComponents() {
 
  124         setPreferredSize(
new java.awt.Dimension(1002, 444));
 
  126         javax.swing.GroupLayout layout = 
new javax.swing.GroupLayout(
this);
 
  127         this.setLayout(layout);
 
  128         layout.setHorizontalGroup(
 
  129             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
  130             .addGap(0, 902, Short.MAX_VALUE)
 
  132         layout.setVerticalGroup(
 
  133             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
  134             .addGap(0, 444, Short.MAX_VALUE)