import java.util.ResourceBundle;
import java.util.Vector;
-import org.splat.som.KnowledgeElement;
-import org.splat.som.ProgressState;
-import org.splat.som.Scenario;
-import org.splat.som.SimulationContext;
+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.som.Step;
import org.splat.wapp.SimpleMenu;
-
public class OpenKnowledge extends OpenObject {
- private KnowledgeElement myknelm ;
- private String credate;
+ private KnowledgeElement myknelm;
+ private String credate;
+ private ProjectElementService _projectElementService;
public class Menu extends SimpleMenu {
-// ------------------------------------
- public Menu (List<Step> context)
- {
- super("steps", "study");
- int i = 0;
- int j = 0;
- for (Iterator<Step> k=context.iterator(); k.hasNext(); i++) {
- Step step = k.next();
- int number = step.getNumber();
- String icon;
- if (step.mayContain(KnowledgeElement.class)) j = i + 1; // Steps are numbered from 1 to N
- if (!step.isStarted()) icon = "icon.empty.png";
- else icon = "icon.done.png";
- addItem(String.valueOf(number), "folder.step." + number, icon, "step-knowledge?selection=" + number);
- }
- this.selects(String.valueOf(j));
- }
- }
-
-// ==============================================================================================================================
-// Constructor
-// ==============================================================================================================================
-
- public OpenKnowledge (KnowledgeElement knelm) {
-// ---------------------------------------------
- ResourceBundle label = ResourceBundle.getBundle("labels", ApplicationSettings.getCurrentLocale());
- ResourceBundle custom = ResourceBundle.getBundle("som", ApplicationSettings.getCurrentLocale());
- SimpleDateFormat convert = new SimpleDateFormat(custom.getString("date.format"));
- StringBuffer value = new StringBuffer(knelm.getValue());
- Scenario scene = knelm.getOwnerScenario();
-
- myknelm = knelm;
-
-// Preparation of the display
- credate = convert.format(myknelm.getDate());
- involving = getAllSteps(knelm.getOwnerScenario());
- context = new ArrayList<SimulationContextFacade>();
- menu = new Menu(getInvolvedSteps());
- selection = menu.getSelection(); // The default selection is set in the menu definition
- int index = Integer.valueOf(selection);
- for (Iterator<Step> i=involving.iterator(); i.hasNext();) {
- Step next = i.next();
- if (next.getNumber() == index) ustep = next;
- for (Iterator<SimulationContext> j=next.getAllSimulationContexts().iterator(); j.hasNext(); ) {
- context.add( new SimulationContextFacade(j.next()) );
- }
- }
- value.append("<p>")
- .append("<b>").append(label.getString("label.source")).append(":</b>")
- .append("<br>").append(label.getString("label.study")).append(" \"").append(scene.getOwnerStudy().getTitle()).append("\",")
- .append("<br>").append(scene.getTitle()).append(".")
- .append("</p>");
- description = value.toString();
- setupContents(); // Initializes documents and knowledge at ustep
- }
-
-// ==============================================================================================================================
-// Public member functions
-// ==============================================================================================================================
-
- public String getAuthorName() {
-// -----------------------------
- return myknelm.getAuthor().toString();
- }
- public String getDate () {
-// ------------------------
- return credate;
- }
- public Integer 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 () {
-// ---------------------------------------------
- return myknelm;
- }
- public String getTitle() {
-// ------------------------
- return myknelm.getTitle();
- }
- public String getType () {
-// ------------------------
- return ResourceBundle.getBundle("som", ApplicationSettings.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();) {
- ustep = i.next();
- if (ustep.getNumber() == index) break;
- }
- 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 = scenar.getSteps();
-
- 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 = scenar.getOwnerStudy().getSteps();
- 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;
- }
+ // ------------------------------------
+ public Menu(List<Step> context) {
+ super("steps", "study");
+ int i = 0;
+ int j = 0;
+ for (Iterator<Step> k = context.iterator(); k.hasNext(); i++) {
+ Step step = k.next();
+ int number = step.getNumber();
+ String icon;
+ if (step.mayContain(KnowledgeElement.class))
+ j = i + 1; // Steps are numbered from 1 to N
+ if (!step.isStarted())
+ icon = "icon.empty.png";
+ else
+ icon = "icon.done.png";
+ addItem(String.valueOf(number), "folder.step." + number, icon,
+ "step-knowledge?selection=" + number);
+ }
+ this.selects(String.valueOf(j));
+ }
+ }
+
+ // ==============================================================================================================================
+ // Constructor
+ // ==============================================================================================================================
+
+ public OpenKnowledge(KnowledgeElement knelm) {
+ // ---------------------------------------------
+ ResourceBundle label = ResourceBundle.getBundle("labels",
+ ApplicationSettings.getCurrentLocale());
+ ResourceBundle custom = ResourceBundle.getBundle("som",
+ ApplicationSettings.getCurrentLocale());
+ SimpleDateFormat convert = new SimpleDateFormat(
+ custom.getString("date.format"));
+ StringBuffer value = new StringBuffer(knelm.getValue());
+ Scenario scene = knelm.getOwnerScenario();
+
+ myknelm = knelm;
+
+ // Preparation of the display
+ credate = convert.format(myknelm.getDate());
+ involving = getAllSteps(knelm.getOwnerScenario());
+ context = new ArrayList<SimulationContextFacade>();
+ menu = new Menu(getInvolvedSteps());
+ selection = menu.getSelection(); // The default selection is set in the menu definition
+ int index = Integer.valueOf(selection);
+ for (Iterator<Step> i = involving.iterator(); i.hasNext();) {
+ Step next = i.next();
+ if (next.getNumber() == index)
+ ustep = next;
+ for (Iterator<SimulationContext> j = next
+ .getAllSimulationContexts().iterator(); j.hasNext();) {
+ context.add(new SimulationContextFacade(j.next()));
+ }
+ }
+ value.append("<p>").append("<b>")
+ .append(label.getString("label.source")).append(":</b>")
+ .append("<br>").append(label.getString("label.study"))
+ .append(" \"").append(scene.getOwnerStudy().getTitle())
+ .append("\",").append("<br>").append(scene.getTitle())
+ .append(".").append("</p>");
+ description = value.toString();
+ setupContents(); // Initializes documents and knowledge at ustep
+ }
+
+ // ==============================================================================================================================
+ // Public member functions
+ // ==============================================================================================================================
+
+ public String getAuthorName() {
+ // -----------------------------
+ return myknelm.getAuthor().toString();
+ }
+
+ public String getDate() {
+ // ------------------------
+ return credate;
+ }
+
+ public Integer 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() {
+ // ---------------------------------------------
+ return myknelm;
+ }
+
+ public String getTitle() {
+ // ------------------------
+ return myknelm.getTitle();
+ }
+
+ public String getType() {
+ // ------------------------
+ return ResourceBundle.getBundle("som",
+ ApplicationSettings.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();) {
+ ustep = i.next();
+ if (ustep.getNumber() == index)
+ break;
+ }
+ 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;
+ }
+
+ /**
+ * 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