diff servlet/src/digilib/io/DocuFileset.java @ 149:04ad64b2137a

Servlet version 1.14b1 - better performance with thumbnails (really, this time :-) - new DocuInfo class - new Directory class - DocuFile uses String and Directory as data members - parameter rearrangements
author robcast
date Tue, 26 Aug 2003 22:28:43 +0200
parents bdd6789d21e0
children
line wrap: on
line diff
--- a/servlet/src/digilib/io/DocuFileset.java	Fri Aug 22 21:12:24 2003 +0200
+++ b/servlet/src/digilib/io/DocuFileset.java	Tue Aug 26 22:28:43 2003 +0200
@@ -19,14 +19,15 @@
  */
 package digilib.io;
 
-import java.awt.Dimension;
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.ListIterator;
 
 import digilib.image.DocuInfo;
+import digilib.image.ImageSize;
 
 /**
  * @author casties
@@ -98,15 +99,19 @@
 	 * @param info
 	 * @return
 	 */
-	public DocuFile getNextSmaller(Dimension size, DocuInfo info) {
+	public DocuFile getNextSmaller(ImageSize size, DocuInfo info) {
 		for (Iterator i = getHiresIterator(); i.hasNext();) {
 			DocuFile f = (DocuFile) i.next();
-			if (!f.isChecked()) {
-				f.check(info);
-			}
-			if ((f.getSize().getHeight() <= size.getHeight())
-				&& (f.getSize().getWidth() <= size.getWidth())) {
-				return f;
+			try {
+				if (!f.isChecked()) {
+					info.checkFile(f);
+				}
+				if (f.getSize().isTotallySmallerThan(size)) {
+					return f;
+				}
+			} catch (IOException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
 			}
 		}
 		return null;
@@ -123,15 +128,19 @@
 	 * @param info
 	 * @return
 	 */
-	public DocuFile getNextBigger(Dimension size, DocuInfo info) {
+	public DocuFile getNextBigger(ImageSize size, DocuInfo info) {
 		for (ListIterator i = getLoresIterator(); i.hasPrevious();) {
 			DocuFile f = (DocuFile) i.previous();
-			if (!f.isChecked()) {
-				f.check(info);
-			}
-			if ((f.getSize().getHeight() >= size.getHeight())
-				|| (f.getSize().getWidth() >= size.getWidth())) {
-				return f;
+			try {
+				if (!f.isChecked()) {
+					info.checkFile(f);
+				}
+				if (f.getSize().isBiggerThan(size)) {
+					return f;
+				}
+			} catch (IOException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
 			}
 		}
 		return null;