Package org.zkoss.zss.app.file

Source Code of org.zkoss.zss.app.file.OpenFileWindowCtrl

/* OpenFileWindowCtrl.java

{{IS_NOTE
  Purpose:
   
  Description:
   
  History:
    Nov 3, 2010 7:26:02 PM , Created by Sam
}}IS_NOTE

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

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

import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.event.UploadEvent;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zss.app.zul.Dialog;
import org.zkoss.zss.app.zul.Zssapp;
import org.zkoss.zss.app.zul.ctrl.DesktopWorkbenchContext;
import org.zkoss.zss.app.zul.ctrl.WorkspaceContext;
import org.zkoss.zul.Button;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listhead;
import org.zkoss.zul.Listheader;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Window;

/**
* @author Sam
*
*/
public class OpenFileWindowCtrl extends GenericForwardComposer {
 
  private Dialog _openFileDialog;
  private Listbox filesListbox;
 
  private Button uploadBtn;

  @Override
  public void doAfterCompose(Component comp) throws Exception {
    super.doAfterCompose(comp);
    initFileListbox();
    uploadBtn.setDisabled(!FileHelper.hasImportPermission());
  }
 
  public void onOpen$_openFileDialog() {
    filesListbox.setModel(new ListModelList(
        WorkspaceContext.getInstance(desktop).getMetainfos()));
    _openFileDialog.setMode(Window.MODAL);
  }

  private void initFileListbox() {
    //TODO: move this to become a component, re-use in here and fileListOpen.zul
    Listhead listhead = new Listhead();
    Listheader filenameHeader = new Listheader("File");
    filenameHeader.setHflex("2");
    filenameHeader.setParent(listhead);
   
    Listheader dateHeader = new Listheader("Date");
    dateHeader.setHflex("1");
    dateHeader.setParent(listhead);
    filesListbox.appendChild(listhead);
   
    filesListbox.setItemRenderer(new ListitemRenderer() {
     
      public void render(Listitem item, Object obj) throws Exception {
        final SpreadSheetMetaInfo info = (SpreadSheetMetaInfo)obj;
        item.setValue(info);
        item.appendChild(new Listcell(info.getFileName()));
        item.appendChild(new Listcell(info.getFormatedImportDateString()));
        //TODO: use I18n
        item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener() {
          public void onEvent(Event evt) throws Exception {
            getDesktopWorkbenchContext().getWorkbookCtrl().openBook(info);
            getDesktopWorkbenchContext().fireWorkbookChanged();
            _openFileDialog.fireOnClose(null);
          }
        });
      }

      @Override
      public void render(Listitem item, Object data, int index)
          throws Exception {
        render(item, data);
      }
    });
  }
 
  public void onUpload$uploadBtn(UploadEvent event) {
    //TODO: throw IO exception
    try {
      getDesktopWorkbenchContext().getWorkbookCtrl().
        openBook(WorkspaceContext.getInstance(desktop).store(event.getMedia()));
      getDesktopWorkbenchContext().fireWorkbookChanged();
      _openFileDialog.fireOnClose(null);
    } catch (UnsupportedSpreadSheetFileException e) {
      Messagebox.show("Import file format " + event.getMedia().getName() + " not supported");
    }
  }
 
  private DesktopWorkbenchContext getDesktopWorkbenchContext() {
    return Zssapp.getDesktopWorkbenchContext(self);
  }
}
TOP

Related Classes of org.zkoss.zss.app.file.OpenFileWindowCtrl

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.