Package com.apress.progwt.client.college.gui

Source Code of com.apress.progwt.client.college.gui.ApplicationStatusChooserWidget

/*
* Copyright 2008 Jeff Dwyer
*
* 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 com.apress.progwt.client.college.gui;

import java.util.Date;

import com.allen_sauer.gwt.log.client.Log;
import com.apress.progwt.client.college.ServiceCache;
import com.apress.progwt.client.domain.Application;
import com.apress.progwt.client.domain.ProcessType;
import com.apress.progwt.client.widget.datepicker.SimpleDatePicker;
import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.DecoratedPopupPanel;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

public class ApplicationStatusChooserWidget extends Composite {

    private ServiceCache serviceCache;
    private DecoratedPopupPanel popupP;
    private Label lab;

    public ApplicationStatusChooserWidget(Application application,
            ServiceCache serviceCache) {

        this.serviceCache = serviceCache;

        ProcessType currentStatus = application.getCurrentStatus();

        lab = new Label(currentStatus.getName());
        lab.addClickListener(new ClickListener() {
            public void onClick(Widget sender) {
                showOptions();
            }

        });

        VerticalPanel chooseP = new VerticalPanel();

        for (ProcessType statusType : application.getUser()
                .getStatusProcessTypes()) {
            HorizontalPanel hp = new HorizontalPanel();

            hp.add(new PChooser(statusType));

            chooseP.add(hp);
        }
        chooseP.add(new Label("Click Status To Choose"));
        popupP = new DecoratedPopupPanel(true);
        popupP.add(chooseP);
        popupP.addStyleName("TC-Popup");
        popupP.addStyleName("TC-Popup-Status");

        initWidget(lab);

    }

    private void showOptions() {
        popupP.setPopupPosition(lab.getAbsoluteLeft(), lab
                .getAbsoluteTop());
        popupP.show();

    }

    private class PChooser extends Composite implements ChangeListener,
            ClickListener {

        private ProcessType statusType;
        private SimpleDatePicker datePicker;
        private Label label;

        public PChooser(ProcessType statusType) {
            this.statusType = statusType;

            HorizontalPanel mainP = new HorizontalPanel();

            label = new Label(statusType.getName());
            mainP.add(label);
            datePicker = new SimpleDatePicker();
            datePicker.setWeekendSelectable(true);
            datePicker.addChangeListener(this);
            mainP.add(datePicker);
            mainP.add(new Label("(Clear)"));

            mainP.addStyleName("TC-ProcessChooserDate");

            label.addClickListener(this);

            initWidget(mainP);
        }

        public void onChange(Widget sender) {
            Date selected = datePicker.getSelectedDate();

            Log.debug(selected.toString());

        }

        public void onClick(Widget sender) {
            datePicker.setSelectedDate(new Date());
        }
    }
}
TOP

Related Classes of com.apress.progwt.client.college.gui.ApplicationStatusChooserWidget

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.