Package org.zkoss.zss.app.zul

Source Code of org.zkoss.zss.app.zul.FormatMenu

/* FormatMenu.java

{{IS_NOTE
  Purpose:
   
  Description:
   
  History:
    Nov 15, 2010 7:55:29 PM , Created by Sam
}}IS_NOTE

Copyright (C) 2009 Potix Corporation. All Rights Reserved.

*/
package org.zkoss.zss.app.zul;

import java.util.List;

import org.zkoss.poi.ss.usermodel.CellStyle;
import org.zkoss.zk.ui.Components;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.IdSpace;
import org.zkoss.zk.ui.WebApps;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.ForwardEvent;
import org.zkoss.zk.ui.event.InputEvent;
import org.zkoss.zss.app.Consts;
import org.zkoss.zss.app.zul.ctrl.CellStyleContextEvent;
import org.zkoss.zss.app.zul.ctrl.DesktopCellStyleContext;
import org.zkoss.zss.app.zul.ctrl.DesktopWorkbenchContext;
import org.zkoss.zss.app.zul.ctrl.StyleModification;
import org.zkoss.zul.Menu;
import org.zkoss.zul.Menuitem;
import org.zkoss.zul.Menupopup;

/**
* @author Sam
*
*/
public class FormatMenu extends Menu implements IdSpace {
  //TODO provide font color menu
  private Menupopup formatMenupopup;
 
  private Menupopup fontMenuMenupopup;
  private Menupopup alignMenupopup;
  private Menu backgroundColorMenu;
  private Menuitem formatNumber;

  public FormatMenu() {
    Executions.createComponents(Consts._FormatMenu_zul, this, null);
    Components.wireVariables(this, this, '$', true, true);
    Components.addForwards(this, this, '$');
  }
 
  public void onFontFamilySelect(ForwardEvent event) {
    final String fontFamily = (String)event.getData();
    getDesktopCellStyleContext().modifyStyle(new StyleModification() {
      public void modify(org.zkoss.zss.app.zul.ctrl.CellStyle style,
          CellStyleContextEvent candidteEvt) {
        style.setFontFamily(fontFamily);
      }
    });
  }
 
  public void setDisabled(boolean disable) {
    applyDisabled(fontMenuMenupopup.getChildren(), disable);
    //TODO: setContent shall disable, but it didn't
    backgroundColorMenu.setContent(disable ? "" : "#color=#FFFFFF");
    applyDisabled(alignMenupopup.getChildren(), disable);
    formatNumber.setDisabled(disable);
  }
  private void applyDisabled(List children, boolean disabled) {
    for (Object obj : children) {
      if (obj instanceof Menuitem) {
        Menuitem menu = (Menuitem)obj;
        menu.setDisabled(disabled);
      }
    }
  }
 
  public void onOpen$FormatMenu() {
    getDesktopWorkbenchContext().getWorkbookCtrl().reGainFocus();
  }
 
  public void onChange$backgroundColorMenu(ForwardEvent event) {
    InputEvent evt = (InputEvent)event.getOrigin();
    final String color = (String)evt.getValue();
    getDesktopCellStyleContext().modifyStyle(new StyleModification() {
      public void modify(org.zkoss.zss.app.zul.ctrl.CellStyle style,
          CellStyleContextEvent candidteEvt) {
        style.setCellColor(color);
      }
    });
  }
 
  public void onAlignHorizontalClick(ForwardEvent event) {
    final String alignStr = (String) event.getData();

    getDesktopCellStyleContext().modifyStyle(new StyleModification() {
      public void modify(org.zkoss.zss.app.zul.ctrl.CellStyle style,
          CellStyleContextEvent candidteEvt) {
        short align = CellStyle.ALIGN_GENERAL;
        if (alignStr.equals("left")) {
          align = CellStyle.ALIGN_LEFT;
        }

        if (alignStr.equals("center")) {
          align = CellStyle.ALIGN_CENTER;
        }

        if (alignStr.equals("right")) {
          align = CellStyle.ALIGN_RIGHT;
        }
        style.setAlignment(align);
      }
    });
  }
 
  public void onOpen$formatMenupopup() {
    getDesktopWorkbenchContext().getWorkbookCtrl().reGainFocus();
  }
 
  public void onClick$formatNumber() {
//    getDesktopWorkbenchContext().getWorkbenchCtrl().openFormatNumberDialog();
  }
 
  protected DesktopWorkbenchContext getDesktopWorkbenchContext() {
    return Zssapp.getDesktopWorkbenchContext(this);
  }
 
  protected DesktopCellStyleContext getDesktopCellStyleContext() {
    return Zssapp.getDesktopCellStyleContext(this);
  }

  public void onCreate() {
    final DesktopWorkbenchContext workbenchCtrl = getDesktopWorkbenchContext();
    workbenchCtrl.addEventListener(Consts.ON_WORKBOOK_CHANGED, new EventListener() {
      public void onEvent(Event event) throws Exception {
        setDisabled(!workbenchCtrl.getWorkbookCtrl().hasBook());
      }
    });
    if (WebApps.getFeature("pe"))
      backgroundColorMenu.setContent("#color=#FFFFFF");
    else {
      backgroundColorMenu.detach();
    }
  }
}
TOP

Related Classes of org.zkoss.zss.app.zul.FormatMenu

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.