Advertisement
Guest User

Bridge

a guest
Dec 13th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.68 KB | None | 0 0
  1. public abstract class AbstractTable<T> {
  2.  
  3.  
  4.     private List<T> data;
  5.  
  6.     protected void onLoad(){
  7.         loadData(new Callback<T>(){
  8.  
  9.             @Override
  10.             public void onSuccess(List<T> result) {
  11.                 data = result;
  12.                 onFinishLoading();
  13.             }
  14.  
  15.             @Override
  16.             public void onFail(Exception e) {
  17.                 // display error
  18.             }
  19.         });
  20.     }
  21.  
  22.     protected void onFinishLoading(){
  23.         for(final T item:data){
  24.             AbstractItem tableItem = createTableItem();
  25.             tableItem.renderhead(item);
  26.             tableItem.setOnclick( ()-> {tableItem.renderBody(item);});
  27.  
  28.         }
  29.     }
  30.  
  31.  
  32.     protected abstract AbstractItem createTableItem();
  33.  
  34.     protected abstract  void loadData(Callback<T> cb);
  35. }
  36.  
  37. public abstract  class AbstractItem<T> {
  38.  
  39.     public  void setOnclick(OnClickListener listener){
  40.  
  41.     }
  42.     public abstract  String renderhead(T itemObject);
  43.     public abstract  String renderBody(T itemObject);
  44. }
  45.  
  46. public class PersonsTable extends AbstractTable<Person>{
  47.  
  48.     @Override
  49.     protected AbstractItem createTableItem() {
  50.         return new PersonTableItem();
  51.     }
  52.  
  53.     @Override
  54.     protected void loadData(Callback<Person> cb) {
  55.  
  56.     }
  57. }
  58.  
  59. public class PersonTableItem extends AbstractItem<Person> {
  60.  
  61.     @Override
  62.     public String renderhead(Person itemObject) {
  63.         return "<h6>"+itemObject.nom + " "+itemObject.prenom+"</h6>";
  64.     }
  65.  
  66.     @Override
  67.     public String renderBody(Person itemObject) {
  68.         String html = "<tel>"+itemObject.tel+"</tel>";
  69.         html+= "<p>"+itemObject.adresse+"</p>";
  70.         return  html;
  71.     }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement