1 package com.lowagie.text.pdf.collection; 2 3 import com.lowagie.text.pdf.PdfArray; 4 import com.lowagie.text.pdf.PdfBoolean; 5 import com.lowagie.text.pdf.PdfDictionary; 6 import com.lowagie.text.pdf.PdfName; 7 import com.lowagie.text.pdf.PdfObject; 8 9 public class PdfCollectionSort extends PdfDictionary { 10 11 15 public PdfCollectionSort(String key) { 16 super(PdfName.COLLECTIONSORT); 17 put(PdfName.S, new PdfName(key)); 18 } 19 20 24 public PdfCollectionSort(String [] keys) { 25 super(PdfName.COLLECTIONSORT); 26 PdfArray array = new PdfArray(); 27 for (int i = 0; i < keys.length; i++) { 28 array.add(new PdfName(keys[i])); 29 } 30 put(PdfName.S, array); 31 } 32 33 37 public void setSortOrder(boolean ascending) { 38 PdfObject o = (PdfObject)get(PdfName.S); 39 if (o instanceof PdfName) { 40 put(PdfName.A, new PdfBoolean(ascending)); 41 } 42 else { 43 throw new IllegalArgumentException ("You have to define a boolean array for this collection sort dictionary."); 44 } 45 } 46 47 51 public void setSortOrder(boolean[] ascending) { 52 PdfObject o = (PdfObject)get(PdfName.S); 53 if (o instanceof PdfArray) { 54 if (((PdfArray)o).size() != ascending.length) { 55 throw new IllegalArgumentException ("The number of booleans in this array doesn't correspond with the number of fields."); 56 } 57 PdfArray array = new PdfArray(); 58 for (int i = 0; i < ascending.length; i++) { 59 array.add(new PdfBoolean(ascending[i])); 60 } 61 put(PdfName.A, array); 62 } 63 else { 64 throw new IllegalArgumentException ("You need a single boolean for this collection sort dictionary."); 65 } 66 } 67 68 69 } 70 | Popular Tags |