KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > util > browser > plugins > fractal > icon > ClientInterfaceIconProvider


1 /*====================================================================
2  
3  Objectweb Browser Framework
4  Copyright (C) 2000-2004 INRIA & USTL - LIFL - GOAL
5  Contact: openccm@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): Jerome Moroy.
23  Contributor(s): Romain Rouvoy______________________________________.
24  
25  ---------------------------------------------------------------------
26  $Id: ClientInterfaceIconProvider.java,v 1.1 2004/04/20 16:37:27 moroy Exp $
27  ====================================================================*/

28
29 package org.objectweb.util.browser.plugins.fractal.icon;
30
31 import javax.swing.Icon JavaDoc;
32
33 import org.objectweb.fractal.api.Component;
34 import org.objectweb.fractal.api.Interface;
35 import org.objectweb.fractal.api.NoSuchInterfaceException;
36 import org.objectweb.fractal.api.type.InterfaceType;
37 import org.objectweb.util.browser.plugins.fractal.FcBrowser;
38 import org.objectweb.util.browser.plugins.fractal.context.InterfaceWrapper;
39
40 /**
41  * Provides a specific icon for InterfaceReference if this one is :
42  * <br>
43  * <li>a client interface.</li>
44  * <li>not bound.</li>
45  * </br>
46  *
47  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jerome Moroy</a>
48  * @version 0.1
49  */

50 public class ClientInterfaceIconProvider
51      extends InterfaceIconProvider
52 {
53     // ==================================================================
54
//
55
// Contructors.
56
//
57
// ==================================================================
58

59     /** Empty constructor. */
60     public ClientInterfaceIconProvider() {
61         super();
62         loadFc("Client");
63         loadFc("ClientMandatory");
64         loadFc("ClientOptional");
65     }
66     
67     // ==================================================================
68
//
69
// Public methods for IconProvider interface.
70
//
71
// ==================================================================
72

73     /**
74      * Provides the appropriate icon.
75      */

76     public Icon JavaDoc newIcon(Object JavaDoc obj) {
77         InterfaceWrapper ciw = (InterfaceWrapper) obj;
78         Interface itf = ciw.getItf();
79         InterfaceType itft = (InterfaceType)itf.getFcItfType();
80
81         if (itft.isFcOptionalItf())
82             return (Icon JavaDoc) getIcons().get("ClientOptional");
83         try {
84             Component cpt = itf.getFcItfOwner();
85             return (Icon JavaDoc) (FcBrowser.getBindingController(cpt).lookupFc(itft.getFcItfName()) == null ?
86                     getIcons().get("ClientMandatory") : getIcons().get("Client"));
87         } catch (NoSuchInterfaceException ex) {
88             return (Icon JavaDoc) getIcons().get("Client");
89         }
90     }
91 }
Popular Tags