1 package dinamica; 2 3 import electric.xml.*; 4 5 18 public class MasterDetailOutput extends GenericOutput 19 { 20 21 22 private Recordset _master = null; 23 24 31 protected Recordset getMaster() 32 { 33 return _master; 34 } 35 36 42 public void print(TemplateEngine te, GenericTransaction data) 43 throws Throwable 44 { 45 46 super.print(te, data); 48 49 Recordset master = data.getRecordset("master"); 51 _master = master; 52 53 Element root = getConfig().getDocument().getRoot(); 55 Element gt = root.getElement("group-template"); 56 if (gt==null) 57 throw new Throwable ("Element <group-template> not found in config.xml. This element is required by the class dinamica.MasterDetailOutput!"); 58 59 IRowEvent event = null; 61 String altColors = gt.getAttribute("alternate-colors"); 62 if (altColors!=null && altColors.equalsIgnoreCase("true")) 63 event = this; 64 65 String section = getResource(gt.getString()); 67 68 StringBuffer buf = new StringBuffer (); 70 71 72 java.util.Locale l = (java.util.Locale )getSession().getAttribute("dinamica.user.locale"); 73 74 master.top(); 76 while (master.next()) 77 { 78 79 MasterDetailReader m = (MasterDetailReader)data; 81 Recordset items = m.getDetail(master); 82 83 this.resetRowColor(); 85 TemplateEngine t = new TemplateEngine(getContext(),getRequest(), section); 86 t.setRowEventObject(event); 87 t.setLocale(l); 88 89 t.replace("${fld:detail.recordcount}", String.valueOf(items.getRecordCount())); 91 92 t.replace(items," ","rows"); 94 95 t.replace(master," "); 97 98 buf.append(t.toString()); 100 101 } 102 103 te.replace("${group}", buf.toString()); 105 106 } 107 108 } 109 | Popular Tags |