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): ______________________________________. 24 25 --------------------------------------------------------------------- 26 $Id: ClientCollectionIconProvider.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; 32 33 import org.objectweb.fractal.api.Interface; 34 import org.objectweb.fractal.api.type.InterfaceType; 35 import org.objectweb.util.browser.api.Entry; 36 import org.objectweb.util.browser.plugins.fractal.context.ClientCollectionInterfaceContainer; 37 import org.objectweb.util.browser.plugins.fractal.context.InterfaceContext; 38 import org.objectweb.util.browser.plugins.fractal.context.InterfaceWrapper; 39 40 /** 41 * 42 * @author <a HREF="mailto:Romain.Rouvoy@lifl.fr">Romain Rouvoy</a> 43 * @version 0.1 44 */ 45 public class ClientCollectionIconProvider 46 extends InterfaceIconProvider 47 { 48 /** Empty constructor. */ 49 public ClientCollectionIconProvider() { 50 super(); 51 loadFc("ClientCollection"); 52 loadFc("ClientCollectionMandatory"); 53 loadFc("ClientCollectionOptional"); 54 } 55 56 // ================================================================== 57 // 58 // Public methods for IconProvider interface. 59 // 60 // ================================================================== 61 62 /** 63 * Provides the appropriate icon. 64 */ 65 public Icon newIcon(Object obj) { 66 ClientCollectionInterfaceContainer container = (ClientCollectionInterfaceContainer) obj; 67 Entry[] entries = container.getEntries() ; 68 if (entries.length == 0) 69 return (Icon) getIcons().get("ClientCollectionMandatory"); 70 InterfaceWrapper ciw = null ; 71 try { 72 ciw = (InterfaceWrapper) entries[0].getValue(); 73 } catch (ClassCastException ex) { 74 ciw = (InterfaceWrapper) ((InterfaceContext) entries[0].getValue()).getWrapped(); 75 } 76 Interface itf = ciw.getItf(); 77 InterfaceType itft = (InterfaceType)itf.getFcItfType(); 78 if (itft.isFcOptionalItf()) 79 return (Icon) getIcons().get("ClientCollectionOptional"); 80 return (Icon) getIcons().get("ClientCollection"); 81 } 82 } 83