/* * Copyright (c) 2011-2012 Lockheed Martin Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.eurekastreams.web.client.ui.common.stream.renderers; import java.util.List; import org.eurekastreams.server.domain.stream.ActivityDTO; import org.eurekastreams.server.domain.stream.StreamEntityDTO; import com.google.gwt.user.client.ui.Widget; /** * Common code for activity rendering. */ public final class RenderUtilities { /** Forbid instantiation. */ private RenderUtilities() { } /** * Supplies renderers for the activity actor name. * * @param renderers * List to add renderers to. * @param activity * Activity to render. */ public static void addActorNameRenderers(final List<StatefulRenderer> renderers, final ActivityDTO activity) { addEntityNameRenderers(renderers, activity.getActor(), null); } /** * Supplies renderers for a stream name. * * @param renderers * List to add renderers to. * @param entity * Stream entity whose name to render. * @param label * Label to place before the name. */ public static void addEntityNameRenderers(final List<StatefulRenderer> renderers, final StreamEntityDTO entity, final String label) { renderers.add(getEntityNameRenderer(entity, label)); } /** * Gets the renderer for a stream name. * * @param entity * Stream entity whose name to render. * @param label * Label to place before the name. * @return Renderer for stream name. */ public static StatefulRenderer getEntityNameRenderer(final StreamEntityDTO entity, final String label) { String name = entity.getDisplayName(); if (entity.isActive()) { return new MetadataLinkRenderer(label, entity.getType(), entity.getUniqueIdentifier(), name); } else { return new SimpleTextRenderer(label == null || label.isEmpty() ? name : label + " " + name); } } /** * Gets the renderer for a stream name. * * @param entity * Stream entity whose name to render. * @param label * Label to place before the name. * @return Rendered widget. */ public static Widget renderEntityName(final StreamEntityDTO entity, final String label) { return getEntityNameRenderer(entity, label).render(); } }