org.footware.client.dialogs.UploadTrackBox.java Source code

Java tutorial

Introduction

Here is the source code for org.footware.client.dialogs.UploadTrackBox.java

Source

/*
 * Copyright 2010 Andreas Brauchli, Ren Buffat, Florian Widmer
 *
 * 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.footware.client.dialogs;

import org.footware.client.Session;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.FileUpload;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.TextBox;

public class UploadTrackBox extends DialogBox {

    public static String NAME = "name";
    public static String PRIVACY = "privacy";
    public static String PRIVACY_PUBLIC = "public";
    public static String PRIVACY_PRIVATE = "private";
    public static String COMMENTS = "comments";
    public static String NOTES = "notes";
    public static String FILE = "file";
    public static String EMAIL = "email";

    //   private TextBox trackName;
    private CheckBox enableComments;
    private TextBox email;
    private ListBox privacy;
    private TextArea notes;
    private FileUpload file;
    private FormPanel form;

    public UploadTrackBox() {
        setText("Upload a Track");

        Grid g = new Grid(7, 2);

        setAutoHideEnabled(true);
        setGlassEnabled(true);

        //      trackName = new TextBox();
        //      trackName.setName(NAME);
        //      g.setWidget(0, 0, new HTML("Name"));
        //      g.setWidget(0, 1, trackName);

        privacy = new ListBox();
        privacy.setName(PRIVACY);
        privacy.addItem("Public", PRIVACY_PUBLIC);
        privacy.addItem("Private", PRIVACY_PRIVATE);
        g.setWidget(1, 0, new HTML("Privacy"));
        g.setWidget(1, 1, privacy);

        enableComments = new CheckBox();
        enableComments.setName(COMMENTS);
        g.setWidget(2, 0, new HTML("Enable comments"));
        g.setWidget(2, 1, enableComments);

        notes = new TextArea();
        notes.setName(NOTES);
        notes.setSize("200px", "50px");
        g.setWidget(3, 0, new HTML("Notes"));
        g.setWidget(3, 1, notes);

        email = new TextBox();
        email.setVisible(false);

        g.setWidget(6, 0, email);

        file = new FileUpload();
        file.setName(FILE);
        g.setWidget(4, 0, new HTML("Select File"));
        g.setWidget(4, 1, file);

        Button upload = new Button("Upload");
        upload.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                doUpload();
                hide();
            }

        });

        Button close = new Button("Cancel");
        close.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                hide();
            }
        });

        g.setWidget(5, 0, upload);
        g.setWidget(5, 1, close);

        form = new FormPanel();
        // TODO implement httpservlet to accept file.
        form.setAction("/footware/trackUpload");
        form.setEncoding(FormPanel.ENCODING_MULTIPART);
        form.setMethod(FormPanel.METHOD_POST);
        form.add(g);

        add(form);
    }

    private void doUpload() {
        if (Session.getUser() != null) {
            email.setValue(Session.getUser().getEmail());
            email.setName(EMAIL);

        }
        form.submit();
    }
}