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;
-public class OpenKnowledge extends OpenObject {
-
- private KnowledgeElement myknelm;
- private String credate;
+/**
+ * Open knowledge details for presentation.
+ */
+public class OpenKnowledge extends AbstractOpenObject {
+
+ /**
+ * The open knowledge element DTO.
+ */
+ private transient KnowledgeElementDTO _myknelm = new KnowledgeElementDTO();
+ /**
+ * Creation date.
+ */
+ private transient String _credate;
+
+ /**
+ * Knowledge element left menu.
+ */
public class Menu extends SimpleMenu {
- // ------------------------------------
- public Menu(List<Step> context) {
+ /**
+ * Build menu from the list of study steps.
+ *
+ * @param context
+ * the list of steps
+ */
+ public Menu(final List<Step> context) {
super("steps", "study");
int i = 0;
int j = 0;
Step step = k.next();
int number = step.getNumber();
String icon;
- if (step.mayContain(KnowledgeElement.class))
+ if (step.mayContain(KnowledgeElement.class)) {
j = i + 1; // Steps are numbered from 1 to N
- if (!step.isStarted())
- icon = "icon.empty.png";
- else
+ }
+ if (step.isStarted()) {
icon = "icon.done.png";
+ } else {
+ icon = "icon.empty.png";
+ }
addItem(String.valueOf(number), "folder.step." + number, icon,
"step-knowledge?selection=" + number);
}
// 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(final 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;
+ _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();) {
+ _credate = convert.format(_myknelm.getDate());
+ // 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
+ int index = Integer.valueOf(_selection);
+ for (Iterator<Step> i = _involving.iterator(); i.hasNext();) {
Step next = i.next();
- if (next.getNumber() == index)
- ustep = next;
+ if (next.getNumber() == index) {
+ _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(" \"").append(scene.getOwnerStudy().getTitle())
- .append("\",").append("<br>").append(scene.getTitle())
- .append(".").append("</p>");
- description = value.toString();
+ value.append("<p>").append("<b>").append(
+ label.getString("label.source")).append(":</b>").append("<br>")
+ .append(label.getString("label.study")).append(" \"")
+ .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;
}
// ==============================================================================================================================
public String getAuthorName() {
- // -----------------------------
- return myknelm.getAuthor().toString();
+ return _myknelm.getAuthor().toString();
}
public String getDate() {
- // ------------------------
- return credate;
+ return _credate;
}
public Long getIndex() {
- // -------------------------
- return myknelm.getIndex();
+ return _myknelm.getIndex();
}
+ @Override
public Menu getMenu() {
- // ----------------------
- return (Menu) menu;
+ return (Menu) _menu;
}
public ProgressState getProgressState() {
- // ---------------------------------------
- return myknelm.getProgressState();
+ return _myknelm.getProgressState();
}
public String getReference() {
- // ----------------------------
- return myknelm.getReference();
+ return _myknelm.getReference();
}
- public KnowledgeElement getKnowledgeObject() {
- // ---------------------------------------------
- return myknelm;
+ public KnowledgeElementDTO getKnowledgeObject() {
+ return _myknelm;
}
public String getTitle() {
- // ------------------------
- return myknelm.getTitle();
+ return _myknelm.getTitle();
}
public String getType() {
- // ------------------------
return ResourceBundle.getBundle("som",
getApplicationSettings().getCurrentLocale()).getString(
- "type.knowledge." + myknelm.getType().getName());
+ "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)
+ public void setSelection(final 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);
+ _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