com.apress.progwt.client.college.gui.CollegeRatingPanel.java Source code

Java tutorial

Introduction

Here is the source code for com.apress.progwt.client.college.gui.CollegeRatingPanel.java

Source

/*
 * 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 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.RatingType;
import com.apress.progwt.client.domain.User;
import com.apress.progwt.client.domain.commands.SaveRatingCommand;
import com.apress.progwt.client.domain.commands.SiteCommand;
import com.apress.progwt.client.rpc.StdAsyncCallback;
import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Grid;
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 CollegeRatingPanel extends Composite implements ChangeListener {

    private ServiceCache serviceCache;
    private Application application;

    public CollegeRatingPanel(ServiceCache serviceCache, User thisUser, Application application) {

        this.serviceCache = serviceCache;
        this.application = application;

        VerticalPanel mainPanel = new VerticalPanel();

        Grid ratingGrid = new Grid(thisUser.getRatingTypes().size(), 2);

        int row = 0;
        for (RatingType ratingType : thisUser.getRatingTypes()) {

            ratingGrid.setWidget(row, 0, new Label(ratingType.getName()));

            int rating = application.getRating(ratingType);

            RatingChooser chooser = new RatingChooser(ratingType, rating);
            chooser.addChangeListener(this);
            ratingGrid.setWidget(row, 1, chooser);

            row++;
        }
        mainPanel.add(ratingGrid);

        initWidget(mainPanel);
    }

    public void onChange(Widget sender) {

        Log.debug("CollegeRatingPanel On Change");

        if (sender instanceof RatingChooser) {
            RatingChooser chooser = (RatingChooser) sender;
            serviceCache.executeCommand(
                    new SaveRatingCommand(chooser.getRatingType(), chooser.getSelectedRating(), application),
                    new StdAsyncCallback<SiteCommand>("Rating Save"));
        }

    }

}