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