1 /* 2 * $HeadURL: $ 3 * $Date: $ 4 * $Revision: $ 5 * $Author: $ 6 * 7 * Copyright (c) 2005 MindTree Consulting Ltd. 8 * 9 * This file is part of Insight. 10 * 11 * Insight is free software: you can redistribute it and/or modify it under the 12 * terms of the GNU General Public License as published by the Free Software 13 * Foundation, either version 3 of the License, or (at your option) any later 14 * version. 15 * 16 * Insight is distributed in the hope that it will be useful, but 17 * WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 19 * Public License for more details. 20 * 21 * You should have received a copy of the GNU General Public License along with 22 * Insight. If not, see <http://www.gnu.org/licenses/>. 23 */ 24 package com.mindtree.techworks.insight.gui.action; 25 26 import java.awt.event.ActionEvent; 27 28 import javax.swing.AbstractAction; 29 30 import com.mindtree.techworks.insight.gui.EventDetailsPresentation; 31 import com.mindtree.techworks.insight.gui.Insight; 32 import com.mindtree.techworks.insight.gui.search.SearchTextFrame; 33 34 /** 35 * 36 * The <code>FindAction</code> class is an AbstractAction derivative that 37 * permits searching for text in the Event Details presentation 38 * 39 * @author Regunath B 40 * @version 1.0, 05/02/04 41 * @see com.mindtree.techworks.insight.gui.Insight 42 */ 43 44 public class FindAction extends AbstractAction { 45 46 /** 47 * Used for object serialization 48 */ 49 private static final long serialVersionUID = -5547331394914513885L; 50 51 /** 52 * The Insight instance that created this Action instance 53 */ 54 private Insight insight; 55 56 /** 57 * Singleton instance of this class 58 */ 59 private static FindAction instance; 60 61 /** 62 * The SearchTextFrame for text search on the Event Details presentation 63 */ 64 private SearchTextFrame searchTextFrame; 65 66 /** 67 * Private constructor for this class to prevent multiple instances 68 * @param insight the Insight that created an instance of this class 69 * @see #getInstance() to get instance of this class 70 */ 71 private FindAction(Insight insight) { 72 this.insight = insight; 73 } 74 75 /** 76 * Accessor method for getting the singleton instance of this class 77 * @param insight the Insight that created an instance of this class 78 * @return the singleton instance of this class 79 */ 80 public static synchronized FindAction getInstance(Insight insight) { 81 if (instance == null) { 82 instance = new FindAction(insight); 83 } 84 return instance; 85 } 86 87 /** 88 * Overriden super class method. Resets the display widgets. 89 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) 90 */ 91 public void actionPerformed(ActionEvent e) { 92 showSearchTextFrame(); 93 } 94 95 /** 96 * Method to programmatically bring up the search text frame 97 */ 98 public void showSearchTextFrame() { 99 if (this.searchTextFrame == null) { 100 this.searchTextFrame = new SearchTextFrame(this.insight, 101 (EventDetailsPresentation)this.insight.getController().getPresentation(EventDetailsPresentation.class.getName())); 102 } 103 this.searchTextFrame.showFrame(); 104 } 105 106 }