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.Constants;
15 import org.splat.wapp.SimpleMenu;
18 * Open knowledge details for presentation.
20 public class OpenKnowledge extends AbstractOpenObject {
23 * The open knowledge element DTO.
25 private transient KnowledgeElementDTO _myknelm = new KnowledgeElementDTO();
29 private transient String _credate;
32 * Knowledge element left menu.
34 public class Menu extends SimpleMenu {
36 * Build menu from the list of study steps.
41 public Menu(final List<Step> context) {
42 super("steps", "study");
45 for (Iterator<Step> k = context.iterator(); k.hasNext(); i++) {
47 int number = step.getNumber();
49 if (step.mayContain(KnowledgeElement.class)) {
50 j = i + 1; // Steps are numbered from 1 to N
52 if (step.isStarted()) {
53 icon = Constants.IMG_DONE;
55 icon = Constants.IMG_EMPTY;
57 addItem(String.valueOf(number), "folder.step." + number, icon,
58 "step-knowledge?selection=" + number);
60 this.selects(String.valueOf(j));
64 // ==============================================================================================================================
66 // ==============================================================================================================================
69 * Set the given knowledge as currently open.
72 * the knowledge element DTO
73 * @return the open knowledge presentation
75 public OpenKnowledge open(final KnowledgeElementDTO knelm) {
76 ResourceBundle label = ResourceBundle.getBundle("labels",
77 getApplicationSettings().getCurrentLocale());
78 ResourceBundle custom = ResourceBundle.getBundle("som",
79 getApplicationSettings().getCurrentLocale());
80 SimpleDateFormat convert = new SimpleDateFormat(custom
81 .getString("date.format"), getApplicationSettings()
83 StringBuffer value = new StringBuffer(knelm.getValue());
84 String sceneTitle = knelm.getScenarioTitle();
85 String studyTitle = knelm.getStudyTitle();
89 // Preparation of the display
90 _credate = convert.format(_myknelm.getDate());
91 // involving = getAllSteps(knelm.getOwnerScenario());
92 _involving = knelm.getInvolving();
93 _context = new ArrayList<SimulationContextFacade>();
94 _menu = new Menu(getInvolvedSteps());
95 _selection = _menu.getSelection(); // The default selection is set in the menu definition
96 int index = Integer.valueOf(_selection);
97 for (Iterator<Step> i = _involving.iterator(); i.hasNext();) {
99 if (next.getNumber() == index) {
102 for (Iterator<SimulationContext> j = next
103 .getAllSimulationContexts().iterator(); j.hasNext();) {
104 _context.add(new SimulationContextFacade(j.next(),
105 getProjectSettings().getAllSteps(),
106 getApplicationSettings()));
109 value.append("<p>").append("<b>").append(
110 label.getString("label.source")).append(":</b>").append("<br>")
111 .append(label.getString("label.study")).append(" \"")
112 .append(studyTitle/* scene.getOwnerStudy().getTitle() */)
113 .append("\",").append("<br>")
114 .append(sceneTitle/* scene.getTitle() */).append(".").append(
116 _description = value.toString();
117 setupContents(); // Initializes documents and knowledge at ustep
121 // ==============================================================================================================================
122 // Public member functions
123 // ==============================================================================================================================
125 public String getAuthorName() {
126 return _myknelm.getAuthor().toString();
129 public String getDate() {
133 public Long getIndex() {
134 return _myknelm.getIndex();
138 public Menu getMenu() {
142 public ProgressState getProgressState() {
143 return _myknelm.getProgressState();
146 public String getReference() {
147 return _myknelm.getReference();
150 public KnowledgeElementDTO getKnowledgeObject() {
154 public String getTitle() {
155 return _myknelm.getTitle();
158 public String getType() {
160 * RKV: return ResourceBundle.getBundle("som", getApplicationSettings().getCurrentLocale()).getString( "type.knowledge." +
161 * _myknelm.getType().getName());
166 public void setSelection(final String step) {
168 int index = Integer.valueOf(_selection);
169 for (Iterator<Step> i = _involving.iterator(); i.hasNext();) {
171 if (_ustep.getNumber() == index) {
175 _menu.selects(_selection);
176 setupContents(); // The contents may have changed even if the selection is the same