Package com.google.gsoc.web.pages

Source Code of com.google.gsoc.web.pages.Complete

package com.google.gsoc.web.pages;

import java.util.List;

import org.apache.tapestry5.EventConstants;
import org.apache.tapestry5.OptionGroupModel;
import org.apache.tapestry5.OptionModel;
import org.apache.tapestry5.SelectModel;
import org.apache.tapestry5.SelectModelVisitor;
import org.apache.tapestry5.ValueEncoder;
import org.apache.tapestry5.annotations.IncludeJavaScriptLibrary;
import org.apache.tapestry5.annotations.OnEvent;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.internal.OptionModelImpl;
import org.apache.tapestry5.internal.util.PrimaryKeyEncoder2ValueEncoder;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
import org.apache.tapestry5.util.EnumSelectModel;

import com.google.gsoc.entity.Animal;
import com.google.gsoc.entity.Person;
import com.google.gsoc.model.PersonSelectModel;


@IncludeJavaScriptLibrary({ "${tapestry.scriptaculous}/controls.js"})
public class Complete {

  @Persist("flash")
  @Property
  private String message;
 
  @Persist
  @Property
  private Integer number;
 
  @Persist
  @Property
  private Animal animal;

  @Persist
  @Property
  private Person person;
 
  @Persist
  @Property
  private String text;
 
  @Inject
    private Messages _messages;

  public SelectModel getSM() {
return new SelectModel() {
     
      public void visit(SelectModelVisitor visitor) {
        // TODO Auto-generated method stub
       
      }
     
      public List<OptionModel> getOptions() {
        List<OptionModel> options = CollectionFactory.newList();
       
        options.add(new OptionModelImpl("1", 1));
        options.add(new OptionModelImpl("2", 2));
        options.add(new OptionModelImpl("3", 3));
       
        return options;
      }
     
      public List<OptionGroupModel> getOptionGroups() {
        // TODO Auto-generated method stub
        return null;
      }
    };
  }
 
  SelectModel onProvideCompletionsFromFirst(String part)
  {
   
    return new SelectModel() {
     
      public void visit(SelectModelVisitor visitor) {
        // TODO Auto-generated method stub
       
      }
     
      public List<OptionModel> getOptions() {
        List<OptionModel> options = CollectionFactory.newList();
       
        options.add(new OptionModelImpl("1", 1));
        options.add(new OptionModelImpl("2", 2));
        options.add(new OptionModelImpl("3", 3));
       
        return options;
      }
     
      public List<OptionGroupModel> getOptionGroups() {
        // TODO Auto-generated method stub
        return null;
      }
    };
  }
 
  SelectModel onProvideCompletionsFromSecond(String part)
  {
    return new EnumSelectModel(Animal.class, _messages);
  }
 
 
 
  SelectModel onProvideCompletionsFromFifty(String partial)
  {
    List<Person> list = CollectionFactory.newList();
   
    for(Person p : getPersons())
    {
      if(p.getName().toUpperCase().indexOf(partial.toUpperCase()) >= 0 )
        list.add(p);
    }
   
    return new PersonSelectModel(list);
  }
 
  SelectModel onProvideCompletionsFromThird(String partial)
  {
    List<Person> list = CollectionFactory.newList();
   
    for(Person p : getPersons())
    {
      if(p.getName().toUpperCase().indexOf(partial.toUpperCase()) >= 0 )
        list.add(p);
    }
   
    return new PersonSelectModel(list);
  }
 
  public ValueEncoder<Person> getEncoder() {
    return new PersonPrimaryKeyEncoder();
  }
 
  @OnEvent(component = "form", value = EventConstants.SUCCESS)
  public Object submit() {
   
    message = "Number: " + number + " Animal: " + animal + " Person: " + person;
   
    System.out.println(number);
    System.out.println(animal);
    System.out.println(person);
   
   
    return null;
  }
 
  /*
   *  Person Encoder
   */
  private class PersonPrimaryKeyEncoder implements ValueEncoder<Person> {

    public String toClient(Person value) {
      if(value == null || value.getId() == null) {
        return "";
      }
      return value.getId().toString();
    }

    public Person toValue(String keyAsString) {
      Integer key = new Integer(keyAsString);
      Person person = loadPerson(key);
      return person;
    }

  };
 
  /*
   * Get a person for id
   */
  private Person loadPerson(Integer id) {
    for(Person p : getPersons()) {
      if(p.getId().equals(id)) {
        return p;
      }
    }
    return null;
  }
 
  /*
   * Get a list of persons
   */
  private List<Person> getPersons() {
   
    List<Person> persons = CollectionFactory.newList();
   
    persons.add(new Person(1, "Mary", 10));
    persons.add(new Person(2, "John", 10));
    persons.add(new Person(3, "Antony", 10));
    persons.add(new Person(4, "Jack", 10));
    persons.add(new Person(5, "Paul", 10));
    persons.add(new Person(6, "Katy", 10));
   
    return persons;
   
  }

}
TOP

Related Classes of com.google.gsoc.web.pages.Complete

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.