X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.server%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fweb%2Fajaxplorer%2Ffile%2FFileLsAction.java;fp=runtime%2Forg.argeo.slc.server%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fweb%2Fajaxplorer%2Ffile%2FFileLsAction.java;h=0000000000000000000000000000000000000000;hb=651d33e13bfa9a7b46464be412023ee747e612e8;hp=94240f0f0cdeee3f782fb12fe9770bd098a2ad37;hpb=868102c0f0220e12eca836b6ec9b3a2b9a3441e4;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/ajaxplorer/file/FileLsAction.java b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/ajaxplorer/file/FileLsAction.java deleted file mode 100644 index 94240f0f0..000000000 --- a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/ajaxplorer/file/FileLsAction.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (C) 2007-2012 Mathieu Baudier - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.argeo.slc.web.ajaxplorer.file; - -import java.io.File; -import java.io.FileFilter; -import java.io.OutputStreamWriter; -import java.util.List; -import java.util.Vector; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.io.IOUtils; -import org.argeo.slc.web.ajaxplorer.AjxpAnswer; -import org.argeo.slc.web.ajaxplorer.AjxpDriverException; - -public class FileLsAction extends - FileAction { - - public AjxpAnswer execute(FileDriver driver, HttpServletRequest request) { - String modeStr = request.getParameter("mode"); - LsMode mode; - if (modeStr == null) - mode = LsMode.NULL; - else if (modeStr.equals("complete")) - mode = LsMode.COMPLETE; - else if (modeStr.equals("file_list")) - mode = LsMode.FILE_LIST; - else if (modeStr.equals("search")) - mode = LsMode.SEARCH; - else - throw new AjxpDriverException("Unkown mode " + modeStr); - - String options = request.getParameter("options"); - if (options != null) { - if ("al".equals(options)) - mode = LsMode.FILE_LIST; - } - - String path = request.getParameter("dir"); - if (path == null) { - path = "/"; - } - - boolean dirOnly = false; - if (mode == LsMode.NULL || mode == LsMode.COMPLETE) { - dirOnly = true; - } - - List ajxpFiles = listFiles((T) driver, path, dirOnly); - /* - * File[] files = dir.listFiles(createFileFilter(request, dir)); - * List ajxpFiles = new Vector(); for (File file : - * files) { if (file.isDirectory()) { ajxpFiles.add(new AjxpFile(file, - * path)); } else { if (!dirOnly) ajxpFiles.add(new AjxpFile(file, - * path)); } } - */ - return new AxpLsAnswer(driver, ajxpFiles, mode); - } - - protected List listFiles(T driver, String path, boolean dirOnly) { - File dir = driver.getFile(path); - - if (!dir.exists()) - throw new AjxpDriverException("Dir " + dir + " does not exist."); - - FileFilter filter = createFileFilter(dir); - File[] files = dir.listFiles(filter); - List ajxpFiles = new Vector(); - for (File file : files) { - if (file.isDirectory()) { - ajxpFiles.add((F) new AjxpFile(file, path)); - } else { - if (!dirOnly) - ajxpFiles.add((F) new AjxpFile(file, path)); - } - } - return ajxpFiles; - } - - /** To be overridden. Accept all by default. */ - protected FileFilter createFileFilter(File dir) { - return new FileFilter() { - public boolean accept(File pathname) { - return true; - } - - }; - } - - protected class AxpLsAnswer implements AjxpAnswer { - private final List files; - private final LsMode mode; - private final FileDriver driver; - - public AxpLsAnswer(FileDriver driver, List files, LsMode mode) { - this.files = files; - this.mode = mode; - this.driver = driver; - } - - public void updateResponse(HttpServletResponse response) { - final String encoding = driver.getEncoding(); - response.setCharacterEncoding(encoding); - response.setContentType("text/xml"); - - ServletOutputStream out = null; - OutputStreamWriter writer = null; - try { - out = response.getOutputStream(); - writer = new OutputStreamWriter(out, encoding); - writer.write(""); - // TODO add current path - writer.write(""); - for (AjxpFile file : files) { - writer.write(file.toXml(mode, encoding)); - } - writer.write(""); - writer.flush(); - - } catch (Exception e) { - throw new AjxpDriverException("Could not write response.", e); - } finally { - IOUtils.closeQuietly(writer); - IOUtils.closeQuietly(out); - } - } - - } -}