View Javadoc

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.Insight;
31  import com.mindtree.techworks.insight.receiver.AbstractReceiver;
32  
33  /**
34   * The <code>StopReceiverAction</code> class is an AbstractAction derivative
35   * that stops the currently active events receiver
36   * 
37   * @author Regunath B
38   * @version 1.0, 05/07/13
39   * @see com.mindtree.techworks.insight.gui.Insight
40   */
41  
42  public class StopReceiverAction extends AbstractAction {
43  
44  	/**
45  	 * UID for serialized form
46  	 */
47  	private static final long serialVersionUID = 2541505596023741695L;
48  
49  	/**
50  	 * The Insight instance that created this Action instance
51  	 */
52  	private Insight insight;
53  
54  	/**
55  	 * Constructor for this class
56  	 * 
57  	 * @param insight
58  	 *            the Insight that created an instance of this class
59  	 */
60  	public StopReceiverAction (Insight insight) {
61  
62  		this.insight = insight;
63  	}
64  
65  	/**
66  	 * Overriden super class method. It stops the tailing receivers if they are
67  	 * listening. The two currently known tail capable receiver actions are
68  	 * {@link LoadLocalFileAction LoadLocalFileAction} and
69  	 * {@link RemoteProtocolListenerAction RemoteProtocolListenerAction} (always
70  	 * tailing).
71  	 * 
72  	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
73  	 */
74  	public void actionPerformed (ActionEvent e) {
75  
76  		AbstractReceiver receiver = LoadLocalFileAction.getInstance ()
77  				.getReceiver ();
78  
79  		if (null != receiver) {
80  			receiver.shutdown ();
81  		}
82  		
83  		// Do the same for the remote protocol receiver
84  		// SF.net defect id: 1931487, this is a work around as the receivers
85  		// from the LoadLocalFileAction is never removed, hence if a local file
86  		// is loaded first, and then the remote receiver started, in the old
87  		// way of doing things, the remote receiver can never be stopped.
88  		receiver = RemoteProtocolListenerAction.getInstance ().getReceiver ();
89  		if (null != receiver) {
90  			receiver.shutdown ();
91  		}
92  	}
93  
94  	/**
95  	 * @return the insight
96  	 */
97  	public Insight getInsight() {
98  		return insight;
99  	}
100 }