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.service.technical.ProjectSettingsService;
16 import org.splat.som.Step;
17 import org.splat.wapp.SimpleMenu;
19 public class OpenKnowledge extends OpenObject {
21 private KnowledgeElement myknelm;
22 private String credate;
23 private ProjectElementService _projectElementService;
25 public class Menu extends SimpleMenu {
26 // ------------------------------------
27 public Menu(List<Step> context) {
28 super("steps", "study");
31 for (Iterator<Step> k = context.iterator(); k.hasNext(); i++) {
33 int number = step.getNumber();
35 if (step.mayContain(KnowledgeElement.class))
36 j = i + 1; // Steps are numbered from 1 to N
37 if (!step.isStarted())
38 icon = "icon.empty.png";
40 icon = "icon.done.png";
41 addItem(String.valueOf(number), "folder.step." + number, icon,
42 "step-knowledge?selection=" + number);
44 this.selects(String.valueOf(j));
48 // ==============================================================================================================================
50 // ==============================================================================================================================
52 public OpenKnowledge open (KnowledgeElement knelm) {
53 // ---------------------------------------------
54 ResourceBundle label = ResourceBundle.getBundle("labels",
55 ApplicationSettings.getCurrentLocale());
56 ResourceBundle custom = ResourceBundle.getBundle("som",
57 ApplicationSettings.getCurrentLocale());
58 SimpleDateFormat convert = new SimpleDateFormat(
59 custom.getString("date.format"));
60 StringBuffer value = new StringBuffer(knelm.getValue());
61 Scenario scene = knelm.getOwnerScenario();
65 // Preparation of the display
66 credate = convert.format(myknelm.getDate());
67 involving = getAllSteps(knelm.getOwnerScenario());
68 context = new ArrayList<SimulationContextFacade>();
69 menu = new Menu(getInvolvedSteps());
70 selection = menu.getSelection(); // The default selection is set in the menu definition
71 int index = Integer.valueOf(selection);
72 for (Iterator<Step> i = involving.iterator(); i.hasNext();) {
74 if (next.getNumber() == index)
76 for (Iterator<SimulationContext> j = next
77 .getAllSimulationContexts().iterator(); j.hasNext();) {
78 context.add(new SimulationContextFacade(j.next(), getProjectSettings().getAllSteps()));
81 value.append("<p>").append("<b>")
82 .append(label.getString("label.source")).append(":</b>")
83 .append("<br>").append(label.getString("label.study"))
84 .append(" \"").append(scene.getOwnerStudy().getTitle())
85 .append("\",").append("<br>").append(scene.getTitle())
86 .append(".").append("</p>");
87 description = value.toString();
88 setupContents(); // Initializes documents and knowledge at ustep
92 // ==============================================================================================================================
93 // Public member functions
94 // ==============================================================================================================================
96 public String getAuthorName() {
97 // -----------------------------
98 return myknelm.getAuthor().toString();
101 public String getDate() {
102 // ------------------------
106 public Integer getIndex() {
107 // -------------------------
108 return myknelm.getIndex();
111 public Menu getMenu() {
112 // ----------------------
116 public ProgressState getProgressState() {
117 // ---------------------------------------
118 return myknelm.getProgressState();
121 public String getReference() {
122 // ----------------------------
123 return myknelm.getReference();
126 public KnowledgeElement getKnowledgeObject() {
127 // ---------------------------------------------
131 public String getTitle() {
132 // ------------------------
133 return myknelm.getTitle();
136 public String getType() {
137 // ------------------------
138 return ResourceBundle.getBundle("som",
139 ApplicationSettings.getCurrentLocale()).getString(
140 "type.knowledge." + myknelm.getType().getName());
143 public void setSelection(String step) {
144 // --------------------------------------
146 int index = Integer.valueOf(selection);
147 for (Iterator<Step> i = involving.iterator(); i.hasNext();) {
149 if (ustep.getNumber() == index)
152 menu.selects(selection);
153 setupContents(); // The contents may have changed even if the selection is the same
156 // ==============================================================================================================================
158 // ==============================================================================================================================
160 private List<Step> getAllSteps(Scenario scenar) {
161 // ------------------------------------------------
162 Vector<Step> result = new Vector<Step>();
163 Step[] step = getProjectElementService().getSteps(scenar);
165 int base = step[0].getNumber();
166 int last = step[step.length - 1].getNumber();
167 for (int i = 0; i < step.length; i++) {
170 step = getProjectElementService().getSteps(scenar.getOwnerStudy());
171 for (int i = step.length - 1; i > -1; i--) {
172 if (step[i].getNumber() >= base)
174 result.add(0, step[i]);
176 for (int i = 0; i < step.length; i++) {
177 if (step[i].getNumber() <= last)
185 * Get the projectElementService.
187 * @return the projectElementService
189 public ProjectElementService getProjectElementService() {
190 return _projectElementService;
194 * Set the projectElementService.
196 * @param projectElementService
197 * the projectElementService to set
199 public void setProjectElementService(
200 ProjectElementService projectElementService) {
201 _projectElementService = projectElementService;