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;
9 import org.splat.dal.bo.som.KnowledgeElement;
10 import org.splat.dal.bo.som.ProgressState;
11 import org.splat.dal.bo.som.SimulationContext;
12 import org.splat.service.dto.KnowledgeElementDTO;
13 import org.splat.som.Step;
14 import org.splat.wapp.SimpleMenu;
17 * Open knowledge details for presentation.
19 public class OpenKnowledge extends OpenObject {
22 * The open knowledge element DTO.
24 private KnowledgeElementDTO myknelm = new KnowledgeElementDTO();
28 private String credate;
31 * Knowledge element left menu.
33 public class Menu extends SimpleMenu {
35 * Build menu from the list of study steps.
40 public Menu(List<Step> context) {
41 super("steps", "study");
44 for (Iterator<Step> k = context.iterator(); k.hasNext(); i++) {
46 int number = step.getNumber();
48 if (step.mayContain(KnowledgeElement.class))
49 j = i + 1; // Steps are numbered from 1 to N
50 if (!step.isStarted())
51 icon = "icon.empty.png";
53 icon = "icon.done.png";
54 addItem(String.valueOf(number), "folder.step." + number, icon,
55 "step-knowledge?selection=" + number);
57 this.selects(String.valueOf(j));
61 // ==============================================================================================================================
63 // ==============================================================================================================================
66 * Set the given knowledge as currently open.
69 * the knowledge element DTO
70 * @return the open knowledge presentation
72 public OpenKnowledge open(KnowledgeElementDTO knelm) {
73 ResourceBundle label = ResourceBundle.getBundle("labels",
74 getApplicationSettings().getCurrentLocale());
75 ResourceBundle custom = ResourceBundle.getBundle("som",
76 getApplicationSettings().getCurrentLocale());
77 SimpleDateFormat convert = new SimpleDateFormat(custom
78 .getString("date.format"));
79 StringBuffer value = new StringBuffer(knelm.getValue());
80 String sceneTitle = knelm.getScenarioTitle();
81 String studyTitle = knelm.getStudyTitle();
85 // Preparation of the display
86 credate = convert.format(myknelm.getDate());
87 // involving = getAllSteps(knelm.getOwnerScenario());
88 involving = knelm.getInvolving();
89 context = new ArrayList<SimulationContextFacade>();
90 menu = new Menu(getInvolvedSteps());
91 selection = menu.getSelection(); // The default selection is set in the menu definition
92 int index = Integer.valueOf(selection);
93 for (Iterator<Step> i = involving.iterator(); i.hasNext();) {
95 if (next.getNumber() == index)
97 for (Iterator<SimulationContext> j = next
98 .getAllSimulationContexts().iterator(); j.hasNext();) {
99 context.add(new SimulationContextFacade(j.next(),
100 getProjectSettings().getAllSteps()));
103 value.append("<p>").append("<b>").append(
104 label.getString("label.source")).append(":</b>").append("<br>")
105 .append(label.getString("label.study")).append(" \"")
106 .append(studyTitle/* scene.getOwnerStudy().getTitle() */)
107 .append("\",").append("<br>")
108 .append(sceneTitle/* scene.getTitle() */).append(".").append(
110 description = value.toString();
111 setupContents(); // Initializes documents and knowledge at ustep
115 // ==============================================================================================================================
116 // Public member functions
117 // ==============================================================================================================================
119 public String getAuthorName() {
120 return myknelm.getAuthor().toString();
123 public String getDate() {
127 public Long getIndex() {
128 return myknelm.getIndex();
131 public Menu getMenu() {
135 public ProgressState getProgressState() {
136 return myknelm.getProgressState();
139 public String getReference() {
140 return myknelm.getReference();
143 public KnowledgeElementDTO getKnowledgeObject() {
147 public String getTitle() {
148 return myknelm.getTitle();
151 public String getType() {
152 return ResourceBundle.getBundle("som",
153 getApplicationSettings().getCurrentLocale()).getString(
154 "type.knowledge." + myknelm.getType().getName());
157 public void setSelection(String step) {
159 int index = Integer.valueOf(selection);
160 for (Iterator<Step> i = involving.iterator(); i.hasNext();) {
162 if (ustep.getNumber() == index)
165 menu.selects(selection);
166 setupContents(); // The contents may have changed even if the selection is the same