1 32 33 package it.businesslogic.ireport.gui.library.objects; 34 import it.businesslogic.ireport.gui.library.*; 35 import it.businesslogic.ireport.*; 36 import it.businesslogic.ireport.gui.event.ReportElementChangedEvent; 37 import java.util.Vector ; 38 42 public class PercentageObject extends AbstractLibraryObject { 43 44 private static javax.swing.ImageIcon defaultIcon; 45 46 static { 47 48 defaultIcon = new javax.swing.ImageIcon (AbstractLibraryObject.class.getResource("/it/businesslogic/ireport/icons/library/percentage.png")); 49 } 50 51 52 public PercentageObject() { 53 } 54 55 public String getName() 56 { 57 return it.businesslogic.ireport.util.I18n.getString("gui.library.objects.percentage","Percentage"); 58 } 59 60 public void drop(java.awt.dnd.DropTargetDropEvent dtde) { 61 62 63 65 PercentageObjectDialog tod = new PercentageObjectDialog(getReportFrame().getMainFrame(), true ); 66 tod.setFields( getReportFrame().getReport().getFields() ); 67 Vector resetTypes = new Vector (); 68 resetTypes.add("Report"); 69 resetTypes.add("Page"); 70 resetTypes.add("Column"); 71 resetTypes.addAll(getReportFrame().getReport().getGroups() ); 72 tod.setResetTypes(resetTypes); 73 74 tod.setVisible(true); 75 if (tod.getDialogResult() == javax.swing.JOptionPane.OK_OPTION) 76 { 77 JRField obj = tod.getField(); 78 79 String clazz = "java.lang.Integer"; 80 String expression = ""; 81 String tot_name =""; 82 83 clazz = obj.getClassType(); 84 expression = "$F{" + obj + "}"; 85 tot_name += obj +"_"; 86 87 String var_name = "SUM_" + tot_name; 88 String time = "Report"; 89 String tmp_name = var_name; 90 91 java.util.Vector variables = getReportFrame().getReport().getVariables(); 93 for (int i=1; ; ++i) 94 { 95 var_name = tmp_name + i; 96 boolean found = false; 97 for (int k=0; k<variables.size(); ++k) 98 { 99 if ( ((JRVariable)variables.get(k)).getName().equals(var_name)) 100 { 101 found = true; 102 break; 103 } 104 } 105 if (!found) break; 106 } 107 108 Band b = getReportFrame().getBandAt(dtde.getLocation()); 110 JRVariable jrv = new JRVariable(var_name,false); 111 jrv.setClassType( clazz ); 112 jrv.setExpression( expression ); 113 114 time = tod.getResetType(); 115 if (!time.equals("Report") && 116 !time.equals("Page") && 117 !time.equals("Column")) 118 { 119 time = "Group"; 120 jrv.setResetGroup( tod.getResetType() ); 121 } 122 jrv.setResetType( time ); 123 jrv.setCalculation("Sum"); 124 getReportFrame().getReport().addVariable( jrv ); 125 126 String field_exp = "$F{" + obj + "}.doubleValue()"; 127 String var_name_exp = "$V{" + var_name + "}.doubleValue()"; 128 129 TextFieldReportElement re = getReportFrame().dropNewTextField( dtde.getLocation(), "new Double(" + field_exp + " / " + var_name_exp + ")", "java.lang.Double", "Auto" ); 130 re.setPattern("#,##0.00 %"); 131 getReportFrame().fireReportListenerReportElementsChanged(new ReportElementChangedEvent(getReportFrame(), re, ReportElementChangedEvent.CHANGED)); 132 } 133 } 134 135 public javax.swing.ImageIcon getIcon() 136 { 137 return defaultIcon; 138 } 139 140 } 141 | Popular Tags |