/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.ide.api.icon; import javax.validation.constraints.NotNull; import org.eclipse.che.commons.annotation.Nullable; /** * Client-side singleton component that provides possibility to define icons for UI in extensions. * On IDE start it populated by application-scope 'default' icons and 'generic' icon (e.g. Codenvy logo). * * @author Vitaly Parfonov * @author Artem Zatsarynnyi */ public interface IconRegistry { /** * Register {@link Icon}. * If icon with the same id previously registered, * the old icon is replaced by the specified icon. * * @param icon * icon to be registered */ void registerIcon(Icon icon); /** * Returns {@link Icon} by its id. * If no such icon is registered, it returns the same named 'default' icon. * If it also not found, returns 'generic' icon. * * @param id * icon id * @return registered icon or the same named "default" icon or "generic" icon */ @NotNull Icon getIcon(String id); /** * Returns {@link Icon} by its id, or {@code null} if no icon with the specified id. * * @param id * icon id * @return registered icon, or {@code null} if found no icon with the specified id */ @Nullable Icon getIconIfExist(String id); /** * Returns 'generic' icon (e.g. Codenvy logo). * May be useful when no icon found by its id. * * @return 'generic' icon */ Icon getGenericIcon(); }