Salome HOME
DTO is introduced for knowledge elements. BeanHelper is modified so that setters...
[tools/siman.git] / Workspace / Siman / src / org / splat / simer / OpenKnowledge.java
index aa647707b1699a8e67ce634970bc363bf953cd89..63e7fff7e632f2cc4591989adc7a08c6c4429c3d 100644 (file)
@@ -5,23 +5,38 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ResourceBundle;
-import java.util.Vector;
 
 import org.splat.dal.bo.som.KnowledgeElement;
 import org.splat.dal.bo.som.ProgressState;
-import org.splat.dal.bo.som.Scenario;
 import org.splat.dal.bo.som.SimulationContext;
-import org.splat.service.ProjectElementService;
-import org.splat.service.technical.ProjectSettingsService;
+import org.splat.service.dto.KnowledgeElementDTO;
 import org.splat.som.Step;
 import org.splat.wapp.SimpleMenu;
 
+/**
+ * Open knowledge details for presentation.
+ */
 public class OpenKnowledge extends OpenObject {
 
-       private KnowledgeElement myknelm;
+       /**
+        * The open knowledge element DTO.
+        */
+       private KnowledgeElementDTO myknelm = new KnowledgeElementDTO();
+       /**
+        * Creation date.
+        */
        private String credate;
+
+       /**
+        * Knowledge element left menu.
+        */
        public class Menu extends SimpleMenu {
-               // ------------------------------------
+               /**
+                * Build menu from the list of study steps.
+                * 
+                * @param context
+                *            the list of steps
+                */
                public Menu(List<Step> context) {
                        super("steps", "study");
                        int i = 0;
@@ -47,22 +62,30 @@ public class OpenKnowledge extends OpenObject {
        // Constructor
        // ==============================================================================================================================
 
-       public OpenKnowledge open (KnowledgeElement knelm) {
-               // ---------------------------------------------
+       /**
+        * Set the given knowledge as currently open.
+        * 
+        * @param knelm
+        *            the knowledge element DTO
+        * @return the open knowledge presentation
+        */
+       public OpenKnowledge open(KnowledgeElementDTO knelm) {
                ResourceBundle label = ResourceBundle.getBundle("labels",
                                getApplicationSettings().getCurrentLocale());
                ResourceBundle custom = ResourceBundle.getBundle("som",
                                getApplicationSettings().getCurrentLocale());
-               SimpleDateFormat convert = new SimpleDateFormat(
-                               custom.getString("date.format"));
+               SimpleDateFormat convert = new SimpleDateFormat(custom
+                               .getString("date.format"));
                StringBuffer value = new StringBuffer(knelm.getValue());
-               Scenario scene = knelm.getOwnerScenario();
+               String sceneTitle = knelm.getScenarioTitle();
+               String studyTitle = knelm.getStudyTitle();
 
                myknelm = knelm;
 
                // Preparation of the display
                credate = convert.format(myknelm.getDate());
-               involving = getAllSteps(knelm.getOwnerScenario());
+               // involving = getAllSteps(knelm.getOwnerScenario());
+               involving = knelm.getInvolving();
                context = new ArrayList<SimulationContextFacade>();
                menu = new Menu(getInvolvedSteps());
                selection = menu.getSelection(); // The default selection is set in the menu definition
@@ -73,15 +96,17 @@ public class OpenKnowledge extends OpenObject {
                                ustep = next;
                        for (Iterator<SimulationContext> j = next
                                        .getAllSimulationContexts().iterator(); j.hasNext();) {
-                               context.add(new SimulationContextFacade(j.next(), getProjectSettings().getAllSteps()));
+                               context.add(new SimulationContextFacade(j.next(),
+                                               getProjectSettings().getAllSteps()));
                        }
                }
-               value.append("<p>").append("<b>")
-                               .append(label.getString("label.source")).append(":</b>")
-                               .append("<br>").append(label.getString("label.study"))
-                               .append("&nbsp\"").append(scene.getOwnerStudy().getTitle())
-                               .append("\",").append("<br>").append(scene.getTitle())
-                               .append(".").append("</p>");
+               value.append("<p>").append("<b>").append(
+                               label.getString("label.source")).append(":</b>").append("<br>")
+                               .append(label.getString("label.study")).append("&nbsp\"")
+                               .append(studyTitle/* scene.getOwnerStudy().getTitle() */)
+                               .append("\",").append("<br>")
+                               .append(sceneTitle/* scene.getTitle() */).append(".").append(
+                                               "</p>");
                description = value.toString();
                setupContents(); // Initializes documents and knowledge at ustep
                return this;
@@ -92,54 +117,44 @@ public class OpenKnowledge extends OpenObject {
        // ==============================================================================================================================
 
        public String getAuthorName() {
-               // -----------------------------
                return myknelm.getAuthor().toString();
        }
 
        public String getDate() {
-               // ------------------------
                return credate;
        }
 
        public Long getIndex() {
-               // -------------------------
                return myknelm.getIndex();
        }
 
        public Menu getMenu() {
-               // ----------------------
                return (Menu) menu;
        }
 
        public ProgressState getProgressState() {
-               // ---------------------------------------
                return myknelm.getProgressState();
        }
 
        public String getReference() {
-               // ----------------------------
                return myknelm.getReference();
        }
 
-       public KnowledgeElement getKnowledgeObject() {
-               // ---------------------------------------------
+       public KnowledgeElementDTO getKnowledgeObject() {
                return myknelm;
        }
 
        public String getTitle() {
-               // ------------------------
                return myknelm.getTitle();
        }
 
        public String getType() {
-               // ------------------------
                return ResourceBundle.getBundle("som",
                                getApplicationSettings().getCurrentLocale()).getString(
                                "type.knowledge." + myknelm.getType().getName());
        }
 
        public void setSelection(String step) {
-               // --------------------------------------
                selection = step;
                int index = Integer.valueOf(selection);
                for (Iterator<Step> i = involving.iterator(); i.hasNext();) {
@@ -150,33 +165,4 @@ public class OpenKnowledge extends OpenObject {
                menu.selects(selection);
                setupContents(); // The contents may have changed even if the selection is the same
        }
-
-       // ==============================================================================================================================
-       // Private services
-       // ==============================================================================================================================
-
-       private List<Step> getAllSteps(Scenario scenar) {
-               // ------------------------------------------------
-               Vector<Step> result = new Vector<Step>();
-               Step[] step = getProjectElementService().getSteps(scenar);
-
-               int base = step[0].getNumber();
-               int last = step[step.length - 1].getNumber();
-               for (int i = 0; i < step.length; i++) {
-                       result.add(step[i]);
-               }
-               step = getProjectElementService().getSteps(scenar.getOwnerStudy());
-               for (int i = step.length - 1; i > -1; i--) {
-                       if (step[i].getNumber() >= base)
-                               continue;
-                       result.add(0, step[i]);
-               }
-               for (int i = 0; i < step.length; i++) {
-                       if (step[i].getNumber() <= last)
-                               continue;
-                       result.add(step[i]);
-               }
-               return result;
-       }
-
 }
\ No newline at end of file