KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > util > browser > core > icon > AssociatedIconImpl


1 /*===========================================================================
2
3 ObjectWeb Naming Context Framework
4 Copyright (C) 2002 USTL - LIFL - GOAL
5 Contact: architecture@objectweb.org
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20 USA
21
22 Initial developer(s): Philippe Merle.
23 Contributor(s): ______________________________________.
24
25 ===========================================================================*/

26
27 package org.objectweb.util.browser.core.icon;
28
29 import org.objectweb.util.browser.core.api.AssociatedIcon;
30 import org.objectweb.util.browser.core.api.BrowserProperty;
31 import org.objectweb.util.browser.core.common.AssociatedElementImpl;
32 import org.objectweb.util.browser.api.Entry;
33 import org.objectweb.util.browser.api.IconProvider;
34 import javax.swing.Icon JavaDoc;
35
36 /**
37  * Implementation of AssociatedIcon API with a cache.
38  *
39  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jerome Moroy</a>
40  * @version 0.1
41  */

42 public class AssociatedIconImpl
43      extends AssociatedElementImpl
44   implements AssociatedIcon
45 {
46
47     /**
48      * Default constructor
49      * @param loader The propertyLoader to use to load new configuration
50      */

51     public AssociatedIconImpl(BrowserProperty loader) {
52         super();
53         context_ = new IconPropertyContainer(loader);
54     }
55
56     /**
57      * Returns the icon associates to the node
58      * Equivalent to a getIcon(node,false) call
59      *
60      * @param node The node
61      * @return The associated icon or null if no context is found
62      */

63     public Icon getIcon(Object JavaDoc node) {
64         return getIcon(node, false);
65     }
66
67     /**
68      * Returns the icon associates to the node
69      *
70      * @param node The node
71      * @param disabledJavaLangObject If true, then java.lang.Object is not consider as a valid entry
72      * @return The associated icon or null if no context is found
73      */

74     public Icon getIcon(Object JavaDoc node, boolean disabledJavaLangObject) {
75         if (context_ != null) {
76             Entry entry = context_.getRecursiveProperty(node);
77             if (entry != null && !(entry.getName().toString().equals("java.lang.Object") && disabledJavaLangObject)) {
78                 IconProvider iconFactory = (IconProvider) entry.getValue();
79                 return iconFactory.newIcon(node);
80             }
81         }
82         return null;
83     }
84 }
85
Popular Tags