Package org.eurekastreams.web.client.ui.common.stream

Source Code of org.eurekastreams.web.client.ui.common.stream.ActivityDetailPanel

/*
* Copyright (c) 2010-2011 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;

import org.eurekastreams.server.domain.EntityType;
import org.eurekastreams.server.domain.Page;
import org.eurekastreams.server.domain.stream.ActivityDTO;
import org.eurekastreams.server.domain.stream.StreamEntityDTO;
import org.eurekastreams.web.client.events.SwitchedToActivityDetailViewEvent;
import org.eurekastreams.web.client.history.CreateUrlRequest;
import org.eurekastreams.web.client.ui.Session;
import org.eurekastreams.web.client.ui.common.stream.renderers.ShowRecipient;
import org.eurekastreams.web.client.ui.common.stream.renderers.StreamMessageItemRenderer;
import org.eurekastreams.web.client.ui.pages.master.StaticResourceBundle;

import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;

/**
* Activity detail panel.
*
*/
public class ActivityDetailPanel extends FlowPanel
{
    /**
     * Default constructor.
     *
     * @param activity
     *            activity.
     * @param showRecipient
     *            show the recipient.
     */
    public ActivityDetailPanel(final ActivityDTO activity, final ShowRecipient showRecipient)
    {
        if (activity == null)
        {
            showNotFound();
            return;
        }

        boolean manageFlagged = "true".equals(Session.getInstance().getParameterValue("manageFlagged"));
        boolean showComment = "true".equals(Session.getInstance().getParameterValue("showComment"));
        addStyleName(StaticResourceBundle.INSTANCE.coreCss().singleActivityPanel());

        // build link to show all activity in the destination stream
        StreamEntityDTO destinationStream = activity.getDestinationStream();
        EntityType entityType = destinationStream.getEntityType();
        String title = null;
        Page page = null;
        switch (entityType)
        {
        case PERSON:
            page = Page.PEOPLE;
            title = "Show all activity in " + destinationStream.getDisplayName() + "'s stream";
            break;
        case GROUP:
            page = Page.GROUPS;
            title = "Show all activity in the " + destinationStream.getDisplayName() + " stream";
            break;
        default:
            page = null; // make checkstyle shut up
        }
        if (page != null)
        {
            FlowPanel showAllPanel = new FlowPanel();
            showAllPanel.addStyleName(StaticResourceBundle.INSTANCE.coreCss().singleActivityShowAll());
            showAllPanel.add(new Hyperlink(title, Session.getInstance().generateUrl(
                    new CreateUrlRequest(page, destinationStream.getUniqueId()))));
            add(showAllPanel);
        }

        StreamMessageItemRenderer renderer = new StreamMessageItemRenderer(showRecipient);
        renderer.setShowComment(showComment);
        renderer.setShowManageFlagged(manageFlagged);
        renderer.setSingleView(true);

        add(renderer.render(activity));
        Session.getInstance().getEventBus().notifyObservers(new SwitchedToActivityDetailViewEvent());
    }

    /**
     * Shows a "not found" message.
     */
    private void showNotFound()
    {
        Panel errorReport = new FlowPanel();
        errorReport.addStyleName(StaticResourceBundle.INSTANCE.coreCss().warningReport());

        FlowPanel centeringPanel = new FlowPanel();
        centeringPanel.addStyleName(StaticResourceBundle.INSTANCE.coreCss().warningReportContainer());
        centeringPanel.add(errorReport);
        add(centeringPanel);

        FlowPanel msgPanel = new FlowPanel();

        Label msgHeader = new Label("Activity not found");
        msgHeader.addStyleName(StaticResourceBundle.INSTANCE.coreCss().warningMessage());

        Label msgText = new Label("The activity you were looking for has already been deleted or could not be found.");
        FlowPanel text = new FlowPanel();
        text.add(msgText);
        text.addStyleName(StaticResourceBundle.INSTANCE.coreCss().errorMessageText());

        msgPanel.add(msgHeader);
        msgPanel.add(msgText);

        errorReport.add(msgPanel);
        Session.getInstance().getTimer().removeTimerJob("getUnseenActivityJob");

    }
}
TOP

Related Classes of org.eurekastreams.web.client.ui.common.stream.ActivityDetailPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.