Package com.taobao.zeus.web.platform.client.module.word.component

Source Code of com.taobao.zeus.web.platform.client.module.word.component.LogTabPanel

package com.taobao.zeus.web.platform.client.module.word.component;

import com.google.gwt.core.shared.GWT;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.widget.core.client.Dialog;
import com.sencha.gxt.widget.core.client.Dialog.PredefinedButton;
import com.sencha.gxt.widget.core.client.TabItemConfig;
import com.sencha.gxt.widget.core.client.TabPanel;
import com.sencha.gxt.widget.core.client.box.MessageBox;
import com.sencha.gxt.widget.core.client.event.BeforeCloseEvent;
import com.sencha.gxt.widget.core.client.event.BeforeCloseEvent.BeforeCloseHandler;
import com.sencha.gxt.widget.core.client.event.CloseEvent;
import com.sencha.gxt.widget.core.client.event.HideEvent;
import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler;
import com.taobao.zeus.web.platform.shared.rpc.JobDebugService;
import com.taobao.zeus.web.platform.shared.rpc.JobDebugServiceAsync;

public class LogTabPanel extends TabPanel {
 
  protected static JobDebugServiceAsync debugService=GWT.create(JobDebugService.class);
 
  public LogTabPanel(){
    final MessageBox box = new MessageBox(
        "取消调试么?", "此次调试正在运行,要取消本次调试么?");
    box.setPredefinedButtons(
        PredefinedButton.YES,
        PredefinedButton.NO,
        PredefinedButton.CANCEL);
    box.setIcon(MessageBox.ICONS
        .question());
    box.addHideHandler(new HideHandler() {
      @Override
      public void onHide(HideEvent event) {
        final LogTextPanel item = (LogTextPanel) box.getData("item");
        Dialog btn = (Dialog) event.getSource();
        String choice = btn.getHideButton().getItemId();
        if(choice.equalsIgnoreCase("yes")){
          debugService.cancelDebug(item.getDebugId(), new AsyncCallback<Void>() {
           
            @Override
            public void onSuccess(Void result) {
              item.getTimer().cancel();
              closeTab(item);
            }

            @Override
            public void onFailure(Throwable caught) {
              Window.alert("调试取消失败");
            }
          });
        }else if(choice.equalsIgnoreCase("no")){
          item.getTimer().cancel();
          closeTab(item);
        }else{
          //do nothing
        }
      }
    });
    addBeforeCloseHandler(new BeforeCloseHandler<Widget>() {
      @Override
      public void onBeforeClose(
          final BeforeCloseEvent<Widget> bcEvent) {
        final LogTextPanel item = (LogTextPanel) bcEvent.getItem();
        box.setData("item", item);
        if(item.isRunning() == true){
          box.show();
          bcEvent.setCancelled(true);
        }
      }
    });
  }
  public void closeTab(Widget w){
    remove(w);
    fireEvent(new CloseEvent<Widget>(w));
  }
  public void onStartDebug(final String debugId){
    TabItemConfig config = new TabItemConfig("ID:"+debugId, true);;
    final LogTextPanel logTextPanel = new LogTextPanel(debugId, config, this);
    add(logTextPanel, config);
    this.setActiveWidget(logTextPanel);
    logTextPanel.getTimer().run();
  }
}
TOP

Related Classes of com.taobao.zeus.web.platform.client.module.word.component.LogTabPanel

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.