Salome HOME
Refactoring continues: UserService is created instead of UserDirectory. Database...
[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.hibernate.Session;
6 import org.hibernate.Transaction;
7 import org.splat.dal.dao.som.Database;
8 import org.splat.dal.bo.som.KnowledgeElement;
9 import org.splat.service.KnowledgeElementService;
10 import org.splat.som.Step;
11
12
13 public class DisplayKnowledgeAction extends DisplayBaseAction {
14
15         protected  OpenKnowledge  myknelm   = null;    // Knowledge Element details
16
17         private KnowledgeElementService _knowledgeElementService;
18     
19         private static final long serialVersionUID = 8473504456981431762L;
20
21 //  ==============================================================================================================================
22 //  Action methods
23 //  ==============================================================================================================================
24
25     public String doOpen () {
26 //  -----------------------
27       Session      connex  = Database.getCurSession();
28       Transaction  transax = connex.beginTransaction();
29
30       myknelm = getOpenKnowledge();
31       if (myindex != null) try {                                // Opening a knowledge from the search result
32         int index = Integer.valueOf(myindex);
33         if (myknelm != null && myknelm.getIndex() == index) {   // - The selected knowledge is currently open
34           selection = myknelm.getSelection();        // Current selection
35         } else {                                                // - The selected knowledge is new
36           KnowledgeElement kelm = getKnowledgeElementService().selectKnowledgeElement(index);
37           myknelm   = open(kelm);
38           selection = myknelm.getSelection();        // Default selection
39         }
40       }
41       catch (Exception error) {
42         logger.error("Reason:", error);
43         return ERROR;
44       }
45       else if (selection != null) {                             // Re-opening (refreshing) the currently open knowledge
46             KnowledgeElement kelm = getKnowledgeElementService().selectKnowledgeElement(myknelm.getIndex());
47             myknelm  =  open(kelm);                      // Closes the previously open knowledge
48             myknelm.setSelection(selection);
49       }      
50       getSession().put("menu.knowledge", myknelm.getMenu());
51
52       transax.commit();
53       return SUCCESS;
54     }
55
56     public String doSelectStep () {
57 //  -----------------------------
58       Session      connex  = Database.getCurSession();
59       Transaction  transax = connex.beginTransaction();
60
61       myknelm = getOpenKnowledge();
62
63       if (selection == null) {     // Switch back to the current study
64         selection = myknelm.getSelection();
65       } else {                         // Selection of a step of current study
66         myknelm.setSelection(selection);
67       }
68       transax.commit();
69       return SUCCESS;
70     }
71     
72     public String doSelectDocument () {
73 //  ---------------------------------
74       Execute todo = Execute.valueOf(action);
75       myknelm = getOpenKnowledge();
76       if      (todo == Execute.develop)   myknelm.developDocument(myindex);
77       else if (todo == Execute.reduce)    myknelm.reduceHistory(myindex);
78       else if (todo == Execute.reduceall) myknelm.reduceDocument(myindex);
79       return SUCCESS;
80     }
81
82     public String doSelectKnowledge () {
83 //  ----------------------------------
84       Execute  todo = Execute.valueOf(action);
85       myknelm = getOpenKnowledge();
86       if      (todo == Execute.develop)   myknelm.developKnowledge(myindex);
87       else if (todo == Execute.reduce)    myknelm.reduceKnowledge(myindex);
88       return SUCCESS;
89     }
90
91     public String doClose () {
92 //  ------------------------
93       closeKnowledge();
94       return SUCCESS;
95     }
96 //  ==============================================================================================================================
97 //  Getters
98 //  ==============================================================================================================================
99
100     public List<DocumentFacade> getDocuments () {
101 //  --------------------------------------------
102       return myknelm.getDisplayedDocuments();
103     }
104     public List<OpenObject.KnowledgeIterator> getKnowledges () {
105 //  ----------------------------------------------------------
106       return myknelm.getDisplayedKnowledges();
107     }
108     public List<SimulationContextFacade> getSimulationContexts () {
109 //  -------------------------------------------------------------
110       return myknelm.getDisplayedSimulationContexts();
111     }
112     public Step getSelectedStep () {
113 //  ------------------------------
114       return myknelm.getSelectedStep();
115     }
116     public String getWriteAccess () {
117 //  -------------------------------
118       return "false";
119     }
120
121         /**
122          * Get the knowledgeElementService.
123          * @return the knowledgeElementService
124          */
125         public KnowledgeElementService getKnowledgeElementService() {
126                 return _knowledgeElementService;
127         }
128
129         /**
130          * Set the knowledgeElementService.
131          * @param knowledgeElementService the knowledgeElementService to set
132          */
133         public void setKnowledgeElementService(
134                         KnowledgeElementService knowledgeElementService) {
135                 _knowledgeElementService = knowledgeElementService;
136         }
137 }