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 transient KnowledgeElementDTO _myknelm = new KnowledgeElementDTO();
28 private transient 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(final 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
51 if (step.isStarted()) {
52 icon = "icon.done.png";
54 icon = "icon.empty.png";
56 addItem(String.valueOf(number), "folder.step." + number, icon,
57 "step-knowledge?selection=" + number);
59 this.selects(String.valueOf(j));
63 // ==============================================================================================================================
65 // ==============================================================================================================================
68 * Set the given knowledge as currently open.
71 * the knowledge element DTO
72 * @return the open knowledge presentation
74 public OpenKnowledge open(final KnowledgeElementDTO knelm) {
75 ResourceBundle label = ResourceBundle.getBundle("labels",
76 getApplicationSettings().getCurrentLocale());
77 ResourceBundle custom = ResourceBundle.getBundle("som",
78 getApplicationSettings().getCurrentLocale());
79 SimpleDateFormat convert = new SimpleDateFormat(custom
80 .getString("date.format"));
81 StringBuffer value = new StringBuffer(knelm.getValue());
82 String sceneTitle = knelm.getScenarioTitle();
83 String studyTitle = knelm.getStudyTitle();
87 // Preparation of the display
88 _credate = convert.format(_myknelm.getDate());
89 // involving = getAllSteps(knelm.getOwnerScenario());
90 involving = knelm.getInvolving();
91 context = new ArrayList<SimulationContextFacade>();
92 menu = new Menu(getInvolvedSteps());
93 selection = menu.getSelection(); // The default selection is set in the menu definition
94 int index = Integer.valueOf(selection);
95 for (Iterator<Step> i = involving.iterator(); i.hasNext();) {
97 if (next.getNumber() == index) {
100 for (Iterator<SimulationContext> j = next
101 .getAllSimulationContexts().iterator(); j.hasNext();) {
102 context.add(new SimulationContextFacade(j.next(),
103 getProjectSettings().getAllSteps()));
106 value.append("<p>").append("<b>").append(
107 label.getString("label.source")).append(":</b>").append("<br>")
108 .append(label.getString("label.study")).append(" \"")
109 .append(studyTitle/* scene.getOwnerStudy().getTitle() */)
110 .append("\",").append("<br>")
111 .append(sceneTitle/* scene.getTitle() */).append(".").append(
113 description = value.toString();
114 setupContents(); // Initializes documents and knowledge at ustep
118 // ==============================================================================================================================
119 // Public member functions
120 // ==============================================================================================================================
122 public String getAuthorName() {
123 return _myknelm.getAuthor().toString();
126 public String getDate() {
130 public Long getIndex() {
131 return _myknelm.getIndex();
135 public Menu getMenu() {
139 public ProgressState getProgressState() {
140 return _myknelm.getProgressState();
143 public String getReference() {
144 return _myknelm.getReference();
147 public KnowledgeElementDTO getKnowledgeObject() {
151 public String getTitle() {
152 return _myknelm.getTitle();
155 public String getType() {
156 return ResourceBundle.getBundle("som",
157 getApplicationSettings().getCurrentLocale()).getString(
158 "type.knowledge." + _myknelm.getType().getName());
161 public void setSelection(final String step) {
163 int index = Integer.valueOf(selection);
164 for (Iterator<Step> i = involving.iterator(); i.hasNext();) {
166 if (ustep.getNumber() == index) {
170 menu.selects(selection);
171 setupContents(); // The contents may have changed even if the selection is the same