1 package org.splat.simer;
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;
12 public class DisplayKnowledgeAction extends DisplayBaseAction {
14 protected OpenKnowledge myknelm = null; // Knowledge Element details
16 private static final long serialVersionUID = 8473504456981431762L;
18 // ==============================================================================================================================
20 // ==============================================================================================================================
22 public String doOpen () {
23 // -----------------------
24 Session connex = Database.getSession();
25 Transaction transax = connex.beginTransaction();
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);
35 selection = myknelm.getSelection(); // Default selection
38 catch (Exception error) {
39 logger.error("Reason:", error);
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);
47 getSession().put("menu.knowledge", myknelm.getMenu());
53 public String doSelectStep () {
54 // -----------------------------
55 Session connex = Database.getSession();
56 Transaction transax = connex.beginTransaction();
58 myknelm = getOpenKnowledge();
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);
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);
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);
88 public String doClose () {
89 // ------------------------
93 // ==============================================================================================================================
95 // ==============================================================================================================================
97 public List<DocumentFacade> getDocuments () {
98 // --------------------------------------------
99 return myknelm.getDisplayedDocuments();
101 public List<OpenObject.KnowledgeIterator> getKnowledges () {
102 // ----------------------------------------------------------
103 return myknelm.getDisplayedKnowledges();
105 public List<SimulationContextFacade> getSimulationContexts () {
106 // -------------------------------------------------------------
107 return myknelm.getDisplayedSimulationContexts();
109 public Step getSelectedStep () {
110 // ------------------------------
111 return myknelm.getSelectedStep();
113 public String getWriteAccess () {
114 // -------------------------------