Package org.codehaus.enunciate.samples.petclinic.app.client

Source Code of org.codehaus.enunciate.samples.petclinic.app.client.Vets

/*
* Copyright 2007 Google Inc.
*
* 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.codehaus.enunciate.samples.petclinic.app.client;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.*;
import com.google.gwt.user.client.Window;
import org.codehaus.enunciate.samples.petclinic.client.services.ClinicAsync;
import org.codehaus.enunciate.samples.petclinic.client.schema.Vet;
import org.codehaus.enunciate.samples.petclinic.client.schema.Specialty;

import java.util.Collection;
import java.util.Iterator;

/**
* Demonstrates a list of vets.
*/
public class Vets extends ClinicComponent {

  public static ClinicComponentInfo init() {
    return new ClinicComponentInfo("Vets",
        "<h2>Vets</h2>" +
        "<p>This list of vets is retrieved through an Enunciate-supported GWT-RPC call.  Click on a vet name to see the vet's details.</p>") {

      public ClinicComponent createInstance() {
        return new Vets();
      }
    };
  }

  private Grid grid;

  public Vets() {
    grid = new Grid();
    final ClinicAsync clinic = ClinicAsync.Util.getInstance();
    clinic.getVets(new AsyncCallback<Collection<Vet>>() {
      public void onSuccess(Collection<Vet> collection) {
        grid.resize(collection.size() + 1, 2);
        grid.setWidget(0, 0, new Label("name"));
        grid.setWidget(0, 1, new Label("action"));
        grid.getCellFormatter().setWidth(0, 1, "12em");
        grid.getCellFormatter().setHorizontalAlignment(0, 0, HasAlignment.ALIGN_CENTER);
        grid.getCellFormatter().setHorizontalAlignment(0, 1, HasAlignment.ALIGN_CENTER);
        grid.getRowFormatter().setStyleName(0, "clinic-tables-header");
        int row = 1;
        Iterator<Vet> vetsIt = collection.iterator();
        while (vetsIt.hasNext()) {
          final Vet vet = vetsIt.next();
          final Label details = new Label(vet.getFirstName() + " " + vet.getLastName());
          details.addClickListener(new ClickListener() {
            public void onClick(Widget widget) {
              final DialogBox detailsPanel = new DialogBox(true);
              String html = "Id: " + vet.getId()
                + "<br/>First Name: " + vet.getFirstName()
                + "<br/>Last Name: " + vet.getLastName()
                + "<br/>Phone: " + vet.getTelephone()
                + "<br/>Specialties: " ;
              Iterator specialtiesIt = vet.getSpecialties().iterator();
              while (specialtiesIt.hasNext()) {
                Specialty specialty = (Specialty) specialtiesIt.next();
                html = html + specialty.getName();
                if (specialtiesIt.hasNext()) {
                  html += ",";
                }
              }
              HTML htmlValue = new HTML(html);
              htmlValue.setHorizontalAlignment(HasAlignment.ALIGN_LEFT);
              detailsPanel.setWidget(htmlValue);
              detailsPanel.setTitle(vet.getFirstName() + " " + vet.getLastName());
              detailsPanel.setPopupPositionAndShow(new PopupPanel.PositionCallback() {
                public void setPosition(int offsetWidth, int offsetHeight) {
                  detailsPanel.setPopupPosition(details.getAbsoluteLeft(), details.getAbsoluteTop());
                }
              });
            }
          });
          details.addStyleName("clinic-clickable");
          grid.setWidget(row, 0, details);
          grid.setWidget(row, 1, new Button("delete", new ClickListener() {
            public void onClick(Widget widget) {
              Window.alert("You don't have permission to delete a vet");
            }
          }));
          row++;
        }
      }

      public void onFailure(Throwable throwable) {
        grid.resize(1, 1);
        grid.setWidget(0, 0, new Label("ERROR: " + throwable.getMessage()));
      }
    });
    initWidget(grid);
  }

}
TOP

Related Classes of org.codehaus.enunciate.samples.petclinic.app.client.Vets

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.