]> SALOME platform Git repositories - tools/siman.git/blob - Workspace/Siman/src/org/splat/simer/OpenKnowledge.java
Salome HOME
Modifications to respect PMD rules.
[tools/siman.git] / Workspace / Siman / src / org / splat / simer / OpenKnowledge.java
1 package org.splat.simer;
2
3 import java.text.SimpleDateFormat;
4 import java.util.ArrayList;
5 import java.util.Iterator;
6 import java.util.List;
7 import java.util.ResourceBundle;
8
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;
15
16 /**
17  * Open knowledge details for presentation.
18  */
19 public class OpenKnowledge extends AbstractOpenObject {
20
21         /**
22          * The open knowledge element DTO.
23          */
24         private transient KnowledgeElementDTO _myknelm = new KnowledgeElementDTO();
25         /**
26          * Creation date.
27          */
28         private transient String _credate;
29
30         /**
31          * Knowledge element left menu.
32          */
33         public class Menu extends SimpleMenu {
34                 /**
35                  * Build menu from the list of study steps.
36                  * 
37                  * @param context
38                  *            the list of steps
39                  */
40                 public Menu(final List<Step> context) {
41                         super("steps", "study");
42                         int i = 0;
43                         int j = 0;
44                         for (Iterator<Step> k = context.iterator(); k.hasNext(); i++) {
45                                 Step step = k.next();
46                                 int number = step.getNumber();
47                                 String icon;
48                                 if (step.mayContain(KnowledgeElement.class)) {
49                                         j = i + 1; // Steps are numbered from 1 to N
50                                 }
51                                 if (step.isStarted()) {
52                                         icon = "icon.done.png";
53                                 } else {
54                                         icon = "icon.empty.png";
55                                 }
56                                 addItem(String.valueOf(number), "folder.step." + number, icon,
57                                                 "step-knowledge?selection=" + number);
58                         }
59                         this.selects(String.valueOf(j));
60                 }
61         }
62
63         // ==============================================================================================================================
64         // Constructor
65         // ==============================================================================================================================
66
67         /**
68          * Set the given knowledge as currently open.
69          * 
70          * @param knelm
71          *            the knowledge element DTO
72          * @return the open knowledge presentation
73          */
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();
84
85                 _myknelm = knelm;
86
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();) {
96                         Step next = i.next();
97                         if (next.getNumber() == index) {
98                                 _ustep = next;
99                         }
100                         for (Iterator<SimulationContext> j = next
101                                         .getAllSimulationContexts().iterator(); j.hasNext();) {
102                                 _context.add(new SimulationContextFacade(j.next(),
103                                                 getProjectSettings().getAllSteps()));
104                         }
105                 }
106                 value.append("<p>").append("<b>").append(
107                                 label.getString("label.source")).append(":</b>").append("<br>")
108                                 .append(label.getString("label.study")).append("&nbsp\"")
109                                 .append(studyTitle/* scene.getOwnerStudy().getTitle() */)
110                                 .append("\",").append("<br>")
111                                 .append(sceneTitle/* scene.getTitle() */).append(".").append(
112                                                 "</p>");
113                 _description = value.toString();
114                 setupContents(); // Initializes documents and knowledge at ustep
115                 return this;
116         }
117
118         // ==============================================================================================================================
119         // Public member functions
120         // ==============================================================================================================================
121
122         public String getAuthorName() {
123                 return _myknelm.getAuthor().toString();
124         }
125
126         public String getDate() {
127                 return _credate;
128         }
129
130         public Long getIndex() {
131                 return _myknelm.getIndex();
132         }
133
134         @Override
135         public Menu getMenu() {
136                 return (Menu) _menu;
137         }
138
139         public ProgressState getProgressState() {
140                 return _myknelm.getProgressState();
141         }
142
143         public String getReference() {
144                 return _myknelm.getReference();
145         }
146
147         public KnowledgeElementDTO getKnowledgeObject() {
148                 return _myknelm;
149         }
150
151         public String getTitle() {
152                 return _myknelm.getTitle();
153         }
154
155         public String getType() {
156                 return ResourceBundle.getBundle("som",
157                                 getApplicationSettings().getCurrentLocale()).getString(
158                                 "type.knowledge." + _myknelm.getType().getName());
159         }
160
161         public void setSelection(final String step) {
162                 _selection = step;
163                 int index = Integer.valueOf(_selection);
164                 for (Iterator<Step> i = _involving.iterator(); i.hasNext();) {
165                         _ustep = i.next();
166                         if (_ustep.getNumber() == index) {
167                                 break;
168                         }
169                 }
170                 _menu.selects(_selection);
171                 setupContents(); // The contents may have changed even if the selection is the same
172         }
173 }