Package com.taobao.zeus.web.platform.client

Source Code of com.taobao.zeus.web.platform.client.PlatformEntry

package com.taobao.zeus.web.platform.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.RootPanel;
import com.taobao.zeus.web.platform.client.app.document.DocumentApp;
import com.taobao.zeus.web.platform.client.app.home.HomeApp;
import com.taobao.zeus.web.platform.client.app.report.ReportApp;
import com.taobao.zeus.web.platform.client.app.schedule.ScheduleApp;
import com.taobao.zeus.web.platform.client.module.filemanager.FileModel;
import com.taobao.zeus.web.platform.client.module.guide.GuideTip;
import com.taobao.zeus.web.platform.client.util.GWTEnvironment;
import com.taobao.zeus.web.platform.client.util.RPCS;
import com.taobao.zeus.web.platform.client.util.StartEvent;
import com.taobao.zeus.web.platform.client.util.ZUser;
import com.taobao.zeus.web.platform.client.util.async.AbstractAsyncCallback;
import com.taobao.zeus.web.platform.client.util.template.TemplateResources;
import com.taobao.zeus.web.platform.client.widget.Platform;

/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class PlatformEntry implements EntryPoint {
 
  static{
    GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
      @Override
      public void onUncaughtException(Throwable e) {
        com.google.gwt.user.client.Window.alert(e.getMessage());
        e.printStackTrace();
      }
    });
   
  }
 
  @Override
  public void onModuleLoad() {
    RPCS.getUserService().getUser(new AsyncCallback<ZUser>() {
      @Override
      public void onSuccess(ZUser result) {
        Platform s=new Platform(result);
        final HomeApp home=new HomeApp(s.getPlatformContext());
        s.addApp(home);
        s.addApp(new DocumentApp(s.getPlatformContext()));
        s.addApp(new ScheduleApp(s.getPlatformContext()));
        s.addApp(new ReportApp(s.getPlatformContext()));
       
        RootPanel.get().add(s);
       
        s.getPlatformContext().getPlatformBus().fireEvent(new StartEvent());
       
        String id=GWTEnvironment.getNoticeTemplateId();
        RPCS.getFileManagerService().getFile(id, new AbstractAsyncCallback<FileModel>() {
          @Override
          public void onSuccess(FileModel result) {
            if(result.getContent()!=null && result.getContent().startsWith("<!--OK-->")){
              process(result.getContent());
            }
          }
          @Override
          public void onFailure(Throwable caught) {
            TemplateResources templates=com.google.gwt.core.shared.GWT.create(TemplateResources.class);
            process(templates.notice().getText());
          }
          private void process(String content){
            GuideTip tip=new GuideTip(home.getShortcut());
            String[] lines=content.split("\n");
            for(String line:lines){
              if(line.startsWith("<!--width=")){
                tip.setWidth(Integer.valueOf(line.substring(10,line.indexOf("-->"))));
              }else if(line.startsWith("<!--height=")){
                tip.setHeight(Integer.valueOf(line.substring(11,line.indexOf("-->"))));
              }
            }
           
            tip.setClosable(true);
            tip.getToolTipConfig().setDismissDelay(0);
            tip.setBodyHtml(content);
            tip.setOffset(100, 0);
            tip.show();
          }
        });
       
      }
     
      @Override
      public void onFailure(Throwable caught) {
        com.google.gwt.user.client.Window.Location.reload();
      }
    });
    // 防ark认证过期,一分钟发送一次rpc请求
    new Timer(){
      @Override
      public void run() {
        RPCS.getUserService().getUser(new AsyncCallback<ZUser>() {
          @Override
          public void onFailure(Throwable caught) {}
          @Override
          public void onSuccess(ZUser result) {}
        });
      }
     
    }.scheduleRepeating(60*1000);
  }
}
 
TOP

Related Classes of com.taobao.zeus.web.platform.client.PlatformEntry

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.