Skip to content
Snippets Groups Projects
Commit 79455516 authored by pkupczyk's avatar pkupczyk
Browse files

SP-156 / BIS-38 - Show checksum in file browser of data set detailed view

SVN: 26230
parent 532511d7
No related branches found
No related tags found
No related merge requests found
...@@ -464,8 +464,11 @@ public class DatasetDownloadServlet extends AbstractDatasetDownloadServlet ...@@ -464,8 +464,11 @@ public class DatasetDownloadServlet extends AbstractDatasetDownloadServlet
directoryRenderer.printDirectory(name, normalizedRelativePath); directoryRenderer.printDirectory(name, normalizedRelativePath);
} else } else
{ {
Integer checksumOrNull =
childNode.isChecksumCRC32Precalculated() ? childNode.getChecksumCRC32()
: null;
directoryRenderer.printFile(name, normalizedRelativePath, directoryRenderer.printFile(name, normalizedRelativePath,
childNode.getFileLength()); childNode.getFileLength(), checksumOrNull);
} }
} }
directoryRenderer.printFooter(); directoryRenderer.printFooter();
......
/*
* Copyright 2012 ETH Zuerich, CISD
*
* 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 ch.systemsx.cisd.openbis.dss.generic.server;
import org.apache.commons.io.FileUtils;
import ch.systemsx.cisd.common.io.IOUtilities;
/**
* @author pkupczyk
*/
public class DirectoryRendererUtil
{
public static String renderFileSize(long size)
{
return FileUtils.byteCountToDisplaySize(size);
}
public static String renderCRC32Checksum(Integer checksumOrNull)
{
if (checksumOrNull == null)
{
return "-";
} else
{
return IOUtilities.crc32ToString(checksumOrNull);
}
}
}
...@@ -29,7 +29,7 @@ public interface IDirectoryRenderer extends IWriterInjector ...@@ -29,7 +29,7 @@ public interface IDirectoryRenderer extends IWriterInjector
public void printDirectory(String name, String relativePath); public void printDirectory(String name, String relativePath);
public void printFile(String name, String relativePath, long size); public void printFile(String name, String relativePath, long size, Integer checksumOrNull);
public void printFooter(); public void printFooter();
......
...@@ -18,8 +18,6 @@ package ch.systemsx.cisd.openbis.dss.generic.server; ...@@ -18,8 +18,6 @@ package ch.systemsx.cisd.openbis.dss.generic.server;
import java.io.PrintWriter; import java.io.PrintWriter;
import org.apache.commons.io.FileUtils;
/** /**
* Factory for rendering file system view in plain text. * Factory for rendering file system view in plain text.
* *
...@@ -73,9 +71,10 @@ public class PlainTextRendererFactory implements IRendererFactory ...@@ -73,9 +71,10 @@ public class PlainTextRendererFactory implements IRendererFactory
} }
@Override @Override
public void printFile(String name, String relativePath, long size) public void printFile(String name, String relativePath, long size, Integer checksumOrNull)
{ {
writer.format("%s\t%s\n", name, FileUtils.byteCountToDisplaySize(size)); writer.format("%s\t%s\t%s\n", name, DirectoryRendererUtil.renderFileSize(size),
DirectoryRendererUtil.renderCRC32Checksum(checksumOrNull));
} }
@Override @Override
......
...@@ -20,7 +20,6 @@ import java.io.PrintWriter; ...@@ -20,7 +20,6 @@ import java.io.PrintWriter;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import java.net.URLEncoder;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel; import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
...@@ -50,7 +49,7 @@ final class SimpleHTMLDirectoryRenderer implements IDirectoryRenderer ...@@ -50,7 +49,7 @@ final class SimpleHTMLDirectoryRenderer implements IDirectoryRenderer
private static final Template ROW_TEMPLATE = private static final Template ROW_TEMPLATE =
new Template( new Template(
"<tr><td class='td_file'><a href='${path}?mode=simpleHtml${sessionId}'>${name}</td><td>${size}</td></tr>"); "<tr><td class='td_file'><a href='${path}?mode=simpleHtml${sessionId}'>${name}</td><td>${size}</td><td>${checksum}</td></tr>");
private static final Template HEADER_TEMPLATE = new Template("<html><head>" + CSS private static final Template HEADER_TEMPLATE = new Template("<html><head>" + CSS
+ "</head><body>" + "<table> " + "${folder}" + ""); + "</head><body>" + "<table> " + "${folder}" + "");
...@@ -97,27 +96,31 @@ final class SimpleHTMLDirectoryRenderer implements IDirectoryRenderer ...@@ -97,27 +96,31 @@ final class SimpleHTMLDirectoryRenderer implements IDirectoryRenderer
@Override @Override
public void printLinkToParentDirectory(final String aRelativePath) public void printLinkToParentDirectory(final String aRelativePath)
{ {
printRow("..", aRelativePath, ""); printRow("..", aRelativePath, "", "");
} }
@Override @Override
public void printDirectory(final String name, final String aRelativePath) public void printDirectory(final String name, final String aRelativePath)
{ {
printRow(name, aRelativePath, ""); printRow(name, aRelativePath, "", "");
} }
@Override @Override
public void printFile(final String name, final String aRelativePath, final long size) public void printFile(final String name, final String aRelativePath, final long size,
final Integer checksumOrNull)
{ {
printRow(name, aRelativePath, renderFileSize(size)); printRow(name, aRelativePath, DirectoryRendererUtil.renderFileSize(size),
DirectoryRendererUtil.renderCRC32Checksum(checksumOrNull));
} }
private void printRow(final String name, final String aRelativePath, final String fileSize) private void printRow(final String name, final String aRelativePath, final String fileSize,
final String checksum)
{ {
final Template template = ROW_TEMPLATE.createFreshCopy(); final Template template = ROW_TEMPLATE.createFreshCopy();
template.bind("path", urlPrefix + encodeURL(aRelativePath)); template.bind("path", urlPrefix + encodeURL(aRelativePath));
template.bind("name", name); template.bind("name", name);
template.bind("size", fileSize); template.bind("size", fileSize);
template.bind("checksum", checksum);
template.bind("sessionId", Utils.createUrlParameterForSessionId("&", sessionIdOrNull)); template.bind("sessionId", Utils.createUrlParameterForSessionId("&", sessionIdOrNull));
writer.println(template.createText()); writer.println(template.createText());
} }
...@@ -133,11 +136,6 @@ final class SimpleHTMLDirectoryRenderer implements IDirectoryRenderer ...@@ -133,11 +136,6 @@ final class SimpleHTMLDirectoryRenderer implements IDirectoryRenderer
} }
} }
private final static String renderFileSize(final long size)
{
return FileUtils.byteCountToDisplaySize(size);
}
@Override @Override
public void printFooter() public void printFooter()
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment