1 package org.splat.simer;
5 import org.splat.service.KnowledgeElementService;
6 import org.splat.service.dto.KnowledgeElementDTO;
7 import org.splat.som.Step;
8 import org.splat.wapp.Constants;
11 * Display the found knowledge action.
13 public class DisplayKnowledgeAction extends AbstractDisplayAction {
18 private static final long serialVersionUID = 8473504456981431762L;
21 * Current knowledge element details.
23 protected transient OpenKnowledge _knelm = null;
26 * Injected knowledge element service.
28 private KnowledgeElementService _knowledgeElementService;
30 // =========================================================================
32 // =========================================================================
35 * Open the found knowledge element.
37 * @return SUCCESS if succeeded otherwise return ERROR
39 public String doOpen() {
40 _knelm = getOpenKnowledge();
41 if (_myindex == null) {
42 if (_selection != null) { // Re-opening (refreshing) the currently open knowledge
43 KnowledgeElementDTO kelm = getKnowledgeElementService()
44 .getKnowledgeElement(_knelm.getIndex());
45 _knelm = open(kelm); // Closes the previously open knowledge
46 _knelm.setSelection(_selection);
49 try { // Opening a knowledge from the search result
50 int index = Integer.valueOf(_myindex);
51 if (_knelm != null && _knelm.getIndex() == index) { // - The selected knowledge is currently open
52 if ((!getSession().containsKey(KNOWLEDGE_OPEN))
53 || getSession().get(KNOWLEDGE_OPEN) == null) {
54 getSession().put(KNOWLEDGE_OPEN, getOpenKnowledge()); // for the case of reopening the
56 _selection = _knelm.getSelection(); // Current selection
57 } else { // - The selected knowledge is new
58 KnowledgeElementDTO kelm = getKnowledgeElementService()
59 .getKnowledgeElement(index);
61 _selection = _knelm.getSelection(); // Default selection
63 } catch (Exception error) {
64 LOG.error("Reason:", error);
68 getSession().put("menu.knowledge", _knelm.getMenu());
70 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
71 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
72 Constants.KNOWLEDGE_MENU);
78 * Show the selected folder.
82 public String doSelectStep() {
83 _knelm = getOpenKnowledge();
85 if (_selection == null) { // Switch back to the current study
86 _selection = _knelm.getSelection();
87 } else { // Selection of a step of current study
88 _knelm.setSelection(_selection);
91 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
92 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
93 Constants.KNOWLEDGE_MENU);
99 * Perform an operation on a selected document in the presentation area.
103 public String doSelectDocument() {
104 Execute todo = Execute.valueOf(_action);
105 _knelm = getOpenKnowledge();
106 if (todo == Execute.develop) {
107 _knelm.developDocument(_myindex);
108 } else if (todo == Execute.reduce) {
109 _knelm.reduceHistory(_myindex);
110 } else if (todo == Execute.reduceall) {
111 _knelm.reduceDocument(_myindex);
114 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
115 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
116 Constants.KNOWLEDGE_MENU);
122 * Perform an operation on a knowledge in the presentation area.
126 public String doSelectKnowledge() {
127 Execute todo = Execute.valueOf(_action);
128 _knelm = getOpenKnowledge();
129 if (todo == Execute.develop) {
130 _knelm.developKnowledge(_myindex);
131 } else if (todo == Execute.reduce) {
132 _knelm.reduceKnowledge(_myindex);
135 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
136 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
137 Constants.KNOWLEDGE_MENU);
143 * Close the knowledge.
147 public String doClose() {
150 initializationScreenContext(Constants.NONE);
155 // =========================================================================
157 // =========================================================================
159 public List<DocumentFacade> getDocuments() {
160 return _knelm.getDisplayedDocuments();
163 public List<AbstractOpenObject.KnowledgeIterator> getKnowledges() {
164 return _knelm.getDisplayedKnowledges();
167 public List<SimulationContextFacade> getSimulationContexts() {
168 return _knelm.getDisplayedSimulationContexts();
171 public Step getSelectedStep() {
172 return _knelm.getSelectedStep();
176 public String getWriteAccess() {
181 * Get the knowledgeElementService.
183 * @return the knowledgeElementService
185 public KnowledgeElementService getKnowledgeElementService() {
186 return _knowledgeElementService;
190 * Set the knowledgeElementService.
192 * @param knowledgeElementService
193 * the knowledgeElementService to set
195 public void setKnowledgeElementService(
196 final KnowledgeElementService knowledgeElementService) {
197 _knowledgeElementService = knowledgeElementService;
201 * Get the knowledge element.
203 * @return the knowledge element
205 public OpenKnowledge getKnelm() {