]> SALOME platform Git repositories - tools/siman.git/blob - Workspace/Siman/src/org/splat/simer/DisplayKnowledgeAction.java
Salome HOME
Update uses list functionality
[tools/siman.git] / Workspace / Siman / src / org / splat / simer / DisplayKnowledgeAction.java
1 package org.splat.simer;
2
3 import java.util.List;
4
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;
9
10 /**
11  * Display the found knowledge action.
12  */
13 public class DisplayKnowledgeAction extends AbstractDisplayAction {
14
15         /**
16          * Serial version ID.
17          */
18         private static final long serialVersionUID = 8473504456981431762L;
19
20         /**
21          * Current knowledge element details.
22          */
23         protected transient OpenKnowledge _knelm = null;
24
25         /**
26          * Injected knowledge element service.
27          */
28         private KnowledgeElementService _knowledgeElementService;
29
30         // =========================================================================
31         // Action methods
32         // =========================================================================
33
34         /**
35          * Open the found knowledge element.
36          * 
37          * @return SUCCESS if succeeded otherwise return ERROR
38          */
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);
47                         }
48                 } else {
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
55                                         }
56                                         _selection = _knelm.getSelection(); // Current selection
57                                 } else { // - The selected knowledge is new
58                                         KnowledgeElementDTO kelm = getKnowledgeElementService()
59                                                         .getKnowledgeElement(index);
60                                         _knelm = open(kelm);
61                                         _selection = _knelm.getSelection(); // Default selection
62                                 }
63                         } catch (Exception error) {
64                                 LOG.error("Reason:", error);
65                                 return ERROR;
66                         }
67                 }
68                 getSession().put("menu.knowledge", _knelm.getMenu());
69
70                 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
71                                 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
72                                 Constants.KNOWLEDGE_MENU);
73
74                 return SUCCESS;
75         }
76
77         /**
78          * Show the selected folder.
79          * 
80          * @return SUCCESS
81          */
82         public String doSelectStep() {
83                 _knelm = getOpenKnowledge();
84
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);
89                 }
90
91                 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
92                                 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
93                                 Constants.KNOWLEDGE_MENU);
94
95                 return SUCCESS;
96         }
97
98         /**
99          * Perform an operation on a selected document in the presentation area.
100          * 
101          * @return SUCCESS
102          */
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);
112                 }
113
114                 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
115                                 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
116                                 Constants.KNOWLEDGE_MENU);
117
118                 return SUCCESS;
119         }
120
121         /**
122          * Perform an operation on a knowledge in the presentation area.
123          * 
124          * @return SUCCESS
125          */
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);
133                 }
134
135                 initializationFullScreenContext(Constants.KNOWLEDGE_MENU,
136                                 Constants.KNOWLEDGE_MENU, Constants.FALSE, Constants.NONE,
137                                 Constants.KNOWLEDGE_MENU);
138
139                 return SUCCESS;
140         }
141
142         /**
143          * Close the knowledge.
144          * 
145          * @return SUCCESS
146          */
147         public String doClose() {
148                 closeKnowledge();
149
150                 initializationScreenContext(Constants.NONE);
151
152                 return SUCCESS;
153         }
154
155         // =========================================================================
156         // Getters
157         // =========================================================================
158
159         public List<DocumentFacade> getDocuments() {
160                 return _knelm.getDisplayedDocuments();
161         }
162
163         public List<AbstractOpenObject.KnowledgeIterator> getKnowledges() {
164                 return _knelm.getDisplayedKnowledges();
165         }
166
167         public List<SimulationContextFacade> getSimulationContexts() {
168                 return _knelm.getDisplayedSimulationContexts();
169         }
170
171         public Step getSelectedStep() {
172                 return _knelm.getSelectedStep();
173         }
174
175         @Override
176         public String getWriteAccess() {
177                 return "false";
178         }
179
180         /**
181          * Get the knowledgeElementService.
182          * 
183          * @return the knowledgeElementService
184          */
185         public KnowledgeElementService getKnowledgeElementService() {
186                 return _knowledgeElementService;
187         }
188
189         /**
190          * Set the knowledgeElementService.
191          * 
192          * @param knowledgeElementService
193          *            the knowledgeElementService to set
194          */
195         public void setKnowledgeElementService(
196                         final KnowledgeElementService knowledgeElementService) {
197                 _knowledgeElementService = knowledgeElementService;
198         }
199
200         /**
201          * Get the knowledge element.
202          * 
203          * @return the knowledge element
204          */
205         public OpenKnowledge getKnelm() {
206                 return _knelm;
207         }
208 }