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;
10 public class DisplayKnowledgeAction extends AbstractDisplayAction {
15 private static final long serialVersionUID = 8473504456981431762L;
18 * Current knowledge element details.
20 protected transient OpenKnowledge _myknelm = null;
23 * Injected knowledge element service.
25 private KnowledgeElementService _knowledgeElementService;
27 // ==============================================================================================================================
29 // ==============================================================================================================================
31 public String doOpen() {
32 _myknelm = getOpenKnowledge();
33 if (_myindex == null) {
34 if (_selection != null) { // Re-opening (refreshing) the currently open knowledge
35 KnowledgeElementDTO kelm = getKnowledgeElementService()
36 .getKnowledgeElement(_myknelm.getIndex());
37 _myknelm = open(kelm); // Closes the previously open knowledge
38 _myknelm.setSelection(_selection);
41 try { // Opening a knowledge from the search result
42 int index = Integer.valueOf(_myindex);
43 if (_myknelm != null && _myknelm.getIndex() == index) { // - The selected knowledge is currently open
44 _selection = _myknelm.getSelection(); // Current selection
45 } else { // - The selected knowledge is new
46 KnowledgeElementDTO kelm = getKnowledgeElementService()
47 .getKnowledgeElement(index);
48 _myknelm = open(kelm);
49 _selection = _myknelm.getSelection(); // Default selection
51 } catch (Exception error) {
52 LOG.error("Reason:", error);
56 getSession().put("menu.knowledge", _myknelm.getMenu());
58 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
59 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
60 Constants.KNOWLEDGE_MENU);
65 public String doSelectStep() {
66 _myknelm = getOpenKnowledge();
68 if (_selection == null) { // Switch back to the current study
69 _selection = _myknelm.getSelection();
70 } else { // Selection of a step of current study
71 _myknelm.setSelection(_selection);
74 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
75 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
76 Constants.KNOWLEDGE_MENU);
81 public String doSelectDocument() {
82 Execute todo = Execute.valueOf(_action);
83 _myknelm = getOpenKnowledge();
84 if (todo == Execute.develop) {
85 _myknelm.developDocument(_myindex);
86 } else if (todo == Execute.reduce) {
87 _myknelm.reduceHistory(_myindex);
88 } else if (todo == Execute.reduceall) {
89 _myknelm.reduceDocument(_myindex);
92 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
93 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
94 Constants.KNOWLEDGE_MENU);
99 public String doSelectKnowledge() {
100 Execute todo = Execute.valueOf(_action);
101 _myknelm = getOpenKnowledge();
102 if (todo == Execute.develop) {
103 _myknelm.developKnowledge(_myindex);
104 } else if (todo == Execute.reduce) {
105 _myknelm.reduceKnowledge(_myindex);
108 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
109 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
110 Constants.KNOWLEDGE_MENU);
115 public String doClose() {
118 initializationScreenContext(Constants.NONE);
123 // ==============================================================================================================================
125 // ==============================================================================================================================
127 public List<DocumentFacade> getDocuments() {
128 return _myknelm.getDisplayedDocuments();
131 public List<AbstractOpenObject.KnowledgeIterator> getKnowledges() {
132 return _myknelm.getDisplayedKnowledges();
135 public List<SimulationContextFacade> getSimulationContexts() {
136 return _myknelm.getDisplayedSimulationContexts();
139 public Step getSelectedStep() {
140 return _myknelm.getSelectedStep();
144 public String getWriteAccess() {
149 * Get the knowledgeElementService.
151 * @return the knowledgeElementService
153 public KnowledgeElementService getKnowledgeElementService() {
154 return _knowledgeElementService;
158 * Set the knowledgeElementService.
160 * @param knowledgeElementService
161 * the knowledgeElementService to set
163 public void setKnowledgeElementService(
164 final KnowledgeElementService knowledgeElementService) {
165 _knowledgeElementService = knowledgeElementService;