Package com.totsp.gwittir.example.client

Source Code of com.totsp.gwittir.example.client.ViewSourcePanel

package com.totsp.gwittir.example.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.totsp.gwittir.client.flow.FlowContext;
import com.totsp.gwittir.client.flow.FlowController;
import com.totsp.gwittir.client.flow.FlowEvent;
import com.totsp.gwittir.client.flow.FlowEventListener;
import com.totsp.gwittir.client.ui.AbstractBoundWidget;
import com.totsp.gwittir.client.ui.BoundWidget;
import com.totsp.gwittir.client.ui.Label;
import com.totsp.gwittir.client.ui.TextArea;

public class ViewSourcePanel extends AbstractBoundWidget<Object> {

  private VerticalPanel panel = new VerticalPanel();
  private SimplePanel managed = new SimplePanel();
  private TextArea source = new TextArea();
  private BoundWidget<?> view;
  private Class clazz;
  public ViewSourcePanel(BoundWidget<?> view, Class clazz){
    super();
   
    source.setValue("loading...");
    source.setWidth("800px");
    source.setHeight("500px");
    this.clazz = clazz;
    super.initWidget(panel);
    this.setWidth("100%");
    FlowContext context = new FlowContext();
    context.add("main", view);
    context.add("source", source);
   
    final Label toggle = new Label();
    toggle.setValue("view source");
    context.addFlowEventListener( new FlowEventListener(){

      public void onFlowEvent(FlowEvent evt) {
        GWT.log("To: "+evt.getToName(), null);
        if(evt.getToName().equals("main")){
          toggle.setValue("view source");
        } else {
          toggle.setValue("view example");
        }
      }
     
    });
    FlowController.setFlowContext(managed, context);
   
   
    toggle.addClickListener( new ClickListener(){
      public void onClick(Widget sender) {
        if(toggle.getValue().endsWith("source")){
          toggle.setValue("view example");
          FlowController.call(managed, "source", null);
        } else {
          toggle.setValue("view source");
          FlowController.call(managed, "main", null);
        }
      }
     
    });
    panel.add(toggle);
    panel.add(managed);
    panel.setCellHorizontalAlignment(toggle, HasHorizontalAlignment.ALIGN_RIGHT);
    FlowController.call(managed, "main", null, false);
   
  }
  public Object getValue() {
    // TODO Auto-generated method stub
    return null;
  }
 
  public void setValue(Object value) {
    // TODO Auto-generated method stub
   
  }
 
  public void onAttach(){
    super.onAttach();
   
    if(source.getValue().startsWith("loading")){
      ReadSourceServiceAsync.Util.INSTANCE.getSource(this.clazz.toString(), new AsyncCallback<String>(){

        public void onFailure(Throwable caught) {
          Window.alert(caught.toString());
        }

        public void onSuccess(String result) {
          source.setValue(result);
        }
       
      });
    }
  }
 
 
}
TOP

Related Classes of com.totsp.gwittir.example.client.ViewSourcePanel

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.