View Javadoc

1   /*
2    *  XNap - A P2P framework and client.
3    *
4    *  See the file AUTHORS for copyright information.
5    *
6    *  This program is free software; you can redistribute it and/or modify
7    *  it under the terms of the GNU General Public License as published by
8    *  the Free Software Foundation.
9    *
10   *  This program is distributed in the hope that it will be useful,
11   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   *  GNU General Public License for more details.
14   *
15   *  You should have received a copy of the GNU General Public License
16   *  along with this program; if not, write to the Free Software
17   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18   */
19  
20  package org.xnap.gui.action;
21  
22  import java.awt.event.ActionEvent;
23  import java.util.Iterator;
24  import java.util.LinkedList;
25  
26  import javax.swing.AbstractAction;
27  import javax.swing.Action;
28  
29  import org.xnap.XNap;
30  import org.xnap.gui.util.*;
31  
32  /***
33   * Provides an action that clears all histories of <code>Clearable</code>
34   * objects.
35   *
36   * @see xnap.gui.component.HistoryTextField
37   */
38  public class ClearHistoriesAction extends AbstractAction 
39  {
40  
41      /***
42       * A list of instantiated <code>Clearable</code> objects.
43       *
44       * @see #actionPerformed(ActionEvent)
45       */
46      private static LinkedList references = new LinkedList();
47  
48      //--- Data field(s) ---
49      
50      public ClearHistoriesAction()
51      {
52  		putValue(Action.NAME, XNap.tr("Clear All Histories"));
53  		putValue(IconHelper.XNAP_ICON, "eraser.png");
54  		putValue(Action.SHORT_DESCRIPTION, XNap.tr("Clears all histories."));
55      }
56  
57      //--- Method(s) ---
58      
59      public void actionPerformed(ActionEvent event) 
60      {
61  		for (Iterator i = references.iterator(); i.hasNext();) {
62  			((Clearable)i.next()).clear();
63  		}
64      }
65  
66      public static void add(Clearable item)
67      {
68  		references.add(item);
69      }
70  
71      public static void remove(Clearable item)
72      {
73  		references.remove(item);
74      }
75  
76  }