]> WPIA git - gigi.git/blob - src/org/cacert/gigi/output/AssurancesDisplay.java
ADD: Role sensitive assurance display
[gigi.git] / src / org / cacert / gigi / output / AssurancesDisplay.java
1 package org.cacert.gigi.output;
2
3 import java.io.InputStreamReader;
4 import java.io.PrintWriter;
5 import java.util.Map;
6
7 import org.cacert.gigi.Assurance;
8 import org.cacert.gigi.localisation.Language;
9 import org.cacert.gigi.output.template.IterableDataset;
10 import org.cacert.gigi.output.template.Template;
11
12 public class AssurancesDisplay implements Outputable {
13
14     private static Template template;
15
16     private boolean assurer;
17
18     public String assuranceArray;
19
20     static {
21         template = new Template(new InputStreamReader(AssurancesDisplay.class.getResourceAsStream("AssurancesDisplay.templ")));
22     }
23
24     public AssurancesDisplay(String assuranceArray, boolean assurer) {
25         this.assuranceArray = assuranceArray;
26         this.assurer = assurer;
27     }
28
29     @Override
30     public void output(PrintWriter out, Language l, Map<String, Object> vars) {
31         final Assurance[] assurances = (Assurance[]) vars.get(assuranceArray);
32         if (assurer) {
33             vars.put("verb", l.getTranslation("To"));
34         } else {
35             vars.put("verb", l.getTranslation("From"));
36         }
37
38         IterableDataset assuranceGroup = new IterableDataset() {
39
40             private int i = 0;
41
42             @Override
43             public boolean next(Language l, Map<String, Object> vars) {
44                 if (i >= assurances.length) {
45                     return false;
46                 } else {
47                     Assurance assurance = assurances[i];
48                     vars.put("id", assurance.getId());
49                     vars.put("method", assurance.getMethod());
50                     if (assurer) {
51                         vars.put("verbVal", assurance.getTo().getName());
52                     } else {
53                         vars.put("verbVal", assurance.getFrom().getName());
54                     }
55                     vars.put("date", assurance.getDate());
56                     vars.put("location", assurance.getLocation());
57                     vars.put("points", assurance.getPoints());
58                     i++;
59                     return true;
60                 }
61             }
62         };
63         vars.put("assurances", assuranceGroup);
64         template.output(out, l, vars);
65     }
66
67 }