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

Source Code of com.taobao.zeus.web.platform.client.module.filemanager.FileMenu

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

import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.widget.core.client.event.BeforeShowEvent;
import com.sencha.gxt.widget.core.client.event.BeforeShowEvent.BeforeShowHandler;
import com.sencha.gxt.widget.core.client.menu.Menu;
import com.sencha.gxt.widget.core.client.menu.MenuItem;
import com.sencha.gxt.widget.core.client.menu.SeparatorMenuItem;
import com.taobao.zeus.web.platform.client.module.filemanager.images.Images;

public class FileMenu implements IsWidget {

  private static final String FILE_TYPE = "fileType";
  private static final String FILE_SUFFIX="fileSuffix";

  private FileManagerPresenter fileSystemPresenter;

  private Menu fileMenu;
  private MenuItem createFolderMenuItem;
  private MenuItem createHiveMenuItem;
  private MenuItem createShellMenuItem;
  private MenuItem createTextMenuItem;
  private MenuItem collapseMenuItem;
  private MenuItem expandMenuItem;
  private MenuItem editNameMenuItem;
  private MenuItem openMenuItem;
  private MenuItem deleteMenuItem;
  private BeforeShowHandler beforeShowHandler;
  private SelectionHandler<MenuItem> createSelectionHandler;
  private SelectionHandler<MenuItem> expandSelectionHandler;
  private SelectionHandler<MenuItem> collapseSelectionHandler;
  private SelectionHandler<MenuItem> editNameSelectionHandler;
  private SelectionHandler<MenuItem> openSelectionHandler;
  private SelectionHandler<MenuItem> deleteSelectionHandler;

  public FileMenu(FileManagerPresenter fileSystemPresenter) {
    this.fileSystemPresenter = fileSystemPresenter;
  }

  public Widget asWidget() {
    getFileMenu();
    return fileMenu;
  }

  public Menu getFileMenu() {
    if (fileMenu == null) {
      fileMenu = new Menu();
      fileMenu.add(getCreateFolderMenuItem());
      fileMenu.add(new SeparatorMenuItem());
      fileMenu.add(getCreateHiveMenuItem());
      fileMenu.add(getCreateShellMenuItem());
      fileMenu.add(getCreateTextMenuItem());
      fileMenu.add(new SeparatorMenuItem());
      fileMenu.add(getExpandMenuItem());
      fileMenu.add(getCollapseMenuItem());
      fileMenu.add(new SeparatorMenuItem());
      fileMenu.add(getEditNameMenuItem());
      fileMenu.add(new SeparatorMenuItem());
      fileMenu.add(getOpenMenuItem());
      fileMenu.add(new SeparatorMenuItem());
      fileMenu.add(getDeleteMenuItem());
      fileMenu.addBeforeShowHandler(getBeforeShowHandler());
    }
    return fileMenu;
  }

  protected FileManagerPresenter getPresenter() {
    return fileSystemPresenter;
  }

  private BeforeShowHandler getBeforeShowHandler() {
    if (beforeShowHandler == null) {
      beforeShowHandler = new BeforeShowHandler() {
        @Override
        public void onBeforeShow(BeforeShowEvent event) {
          boolean isEnableCreate = getPresenter().isEnableCreate();
          boolean isEnableOpen = getPresenter().isEnableOpen();
          boolean isEnableDelete = getPresenter().isEnableDelete();
          boolean isEnableEditName = getPresenter().isEnableEditName();
          getCreateFolderMenuItem().setEnabled(isEnableCreate);
          getCreateHiveMenuItem().setEnabled(isEnableCreate);
          getCreateShellMenuItem().setEnabled(isEnableCreate);
          getCreateTextMenuItem().setEnabled(isEnableCreate);
          getExpandMenuItem().setEnabled(isEnableCreate);
          getCollapseMenuItem().setEnabled(isEnableCreate);
          getEditNameMenuItem().setEnabled(isEnableEditName);
          getOpenMenuItem().setEnabled(isEnableOpen);
          getDeleteMenuItem().setEnabled(isEnableDelete);
        }
      };
    }
    return beforeShowHandler;
  }

  private MenuItem getCollapseMenuItem() {
    if (collapseMenuItem == null) {
      collapseMenuItem = new MenuItem("收缩", getCollapseSelectionHandler());
      collapseMenuItem.setIcon(Images.getImageResources().arrow_in());
    }
    return collapseMenuItem;
  }

  private SelectionHandler<MenuItem> getCollapseSelectionHandler() {
    if (collapseSelectionHandler == null) {
      collapseSelectionHandler = new SelectionHandler<MenuItem>() {
        @Override
        public void onSelection(SelectionEvent<MenuItem> event) {
          getPresenter().onCollapse();
        }
      };
    }
    return collapseSelectionHandler;
  }

  private MenuItem getCreateShellMenuItem() {
    if (createShellMenuItem == null) {
      createShellMenuItem = new MenuItem("新建shell", getCreateSelectionHandler());
      createShellMenuItem.setIcon(Images.getImageResources().script_add());
      createShellMenuItem.setData(FILE_TYPE, false);
      createShellMenuItem.setData(FILE_SUFFIX, "sh");
    }
    return createShellMenuItem;
  }

  private MenuItem getCreateHiveMenuItem() {
    if (createHiveMenuItem == null) {
      createHiveMenuItem = new MenuItem("新建Hive", getCreateSelectionHandler());
      createHiveMenuItem.setIcon(Images.getImageResources().script_add());
      createHiveMenuItem.setData(FILE_TYPE, false);
      createHiveMenuItem.setData(FILE_SUFFIX, "hive");
    }
    return createHiveMenuItem;
  }
  private MenuItem getCreateTextMenuItem() {
    if(createTextMenuItem==null){
      createTextMenuItem=new MenuItem("新建文件",getCreateSelectionHandler());
      createTextMenuItem.setIcon(Images.getImageResources().page_white_add());
      createTextMenuItem.setData(FILE_TYPE, false);
      createTextMenuItem.setData(FILE_SUFFIX, "");
    }
    return createTextMenuItem;
  }
  private MenuItem getCreateFolderMenuItem() {
    if (createFolderMenuItem == null) {
      createFolderMenuItem = new MenuItem("新建文件夹", getCreateSelectionHandler());
      createFolderMenuItem.setIcon(Images.getImageResources().folder_add());
      createFolderMenuItem.setData(FILE_TYPE, true);
      createFolderMenuItem.setData(FILE_SUFFIX, "");
    }
    return createFolderMenuItem;
  }


  private SelectionHandler<MenuItem> getCreateSelectionHandler() {
    if (createSelectionHandler == null) {
      createSelectionHandler = new SelectionHandler<MenuItem>() {
        @Override
        public void onSelection(SelectionEvent<MenuItem> event) {
          Boolean folder = event.getSelectedItem().<Boolean> getData(FILE_TYPE);
          String suffix=event.getSelectedItem().getData(FILE_SUFFIX);
          getPresenter().onCreate(folder,suffix);
        }
      };
    }
    return createSelectionHandler;
  }


  private MenuItem getDeleteMenuItem() {
    if (deleteMenuItem == null) {
      deleteMenuItem = new MenuItem("删除", getDeleteSelectionHandler());
      deleteMenuItem.setIcon(Images.getImageResources().cross());
    }
    return deleteMenuItem;
  }

  private SelectionHandler<MenuItem> getDeleteSelectionHandler() {
    if (deleteSelectionHandler == null) {
      deleteSelectionHandler = new SelectionHandler<MenuItem>() {
        @Override
        public void onSelection(SelectionEvent<MenuItem> event) {
          getPresenter().onDelete();
        }
      };
    }
    return deleteSelectionHandler;
  }

  private MenuItem getEditNameMenuItem() {
    if (editNameMenuItem == null) {
      editNameMenuItem = new MenuItem("重命名", getEditNameSelectionHandler());
      editNameMenuItem.setIcon(Images.getImageResources().textfield_rename());
    }
    return editNameMenuItem;
  }

  private SelectionHandler<MenuItem> getEditNameSelectionHandler() {
    if (editNameSelectionHandler == null) {
      editNameSelectionHandler = new SelectionHandler<MenuItem>() {
        @Override
        public void onSelection(SelectionEvent<MenuItem> event) {
          getPresenter().onEditName();
        }
      };
    }
    return editNameSelectionHandler;
  }

  private MenuItem getExpandMenuItem() {
    if (expandMenuItem == null) {
      expandMenuItem = new MenuItem("展开", getExpandSelectionHandler());
      expandMenuItem.setIcon(Images.getImageResources().arrow_out());
    }
    return expandMenuItem;
  }

  private SelectionHandler<MenuItem> getExpandSelectionHandler() {
    if (expandSelectionHandler == null) {
      expandSelectionHandler = new SelectionHandler<MenuItem>() {
        @Override
        public void onSelection(SelectionEvent<MenuItem> event) {
          getPresenter().onExpand();
        }
      };
    }
    return expandSelectionHandler;
  }

  private MenuItem getOpenMenuItem() {
    if (openMenuItem == null) {
      openMenuItem = new MenuItem("打开", getOpenSelectionHandler());
      openMenuItem.setIcon(Images.getImageResources().bullet_go());
    }
    return openMenuItem;
  }

  private SelectionHandler<MenuItem> getOpenSelectionHandler() {
    if (openSelectionHandler == null) {
      openSelectionHandler = new SelectionHandler<MenuItem>() {
        @Override
        public void onSelection(SelectionEvent<MenuItem> event) {
          getPresenter().onOpen();
        }
      };
    }
    return openSelectionHandler;
  }



}
TOP

Related Classes of com.taobao.zeus.web.platform.client.module.filemanager.FileMenu

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.