From: <sim...@us...> - 2008-10-26 19:43:52
|
Revision: 841 http://zkforge.svn.sourceforge.net/zkforge/?rev=841&view=rev Author: simon_massey Date: 2008-10-26 19:43:44 +0000 (Sun, 26 Oct 2008) Log Message: ----------- zlora bumped to zk351 and now does file upload. Modified Paths: -------------- trunk/zlora/pom.xml trunk/zlora/src/main/java/org/zkforge/zlora/controller/ZloraController.java trunk/zlora/src/main/java/org/zkforge/zlora/model/ZloraModel.java trunk/zlora/src/main/java/org/zkforge/zlora/model/ZloraModelImpl.java trunk/zlora/src/main/webapp/WEB-INF/zk.xml trunk/zlora/src/main/webapp/WEB-INF/zul/index.zul Added Paths: ----------- trunk/zlora/src/main/webapp/WEB-INF/zul/upload-file.zul trunk/zlora/src/main/webapp/img/upload.png trunk/zlora/src/test/resources/ Modified: trunk/zlora/pom.xml =================================================================== --- trunk/zlora/pom.xml 2008-10-24 09:09:22 UTC (rev 840) +++ trunk/zlora/pom.xml 2008-10-26 19:43:44 UTC (rev 841) @@ -1,6 +1,5 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.zkforge.zlora</groupId> <artifactId>zlora</artifactId> @@ -8,15 +7,19 @@ <version>1.0-SNAPSHOT</version> <url>http://zkforge.sourceforge.net</url> <properties> - <zk.version>3.0.7</zk.version> + <zk.version>3.5.1</zk.version> <zkel.version>1.0.1</zkel.version> <bsh.version>2.0b4</bsh.version> + <junit.version>3.8.1</junit.version> + <spring.version>2.5.5</spring.version> + <commons-fileupload.version>1.2.1</commons-fileupload.version> + <commons-io.version>1.4</commons-io.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <version>3.8.1</version> + <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> @@ -28,7 +31,7 @@ <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> - <version>2.5.5</version> + <version>${spring.version}</version> </dependency> <dependency> <groupId>org.zkoss.zk</groupId> @@ -69,14 +72,7 @@ <artifactId>zcommons-el</artifactId> <version>${zkel.version}</version> </dependency> - <!-- <dependency> - <groupId>org.zkoss.zk</groupId> - <artifactId>zkmax</artifactId> - <version>${zk.version}</version> - </dependency> - --> - <dependency> <groupId>org.beanshell</groupId> <artifactId>bsh</artifactId> <version>${bsh.version}</version> @@ -112,9 +108,15 @@ <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> - <version>1.2.1</version> + <version>${commons-fileupload.version}</version> <scope>runtime</scope> </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>${commons-io.version}</version> + <scope>runtime</scope> + </dependency> </dependencies> <build> <finalName>zlora</finalName> Modified: trunk/zlora/src/main/java/org/zkforge/zlora/controller/ZloraController.java =================================================================== --- trunk/zlora/src/main/java/org/zkforge/zlora/controller/ZloraController.java 2008-10-24 09:09:22 UTC (rev 840) +++ trunk/zlora/src/main/java/org/zkforge/zlora/controller/ZloraController.java 2008-10-26 19:43:44 UTC (rev 841) @@ -11,13 +11,16 @@ import org.zkforge.zlora.model.ZloraModel; import org.zkforge.zlora.view.ZloraTreeModel; import org.zkforge.zlora.view.ZloraTreeitemRenderer; +import org.zkoss.util.media.Media; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.Path; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.UploadEvent; import org.zkoss.zk.ui.util.GenericComposer; import org.zkoss.zul.Checkbox; +import org.zkoss.zul.Fileupload; import org.zkoss.zul.Grid; import org.zkoss.zul.Image; import org.zkoss.zul.Label; @@ -103,20 +106,27 @@ public void doAfterCompose(Component comp) throws Exception { logger.trace("entering doAfterCompose"); String id = comp.getId(); - if( id.equals("mainWindow")){ + if (id.equals("mainWindow")) { initMainWindow(comp); - } else if( id.equals("newFileWindow")){ + } else if (id.equals("newFileWindow")) { initNewFileWindow(comp); - } else if( id.equals("newFolderWindow")){ + } else if (id.equals("newFolderWindow")) { initNewFolderWindow(comp); - } else if( id.equals("renameFileWindow")){ + } else if (id.equals("renameFileWindow")) { initRenameFileWindow(comp); + } else if (id.equals("uploadFileWindow")) { + initUploadFileWindow(comp); } else { - logger.fatal(this.getClass().getName()+"doAfterCompose does not recognice comp with id:"+id); + logger.fatal(this.getClass().getName() + + "doAfterCompose does not recognice comp with id:" + id); } return; } + private void initUploadFileWindow(Component comp) { + return; + } + protected void initMainWindow(Component comp) throws Exception { Window window = (Window)comp; @@ -165,6 +175,10 @@ public void onEvent(Event event) throws Exception { onRenameFileDlg(event); }}); + window.addEventListener("onUploadDlg", new EventListener(){ + public void onEvent(Event event) throws Exception { + onUploadDlg(event); + }}); } @SuppressWarnings("unchecked") @@ -328,7 +342,7 @@ Window win = (Window) Executions.createComponents("rename-file.zul", null, args); win.doModal(); } catch (Exception e) { - logger.fatal("could not open window for new-file.zul", e); + logger.fatal("could not open window for rename-file.zul", e); } } else if ( selectedFiles.size() > 1 ) { //alert("Only select one file for renaming"); @@ -336,6 +350,33 @@ return; } + void onUploadDlg(Event event){ + logger.trace("entering onUploadDlg"); + try { + Map args = new HashMap(); + File currentDir = this.zloraModel.getCurrentDir(); + args.put("currentDir", currentDir); + final Window win = (Window) Executions.createComponents("upload-file.zul", null, args); + Fileupload fileUpload = (Fileupload)win.getFellow("fileupload"); + fileUpload.addEventListener("onUpload", new EventListener(){ + public void onEvent(Event event) throws Exception { + if( event instanceof UploadEvent ){ + UploadEvent uploadEvent = (UploadEvent)event; + Media media = uploadEvent.getMedia(); + String name = media.getName(); + zloraModel.createFile(name, media.getStreamData()); + win.detach(); + listFiles(zloraModel.getCurrentDir()); + return; + } + }}); + win.doModal(); + } catch (Exception e){ + logger.fatal("could not open window for upload-file.zul", e); + } + return; + } + void renameFile(){ String name = newFileName.getValue(); if( name != null && !name.equals("") ) { Modified: trunk/zlora/src/main/java/org/zkforge/zlora/model/ZloraModel.java =================================================================== --- trunk/zlora/src/main/java/org/zkforge/zlora/model/ZloraModel.java 2008-10-24 09:09:22 UTC (rev 840) +++ trunk/zlora/src/main/java/org/zkforge/zlora/model/ZloraModel.java 2008-10-26 19:43:44 UTC (rev 841) @@ -2,6 +2,7 @@ import java.io.File; import java.io.IOException; +import java.io.InputStream; public interface ZloraModel { @@ -15,6 +16,8 @@ public boolean createFile(String pathAndName) throws IOException; + public boolean createFile(String pathAndName, InputStream inputStream) throws IOException; + public File createDirectory(String directoryName); public boolean createDirectories(String directoryPath); Modified: trunk/zlora/src/main/java/org/zkforge/zlora/model/ZloraModelImpl.java =================================================================== --- trunk/zlora/src/main/java/org/zkforge/zlora/model/ZloraModelImpl.java 2008-10-24 09:09:22 UTC (rev 840) +++ trunk/zlora/src/main/java/org/zkforge/zlora/model/ZloraModelImpl.java 2008-10-26 19:43:44 UTC (rev 841) @@ -1,7 +1,10 @@ package org.zkforge.zlora.model; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.util.ArrayList; import java.util.List; @@ -92,6 +95,24 @@ return file.createNewFile(); } + public boolean createFile(String fileName, InputStream inputStream) + throws IOException { + String fullPath = this._currentDir.getCanonicalPath()+ZloraModelImpl.PATH_SEPERATOR+fileName; + OutputStream out = new FileOutputStream(fullPath); + + byte[] buf = new byte[256*1024]; + int len; + while ((len = inputStream.read(buf)) > 0) { + out.write(buf, 0, len); + } + inputStream.close(); + out.close(); + + return true; + } + + + public File createDirectory(String directoryName) { File dir = newFile( directoryName ); Modified: trunk/zlora/src/main/webapp/WEB-INF/zk.xml =================================================================== --- trunk/zlora/src/main/webapp/WEB-INF/zk.xml 2008-10-24 09:09:22 UTC (rev 840) +++ trunk/zlora/src/main/webapp/WEB-INF/zk.xml 2008-10-26 19:43:44 UTC (rev 841) @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <zk> - <!-- required for spring to manage the session scope of beans --> + <!-- required for spring to manage the session scope of beans <system-config> <disable-event-thread/> </system-config> + --> </zk> Modified: trunk/zlora/src/main/webapp/WEB-INF/zul/index.zul =================================================================== --- trunk/zlora/src/main/webapp/WEB-INF/zul/index.zul 2008-10-24 09:09:22 UTC (rev 840) +++ trunk/zlora/src/main/webapp/WEB-INF/zul/index.zul 2008-10-26 19:43:44 UTC (rev 841) @@ -15,6 +15,8 @@ orient="vertical" dir="reverse" width="90px" forward="onClick=mainWindow.onNewFolderDlg" /> <button label="Rename" image="/img/font-x-generic.png" orient="vertical" dir="reverse" width="80px" forward="onClick=mainWindow.onRenameFileDlg" /> + <button label="Upload" image="/img/upload.png" + orient="vertical" dir="reverse" width="80px" forward="onClick=mainWindow.onUploadDlg" /> </hbox> <hbox> <label value="Location"/> Added: trunk/zlora/src/main/webapp/WEB-INF/zul/upload-file.zul =================================================================== --- trunk/zlora/src/main/webapp/WEB-INF/zul/upload-file.zul (rev 0) +++ trunk/zlora/src/main/webapp/WEB-INF/zul/upload-file.zul 2008-10-26 19:43:44 UTC (rev 841) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<window id="uploadFileWindow" title="Upload File" border="normal" width="300px" closable="true" + apply="${sessionScope.zloraController}" > + <caption image="/img/explorer-hat.png" /> + <vbox> + <hbox> + <fileupload id="fileupload"/> + </hbox> + </vbox> +</window> Added: trunk/zlora/src/main/webapp/img/upload.png =================================================================== (Binary files differ) Property changes on: trunk/zlora/src/main/webapp/img/upload.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |