org.eurekastreams.web.client.ui.common.stream.FeatureDialogContent.java Source code

Java tutorial

Introduction

Here is the source code for org.eurekastreams.web.client.ui.common.stream.FeatureDialogContent.java

Source

/*
 * Copyright (c) 2009-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.Person;
import org.eurekastreams.server.domain.dto.FeaturedStreamDTO;
import org.eurekastreams.web.client.events.EventBus;
import org.eurekastreams.web.client.events.Observer;
import org.eurekastreams.web.client.events.data.AddedFeaturedStreamResponseEvent;
import org.eurekastreams.web.client.model.FeaturedStreamModel;
import org.eurekastreams.web.client.ui.common.dialog.BaseDialogContent;
import org.eurekastreams.web.client.ui.common.form.elements.BasicTextAreaFormElement;
import org.eurekastreams.web.client.ui.pages.master.StaticResourceBundle;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;

/**
 * Dialog content for creating or editing a stream view.
 */
public class FeatureDialogContent extends BaseDialogContent {

    /**
     * Container flow panel.
     */
    private final FlowPanel container = new FlowPanel();

    /**
     * Main flow panel.
     */
    private final FlowPanel body = new FlowPanel();

    /**
     * Default constructor.
     * 
     * @param featuredStreamDTO
     *            the featured stream.
     */
    public FeatureDialogContent(final FeaturedStreamDTO featuredStreamDTO) {
        Label saveButton = new Label("");
        saveButton.addStyleName(StaticResourceBundle.INSTANCE.coreCss().saveChangesButton());

        body.add(new Label("Stream Name: " + featuredStreamDTO.getDisplayName()));

        final BasicTextAreaFormElement textArea = new BasicTextAreaFormElement(Person.MAX_JOB_DESCRIPTION_LENGTH,
                "Description", "description", featuredStreamDTO.getDescription(), "", true);

        body.add(textArea);
        body.add(saveButton);

        saveButton.addClickHandler(new ClickHandler() {
            public void onClick(final ClickEvent event) {
                featuredStreamDTO.setDescription(textArea.getValue());
                FeaturedStreamModel.getInstance().insert(featuredStreamDTO);
            }
        });

        EventBus.getInstance().addObserver(AddedFeaturedStreamResponseEvent.class,
                new Observer<AddedFeaturedStreamResponseEvent>() {
                    public void update(final AddedFeaturedStreamResponseEvent event) {
                        close();
                    }
                });

        container.add(body);

    }

    /**
     * Gets the body panel.
     * 
     * @return the body.
     */
    public Widget getBody() {
        return container;
    }

    /**
     * Gets the CSS name.
     * 
     * @return the class.
     */
    @Override
    public String getCssName() {
        return StaticResourceBundle.INSTANCE.coreCss().featureDialog();
    }

    /**
     * Gets the title.
     * 
     * @return the title.
     */
    public String getTitle() {
        return "Feature Stream";
    }
}