1 package org.splat.simer;
3 import org.splat.dal.bo.kernel.User;
4 import org.splat.dal.bo.som.KnowledgeElement;
5 import org.splat.dal.bo.som.KnowledgeElementType;
6 import org.splat.dal.bo.som.Scenario;
7 import org.splat.service.KnowledgeElementService;
8 import org.splat.service.KnowledgeElementTypeService;
9 import org.splat.service.ScenarioService;
10 import org.splat.som.Step;
13 * Action for addition and modification of knowledge elements in the selected scenario.
15 public class EditKnowledgeElementAction extends DisplayStudyStepAction {
20 private static final long serialVersionUID = 4636919137087687068L;
23 * Edited knowledge element type.
25 private String type = null; // Edited knowledge type
27 * Edited knowledge element title.
29 private String title = null;
31 * Edited knowledge element value.
33 private String value = null;
35 * Injected scenario service.
37 private ScenarioService _scenarioService;
39 * Injected knowledge element service.
41 private KnowledgeElementService _knowledgeElementService;
43 * Injected knowledge element type service.
45 private KnowledgeElementTypeService _knowledgeElementTypeService;
48 * Value of the menu property.
49 * It can be: none, create, open, study, knowledge, sysadmin, help.
51 private String _menuProperty;
53 // ==============================================================================================================================
55 // ==============================================================================================================================
58 * Initialize the action. Get selected study from the session.
60 * @return SUCCESS if no exceptions
62 public String doInitialize() {
63 mystudy = getOpenStudy();
65 setMenuProperty("study");
66 initializationScreenContext(_menuProperty);
72 * Add a new or update an existing knowledge element of the selected scenario in the open study.
74 * @return SUCCESS if operation succeeded, ERROR if Runtime exception, otherwise INPUT
76 public String doSetKnowledge() {
78 setMenuProperty("study");
79 initializationScreenContext(_menuProperty);
82 User user = getConnectedUser();
83 mystudy = getOpenStudy();
85 Step step = mystudy.getSelectedStep();
86 Scenario scene = (Scenario) step.getOwner(); // It is necessarily a Scenario
88 if (title != null && value != null) { // Addition of a new Knowledge Element
89 KnowledgeElement.Properties kprop = new KnowledgeElement.Properties();
90 KnowledgeElementType ktype = getKnowledgeElementTypeService()
91 .selectType(Integer.valueOf(type));
92 kprop.setType(ktype).setTitle(title).setValue(value).setAuthor(
94 mystudy.add(getScenarioService().addKnowledgeElement(scene,
96 getMenu("study").selects(mystudy.getSelection()); // Updates the menu icon, in case of first added document
97 } else if (title != null) { // Renaming of an existing Knowledge Element
98 KnowledgeElement kelm = scene.getKnowledgeElement(Integer
100 getKnowledgeElementService().rename(kelm, title);
101 // Useless to update the open study
102 } else if (value != null) { // Edition of a knowledge
103 KnowledgeElement kelm = scene.getKnowledgeElement(Integer
105 getKnowledgeElementService().update(kelm, value);
106 mystudy.update(kelm); // For updating the truncated value
109 } catch (RuntimeException saverror) {
110 logger.error("Reason:", saverror);
112 } catch (Exception error) {
113 logger.error("Exception while saving a knowledge: ", error);
119 * Delete a knowledge element from the current scenario.
121 * @return SUCCESS if no exceptions
123 public String doDeleteKnowledge() {
124 mystudy = getOpenStudy();
125 Step step = mystudy.getSelectedStep();
126 Scenario scene = (Scenario) step.getOwner(); // It is necessarily a Scenario
128 KnowledgeElement kelm = scene.getKnowledgeElement(Integer
130 getScenarioService().removeKnowledgeElement(scene, kelm); // The knowledge element necessarily exists
132 mystudy.remove(kelm);
133 getMenu("study").selects(mystudy.getSelection()); // Updates the menu icon, in case of last removed document
135 setMenuProperty("study");
136 initializationScreenContext(_menuProperty);
141 // ==============================================================================================================================
142 // Getters and setters
143 // ==============================================================================================================================
146 * Get the type of the modified knowledge element.
148 * @return the knowledge type name
150 public String getKnowledgeType() {
151 // ---------------------------------
156 * Get the id of the modified knowledge element.
158 * @return the knowledge element id
160 public String getSelectedKnowledge() {
161 // -------------------------------------
166 * Set the type of the modified knowledge element.
169 * the knowledge type name
171 public void setKnowledgeType(String type) {
172 // ------------------------------------------
177 * Set the title of the modified knowledge element.
180 * the new knowledge title
182 public void setKnowledgeTitle(String title) {
183 // --------------------------------------------
188 * Set the value of the modified knowledge element.
191 * the knowledge value
193 public void setKnowledgeValue(String value) {
194 // --------------------------------------------
199 * Get the scenarioService.
201 * @return the scenarioService
203 public ScenarioService getScenarioService() {
204 return _scenarioService;
208 * Set the scenarioService.
210 * @param scenarioService
211 * the scenarioService to set
213 public void setScenarioService(ScenarioService scenarioService) {
214 _scenarioService = scenarioService;
218 * Get the knowledgeElementService.
220 * @return the knowledgeElementService
222 public KnowledgeElementService getKnowledgeElementService() {
223 return _knowledgeElementService;
227 * Set the knowledgeElementService.
229 * @param knowledgeElementService
230 * the knowledgeElementService to set
232 public void setKnowledgeElementService(
233 KnowledgeElementService knowledgeElementService) {
234 _knowledgeElementService = knowledgeElementService;
238 * Get the knowledgeElementTypeService.
239 * @return the knowledgeElementTypeService
241 public KnowledgeElementTypeService getKnowledgeElementTypeService() {
242 return _knowledgeElementTypeService;
246 * Set the knowledgeElementTypeService.
247 * @param knowledgeElementTypeService the knowledgeElementTypeService to set
249 public void setKnowledgeElementTypeService(
250 KnowledgeElementTypeService knowledgeElementTypeService) {
251 _knowledgeElementTypeService = knowledgeElementTypeService;
255 * Get the menuProperty.
256 * @return the menuProperty
258 public String getMenuProperty() {
259 return _menuProperty;
263 * Set the menuProperty.
264 * @param menuProperty the menuProperty to set
266 public void setMenuProperty(String menuProperty) {
267 this._menuProperty = menuProperty;