Salome HOME
Siman codebase is refactored. Spring beans are introduced in the context.
[tools/siman.git] / Workspace / Siman / src / org / splat / simer / OpenStudy.java
index d869148add43abd13a6089ac250dc860ecb64888..30f40f56865c7c307b295b3ebed331332768dfef 100644 (file)
@@ -18,22 +18,23 @@ import org.hibernate.HibernateException;
 import org.hibernate.Session;
 import org.hibernate.Transaction;
 import org.splat.kernel.Do;
-import org.splat.kernel.User;
+import org.splat.dal.bo.kernel.User;
 import org.splat.manox.Toolbox;
 import org.splat.manox.Writer;
-import org.splat.som.Database;
-import org.splat.som.Document;
-import org.splat.som.DocumentType;
-import org.splat.som.KnowledgeElement;
-import org.splat.som.ProgressState;
-import org.splat.som.ProjectSettings;
-import org.splat.som.Publication;
+import org.splat.dal.dao.som.Database;
+import org.splat.dal.bo.som.Document;
+import org.splat.dal.bo.som.DocumentType;
+import org.splat.dal.bo.som.KnowledgeElement;
+import org.splat.dal.bo.som.ProgressState;
+import org.splat.service.ProjectElementService;
+import org.splat.service.technical.ProjectSettingsService;
+import org.splat.dal.bo.som.Publication;
 import org.splat.som.Revision;
-import org.splat.som.Scenario;
-import org.splat.som.SimulationContext;
+import org.splat.dal.bo.som.Scenario;
+import org.splat.dal.bo.som.SimulationContext;
 import org.splat.som.Step;
 import org.splat.som.StepRights;
-import org.splat.som.Study;
+import org.splat.dal.bo.som.Study;
 import org.splat.som.StudyRights;
 import org.splat.wapp.ToolBar;
 
@@ -47,6 +48,8 @@ public class OpenStudy extends OpenObject implements OpenStudyServices {
     private  String      credate;
     private  String      lasdate;
     private  Publication selecdoc;
+       private ProjectSettingsService _projectSettingsService;
+       private ProjectElementService _projectElementService;
     
     protected final static Logger   logger = org.splat.simer.Action.logger;
     
@@ -58,7 +61,7 @@ public class OpenStudy extends OpenObject implements OpenStudyServices {
 //  -----------------------------------------
       ResourceBundle    custom    = ResourceBundle.getBundle("som", ApplicationSettings.getCurrentLocale());
          SimpleDateFormat  datstring = new SimpleDateFormat(custom.getString("date.format"));
-      Revision.Format   verstring = new Revision.Format(ProjectSettings.getRevisionPattern());
+      Revision.Format   verstring = new Revision.Format(getProjectSettings().getRevisionPattern());
 
       cuser       = user;                           // May be null if nobody connected
       mystudy     = study;
@@ -72,7 +75,7 @@ public class OpenStudy extends OpenObject implements OpenStudyServices {
       description = mystudy.getDescription();
       involving   = new ArrayList<Step>(1);
       context     = new ArrayList<SimulationContextFacade>();
-      ustep       = mystudy.getFirstStep();
+      ustep       = getProjectElementService().getFirstStep(mystudy);
       ustep.setActor(cuser);
       involving.add(ustep);
       for (Iterator<SimulationContext> i=ustep.getAllSimulationContexts().iterator(); i.hasNext(); ) {
@@ -290,10 +293,20 @@ public class OpenStudy extends OpenObject implements OpenStudyServices {
     protected void add (KnowledgeElement kelm) {
 //  ------------------------------------------
       KnowledgeElementFacade  facade = new KnowledgeElementFacade(kelm);
-      KnowledgeIterator       known  = knowledge.get(kelm.getType().getIndex() - 2);
+//RKV      KnowledgeIterator       known  = knowledge.get(kelm.getType().getIndex() - 2);
                                    // Knowledges are ordered by type index, from 0 to n-1, the first one being reserved (reason for -2)
-      knowpres.put(kelm.getIndex(), facade);
-      known.list.add(facade);       // Insert the new knowledge at the end of the corresponding knowledge type
+      //RKV:Begin: Find a knowledge iterator for appropriate knowledge type
+      KnowledgeIterator       known  = null;
+      for (KnowledgeIterator aKnowledgeSection : knowledge) {
+         if (aKnowledgeSection.getIndex().equals(String.valueOf(kelm.getType().getIndex()))) {
+                 known = aKnowledgeSection;
+                 break;
+         }
+      }
+      if (known != null) { //RKV:End
+             knowpres.put(kelm.getIndex(), facade);
+             known.list.add(facade);       // Insert the new knowledge at the end of the corresponding knowledge type
+      }
     }
 
     protected void remove (Publication doctag) {
@@ -389,17 +402,53 @@ public class OpenStudy extends OpenObject implements OpenStudyServices {
           scenar = branch[i];
           if (scenar.getIndex() == major) break;      // Supposed exist
        }
-       step = scenar.getSteps();
+       step = getProjectElementService().getSteps(scenar);
        base = step[0].getNumber() - 1;
        for (int i=0; i+base<minor; i++) {
                involving.add(step[i]);
        }
       }
-      step = mystudy.getSteps();
+      step = getProjectElementService().getSteps(mystudy);
       for (int i=step.length-1; i>-1; i--) {
          Step firstep = step[i];
          if(firstep.getNumber() > base) continue;
          involving.add(0, firstep);
       }
     }
+    
+    /**
+     * Get project settings.
+        * @return Project settings service
+        */
+       private ProjectSettingsService getProjectSettings() {
+               return _projectSettingsService;
+       }
+
+       /**
+        * Set project settings service.
+        * @param projectSettingsService project settings service
+        */
+       public void setProjectSettings(
+                       ProjectSettingsService projectSettingsService) {
+               _projectSettingsService = projectSettingsService;
+       }
+       /**
+        * Get the projectElementService.
+        * 
+        * @return the projectElementService
+        */
+       public ProjectElementService getProjectElementService() {
+               return _projectElementService;
+       }
+
+       /**
+        * Set the projectElementService.
+        * 
+        * @param projectElementService
+        *            the projectElementService to set
+        */
+       public void setProjectElementService(
+                       ProjectElementService projectElementService) {
+               _projectElementService = projectElementService;
+       }
 }
\ No newline at end of file