Package controllers

Source Code of controllers.Application

package controllers;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

import models.Category;
import models.SearchParams;
import models.japidsample.Author;
import models.japidsample.Author2;
import models.japidsample.Post;
import notifiers.TestEmailer;
import play.cache.CacheFor;
import cn.bran.japid.template.RenderResult;
import cn.bran.play.CacheableRunner;
import cn.bran.play.JapidController;
import cn.bran.play.JapidResult;
import cn.bran.play.routing.AutoPath;
/**
*  A sample controller that demos Japid features
* @author Bing Ran<bing_ran@hotmail.com>
*
*/
@AutoPath
public class Application extends JapidController {
  public static void index() {
    models.Category c = new Category();
    c.name = "my catty!!";
    c.subname = "ago";
    renderJapid(c); // use the default index.html in the japidviews/SampleController directory
   
//    renderJapidWith("@index.html"); // use the default index.html in the japidviews/SampleController directory
  }
  public static void indexAt() {
    renderJapid(); //
  }

  public static void indexAt2() {
    renderJapid(); //
  }
 
  public static void authorPanel(final Author a) {
    boolean calledFromView = isInvokedfromJapidView();
    System.out.println("calledFromView: " + calledFromView);

    renderJapid(a);
   
    //    CacheableRunner r = new CacheableRunner("10s", genCacheKey()) {
//      @Override
//      protected RenderResult render() {
//        return new authorPanel().render(a);
//      }
//    };
//   
//    throw new JapidResult(r.run());
    //  or     render(r);
  }
 
  public static void authorPanel2(final Author a) {
    renderJapid(a);
  }
 
  public static void cacheWithRenderJapid(final String a) {
    CacheableRunner r = new CacheableRunner("5s") {
      @Override
      protected RenderResult render() {
        System.out.println("rerender...");
        String b = a + " " + new Date().getSeconds();
        return getRenderResultWith("", b);
      }
    };
   
    render(r);
  }
 
  @CacheFor("6s")
  public static void testCacheFor(String p) {
    System.out.println("rerender...");
    String b = "" + new Date().getSeconds();

    renderJapid(b); // nested cache control still in effect
//    renderJapidEager(b); // nested cache control not in effect
  }
 
  @CacheFor("3s")
  public static void every3() {
    System.out.println("every3 called");
    String b = "" + new Date().getSeconds();
    renderJapid(b); // nested cache control still in effect
  }
 
  @CacheFor("5s")
  public static void testCacheForEager(String p) {
    System.out.println("rerender...");
    String b = "" + new Date().getSeconds();
   
    renderJapidEager(b); // no nested cache control. the outer cache control overrides all
  }
 
  public static void seconds() {
    String b = "" + new Date().getSeconds();
    renderText(b);
  }
 
  @CacheFor("4s")
  public static void twoParams(String a, int b) {
    renderText(a + "=" +  b + ":" + new Date().getSeconds());
  }
 
 
  public static void foo() {
    StringBuilder sb = new StringBuilder();
    sb.append("--------------foo() action invoked:Hello foo!");
    RenderResult rr = new RenderResult(null, sb, 0);
   
    throw new JapidResult(rr);
   
//    runWithCache(new ActionRunner() {
//      @Override
//      public RenderResult run() {
//        return new authorPanel().render(a);
//      }
//    }, "10s", a);
  }
 
  public static void hello() {
    String m = "hi there and..";
    String am = m + "!";
//    renderText("hello,Japid Play!");
    renderText(am);
  }
 
  public static void h1() {
    renderJapid("h1");
  }
  /**
   * this method shows how to render arguments to a japid template by naming and positional convention with the
   * renderJapid().
   *
   */
  public static void renderByPosition() {
    String s = "hello,renderByPosition!";
    int i = 100;
    Author a = new Author();
    a.name = "author1";

    Author2 a2 = new Author2();
    a2.name = "author2";
   
    renderJapid(s, i, a, a2, a2);
  }
 
  public static void renderByPositionEmpty() {
    renderJapid();
  }
 
  /**
   * demo how to composite a page with independent segments with the #{invoke } tag
   */
  public static void composite() {
    Post post = new Post();
    post.title = "test post";
    post.postedAt = new Date();
    post.content = "this is perfect piece of content~!";
   
    Author a = new Author();
    a.name = "me";
    a.birthDate = new Date();
    a.gender = 'm';
   
    post.setAuthor(a);
   
    renderJapid(post);
  }
 
  public static void reverseLookup0() {
    renderJapid();
  }

  public static void reverseLookup1(String[] args) {
    renderText("OK");
  }
 
  /**
   * test the japid emailer
   */
 
  public static void email() {
    Post p = new Post();
    p.title = "我自己";
    TestEmailer.emailme(p);
    renderText("mail sent");
  }
 
  public static void callTag() {
    dontRedirect();
    renderJapidWith("templates/callPicka");
  }
 
  public static void postList() {
    String title = "my Blog";
    List<Post> posts = createPosts();
    renderJapidWith("templates/AllPost", title, posts);
  }
  /**
   * @return
   */
  private static List<Post> createPosts() {
    List<Post> posts = new ArrayList<Post>();
    Author a = new Author();
    a.name = "冉兵";
    a.birthDate = new Date();
    a.gender = 'M';
    Post p = new Post();
    p.author = a;
    p.content = "long time ago...";
    p.postedAt = new Date();
    p.title = "post 1";
    posts.add(p);
    p = new Post();
    p.author = a;
    p.content = "way too long time ago...";
    p.postedAt = new Date();
    p.title = "post 2";
    posts.add(p);
    return posts;
  }
 
  public static void each() {
    List<String> list = Arrays.asList("as1", "as2", "as3", "as4", "as5", "as6");
    renderJapidWith("templates/EachCall", list);
  }
 
  /**
   * test using primitive with renderText
   * @param i
   */
  public static void echo(int i) {
    renderText(i * 2);
  }
 
  public static void invokeInLoop() {
    renderJapidWith("templates/invokeInLoop", createPosts());
  }
 
  public static void echoPost(Post p) {
    renderText(p);
  }
 
  /**
   * "official" Play treats body as a special param name to store all POST body if the content type is
   * application/x-www-form-urlencoded. bran's fork has changed the reserved param name to _body.
   *
   * @param f1
   * @param f2
   * @param body
   */
  public static void dumpPost(String f1, String f2, String body) {
    if (f1 == null)
      f1 = "";
   
    if (f2 == null)
      f2 = "";
   
    if (body == null)
      body = "";
    else
      System.out.println("body: " + body);
   
    renderJapidWith("templates/dumpPost.html", f1, f2, body);
  }
 
  public static void in() {
    dontRedirect();
    out();
  }
 
  public static void out() {
    renderText("Hi out!");
  }

  public static void go(String template) {
    renderJapidWith(template);
  }
 
  public static void decorateName(String name) {
    renderJapid(name);
  }
  public static void verbatim() {
    renderJapid();
  }
 
  public static void ifs() {
    String s = "";
    List<String> list = new ArrayList<String>();
    list.add("a");
    Object[] array = list.toArray();
    renderJapid(s, list, true, array, new int[] {}, 0, "a");
  }
 
  public static void ifs2() {
    renderJapid(2, new String[] {"as"});
  }
 
  public static void flashbad() {
    flash.error("something bad");
    // redirect to
    flashout();
  }

  public static void flashMsg() {
    flash.put("msg", "a message");
    // redirect to
    flashout();
  }

  public static void flashgood() {
    flash.success("cool");
    // redirect to
    flashout();
  }
 
  public static void flashout() {
    renderJapid();
  }
 
  public static void validate(String name, Integer age) {
       validation.required("name/姓名", name);
       validation.required("age/年龄", age);
       validation.min("age", age, 10);
       renderJapidByName(named("name", name), named("age", age));
  }
 
  public static void reverseUrl() {
    renderJapid();
  }
 
  public static void search(SearchParams sp) {
    renderJapid(sp);
  }
// 
//  public static void groovy() {
//    String a = "Groovy";
//    // render with Groovy
//    render(a);
//  }
// 
  public static void list() {
    renderJapid();
  }
 
  public static void escapedExpr() {
    renderJapid();
  }
  public static void categories() {
    Category a = new Category();
    a.name = "a";
    Category cate1 = new Category();
    cate1.name = "1";
    Category cate2 = new Category();
    cate2.name = "2";
    Category cate11 = new Category();
    cate11.name = "11";
    Category cate12 = new Category();
    cate12.name = "12";
    a.subCategories = new ArrayList<Category>();
    a.subCategories.add(cate1);
    a.subCategories.add(cate2);
    cate1.subCategories = new ArrayList<Category>();
    cate1.subCategories.add(cate11);
    cate1.subCategories.add(cate12);
   
    List<Category> cats = new ArrayList<Category>();
    cats.add(a);
    renderJapid(cats);
   
  }
 
  public static void special() {
    renderJapid();
  }
 
  public static void hellohello() {
    renderJapid();
  }

  public static void js() {
    renderJapid();
  }
 
  public static void japider() {
    models.japidsample.Author a = new Author();
    a.name = "me, myself and I, 我就我自己";
    a.birthDate = new Date();
    a.gender = 'M';
    a.publisher = "People's  Daily";
    renderJapid(a);
  }
 
  public static void re() {
    hellohello()
  }
 
 
}
TOP

Related Classes of controllers.Application

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.