Source code: com/fm/gui/action/stopRefreshAction.java
1 /****************************************************************************
2 * Copyright (c) 2003 Andrew Duka | aduka@users.sourceforge.net
3 * All right reserved.
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 ****************************************************************************/
11 package com.fm.gui.action;
12
13 import com.fm.gui.fmUITheme;
14 import com.fm.gui.fmCategoryTree;
15 import com.fm.gui.fmTreeNode;
16
17 import com.fm.rss.rssChannelCategory;
18 import com.fm.rss.rssChannel;
19 import com.fm.update.updateFactory;
20 import com.fm.update.Updateable;
21
22 import javax.swing.AbstractAction;
23 import javax.swing.KeyStroke;
24 import javax.swing.ImageIcon;
25
26 import java.awt.event.ActionEvent;
27 import java.awt.event.KeyEvent;
28
29 import java.util.Map;
30 import java.util.Iterator;
31
32 /**
33 * Remove passed item
34 */
35 public class stopRefreshAction extends AbstractAction
36 {
37 private fmCategoryTree categoryTree;
38 private updateFactory factory;
39
40 /**
41 * Constructor to use with Tree component
42 *
43 * @param catTree
44 */
45 public stopRefreshAction(fmCategoryTree catTree, updateFactory fact)
46 {
47 super();
48 categoryTree = catTree;
49 factory = fact;
50
51 putValue(NAME, fmUITheme.getString("action.stop_refresh"));
52 putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_F7,0));
53 putValue(SHORT_DESCRIPTION,
54 fmUITheme.getString("action.stop_refresh.tooltip"));
55 }
56
57 /**
58 * Constructor to use with Tree component
59 *
60 * @param catTree
61 */
62 public stopRefreshAction(fmCategoryTree catTree, ImageIcon icon, updateFactory fact)
63 {
64 super();
65 categoryTree = catTree;
66 factory = fact;
67
68 putValue(SMALL_ICON, icon);
69 putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_F7,0));
70 putValue(SHORT_DESCRIPTION,
71 fmUITheme.getString("action.stop_refresh.tooltip"));
72 }
73
74 /**
75 * Invoked when an action occurs.
76 */
77 public void actionPerformed(ActionEvent e)
78 {
79
80 fmTreeNode selectedNode = (fmTreeNode)categoryTree.getLastSelectedPathComponent();
81
82 if (selectedNode == null)
83 return;
84
85 Object selectedObject = selectedNode.getUserObject();
86
87 if (selectedObject instanceof rssChannelCategory)
88 {
89 Map channels = ((rssChannelCategory)selectedObject).getChannels();
90
91 for (Iterator i = channels.values().iterator(); i.hasNext();)
92 factory.dequeueFromUpdate((Updateable)i.next());
93 }
94 else if (selectedObject instanceof rssChannel)
95 {
96 factory.dequeueFromUpdate((Updateable)selectedObject);
97 }
98 }
99 }