1 package org.splat.simer;
3 import java.text.SimpleDateFormat;
4 import java.util.ArrayList;
5 import java.util.Iterator;
7 import java.util.ResourceBundle;
8 import java.util.Vector;
10 import org.splat.dal.bo.som.KnowledgeElement;
11 import org.splat.dal.bo.som.ProgressState;
12 import org.splat.dal.bo.som.Scenario;
13 import org.splat.dal.bo.som.SimulationContext;
14 import org.splat.service.ProjectElementService;
15 import org.splat.som.Step;
16 import org.splat.wapp.SimpleMenu;
18 public class OpenKnowledge extends OpenObject {
20 private KnowledgeElement myknelm;
21 private String credate;
22 private ProjectElementService _projectElementService;
24 public class Menu extends SimpleMenu {
25 // ------------------------------------
26 public Menu(List<Step> context) {
27 super("steps", "study");
30 for (Iterator<Step> k = context.iterator(); k.hasNext(); i++) {
32 int number = step.getNumber();
34 if (step.mayContain(KnowledgeElement.class))
35 j = i + 1; // Steps are numbered from 1 to N
36 if (!step.isStarted())
37 icon = "icon.empty.png";
39 icon = "icon.done.png";
40 addItem(String.valueOf(number), "folder.step." + number, icon,
41 "step-knowledge?selection=" + number);
43 this.selects(String.valueOf(j));
47 // ==============================================================================================================================
49 // ==============================================================================================================================
51 public OpenKnowledge(KnowledgeElement knelm) {
52 // ---------------------------------------------
53 ResourceBundle label = ResourceBundle.getBundle("labels",
54 ApplicationSettings.getCurrentLocale());
55 ResourceBundle custom = ResourceBundle.getBundle("som",
56 ApplicationSettings.getCurrentLocale());
57 SimpleDateFormat convert = new SimpleDateFormat(
58 custom.getString("date.format"));
59 StringBuffer value = new StringBuffer(knelm.getValue());
60 Scenario scene = knelm.getOwnerScenario();
64 // Preparation of the display
65 credate = convert.format(myknelm.getDate());
66 involving = getAllSteps(knelm.getOwnerScenario());
67 context = new ArrayList<SimulationContextFacade>();
68 menu = new Menu(getInvolvedSteps());
69 selection = menu.getSelection(); // The default selection is set in the menu definition
70 int index = Integer.valueOf(selection);
71 for (Iterator<Step> i = involving.iterator(); i.hasNext();) {
73 if (next.getNumber() == index)
75 for (Iterator<SimulationContext> j = next
76 .getAllSimulationContexts().iterator(); j.hasNext();) {
77 context.add(new SimulationContextFacade(j.next()));
80 value.append("<p>").append("<b>")
81 .append(label.getString("label.source")).append(":</b>")
82 .append("<br>").append(label.getString("label.study"))
83 .append(" \"").append(scene.getOwnerStudy().getTitle())
84 .append("\",").append("<br>").append(scene.getTitle())
85 .append(".").append("</p>");
86 description = value.toString();
87 setupContents(); // Initializes documents and knowledge at ustep
90 // ==============================================================================================================================
91 // Public member functions
92 // ==============================================================================================================================
94 public String getAuthorName() {
95 // -----------------------------
96 return myknelm.getAuthor().toString();
99 public String getDate() {
100 // ------------------------
104 public Integer getIndex() {
105 // -------------------------
106 return myknelm.getIndex();
109 public Menu getMenu() {
110 // ----------------------
114 public ProgressState getProgressState() {
115 // ---------------------------------------
116 return myknelm.getProgressState();
119 public String getReference() {
120 // ----------------------------
121 return myknelm.getReference();
124 public KnowledgeElement getKnowledgeObject() {
125 // ---------------------------------------------
129 public String getTitle() {
130 // ------------------------
131 return myknelm.getTitle();
134 public String getType() {
135 // ------------------------
136 return ResourceBundle.getBundle("som",
137 ApplicationSettings.getCurrentLocale()).getString(
138 "type.knowledge." + myknelm.getType().getName());
141 public void setSelection(String step) {
142 // --------------------------------------
144 int index = Integer.valueOf(selection);
145 for (Iterator<Step> i = involving.iterator(); i.hasNext();) {
147 if (ustep.getNumber() == index)
150 menu.selects(selection);
151 setupContents(); // The contents may have changed even if the selection is the same
154 // ==============================================================================================================================
156 // ==============================================================================================================================
158 private List<Step> getAllSteps(Scenario scenar) {
159 // ------------------------------------------------
160 Vector<Step> result = new Vector<Step>();
161 Step[] step = getProjectElementService().getSteps(scenar);
163 int base = step[0].getNumber();
164 int last = step[step.length - 1].getNumber();
165 for (int i = 0; i < step.length; i++) {
168 step = getProjectElementService().getSteps(scenar.getOwnerStudy());
169 for (int i = step.length - 1; i > -1; i--) {
170 if (step[i].getNumber() >= base)
172 result.add(0, step[i]);
174 for (int i = 0; i < step.length; i++) {
175 if (step[i].getNumber() <= last)
183 * Get the projectElementService.
185 * @return the projectElementService
187 public ProjectElementService getProjectElementService() {
188 return _projectElementService;
192 * Set the projectElementService.
194 * @param projectElementService
195 * the projectElementService to set
197 public void setProjectElementService(
198 ProjectElementService projectElementService) {
199 _projectElementService = projectElementService;