1 28 package net.sf.jasperreports.engine.util; 29 30 import java.text.AttributedString ; 31 import java.util.ArrayList ; 32 import java.util.List ; 33 import java.util.Map ; 34 35 36 40 public class JRStyledText 41 { 42 43 46 private StringBuffer sbuffer = new StringBuffer (); 47 private List runs = new ArrayList (); 48 private AttributedString attributedString = null; 49 50 51 54 public JRStyledText() 55 { 56 } 57 58 59 62 public void append(String text) 63 { 64 sbuffer.append(text); 65 attributedString = null; 66 } 67 68 71 public void addRun(Run run) 72 { 73 runs.add(run); 74 attributedString = null; 75 } 76 77 80 public int length() 81 { 82 return sbuffer.length(); 83 } 84 85 88 public String getText() 89 { 90 return sbuffer.toString(); 91 } 92 93 96 public AttributedString getAttributedString() 97 { 98 if (attributedString == null) 99 { 100 attributedString = new AttributedString (sbuffer.toString()); 101 102 for(int i = runs.size() - 1; i >= 0; i--) 103 { 104 Run run = (Run)runs.get(i); 105 if (run.startIndex != run.endIndex) 106 { 107 attributedString.addAttributes(run.attributes, run.startIndex, run.endIndex); 108 } 109 } 110 } 111 112 return attributedString; 113 } 114 115 116 119 public List getRuns() 120 { 121 return runs; 122 } 123 124 127 public static class Run 128 { 129 132 public Map attributes = null; 133 public int startIndex = 0; 134 public int endIndex = 0; 135 136 139 public Run(Map attributes, int startIndex, int endIndex) 140 { 141 this.attributes = attributes; 142 this.startIndex = startIndex; 143 this.endIndex = endIndex; 144 } 145 } 146 147 } 148 | Popular Tags |