import java.util.List;
import java.util.ResourceBundle;
-import org.apache.log4j.Logger;
import org.splat.dal.bo.kernel.User;
import org.splat.dal.bo.som.Document;
import org.splat.dal.bo.som.DocumentType;
import org.splat.dal.bo.som.SimulationContext;
import org.splat.dal.bo.som.Study;
import org.splat.kernel.Do;
+import org.splat.log.AppLogger;
import org.splat.manox.Toolbox;
import org.splat.manox.Writer;
import org.splat.service.DocumentService;
import org.splat.som.StepRights;
import org.splat.som.StudyRights;
import org.splat.util.BeanHelper;
+import org.splat.wapp.Constants;
import org.splat.wapp.ToolBar;
+/**
+ * Presentation of the currently open study.
+ */
public class OpenStudy extends AbstractOpenObject implements OpenStudyServices {
/**
* Serial version ID.
*/
- protected final static Logger LOGGER = org.splat.simer.Action.LOG;
+ protected final static AppLogger LOGGER = org.splat.simer.Action.LOG;
+ /**
+ * The currently open study.
+ */
private transient Study _mystudy;
/**
* User rights on the open study.
ResourceBundle custom = ResourceBundle.getBundle("som",
getApplicationSettings().getCurrentLocale());
SimpleDateFormat datstring = new SimpleDateFormat(custom
- .getString("date.format"));
+ .getString("date.format"), getApplicationSettings()
+ .getCurrentLocale());
Revision.Format verstring = new Revision.Format(getProjectSettings()
.getRevisionPattern());
for (Iterator<SimulationContext> i = _ustep.getAllSimulationContexts()
.iterator(); i.hasNext();) {
_context.add(new SimulationContextFacade(i.next(),
- getProjectSettings().getAllSteps()));
+ getProjectSettings().getAllSteps(),
+ getApplicationSettings()));
}
if (getStudyService().isStaffedBy(_mystudy, _cuser)
|| getStudyService().hasActor(_mystudy, _cuser)) {
// ProgressState state = mystudy.getProgressState();
// if (state == ProgressState.inCHECK) popup = getApplicationSettings().getPopupMenu("stapprovable");
// else if (state == ProgressState.APPROVED) popup = getApplicationSettings().getPopupMenu("stapproved");
- /* else */_popup = getApplicationSettings().getPopupMenu(
- "steditable");
- _popup.setContext("study", new StudyRights(_cuser, _mystudy));
+ /* else */
+
+ if (_mystudy.getProgressState() == ProgressState.TEMPLATE) {
+ if (_mystudy.isPublic()) {
+ _popup = getApplicationSettings().getPopupMenu(
+ "steditableunmarkprivate");
+ } else {
+ _popup = getApplicationSettings().getPopupMenu(
+ "steditableunmarkpublic");
+ }
+ } else {
+
+ if (_mystudy.isPublic()) {
+ _popup = getApplicationSettings().getPopupMenu(
+ "steditablemarkprivate");
+ } else {
+ if (_mystudy.getProgressState() == ProgressState.inWORK) {
+ _popup = getApplicationSettings().getPopupMenu(
+ "steditable");
+ } else if (_mystudy.getProgressState() == ProgressState.inDRAFT) {
+ _popup = getApplicationSettings().getPopupMenu(
+ "streviewable");
+ } else if (_mystudy.getProgressState() == ProgressState.inCHECK) {
+ _popup = getApplicationSettings().getPopupMenu(
+ "stapprovable");
+ } else { // APPROVED
+ _popup = getApplicationSettings().getPopupMenu(
+ "steditablemarkpublic");
+ }
+ }
+
+ }
+ _popup.setContext(Constants.STUDY_MENU, new StudyRights(_cuser,
+ _mystudy));
}
_urightstudy = new StudyRights(_cuser, _mystudy);
_urightstep = new StepRights(_cuser, _ustep);
// Getters
// ==============================================================================================================================
+ @Override
public String getAuthorName() {
return _mystudy.getAuthor().toString();
}
+ @Override
public Long getIndex() {
return _mystudy.getIndex();
}
_menu = aMenu;
}
+ @Override
public ProgressState getProgressState() {
return _mystudy.getProgressState();
}
return getApplicationSettings().getModuleBar(getSelectedStep());
}
+ @Override
public String getReference() {
return _mystudy.getReference();
}
+ @Override
public Publication getSelectedDocument() {
return _selecdoc;
}
return _mystudy;
}
+ @Override
public String getTitle() {
return _mystudy.getTitle();
}
+ @Override
public String getType() {
- return ResourceBundle.getBundle("labels",
- getApplicationSettings().getCurrentLocale()).getString(
- "label.study");
+ /*
+ * RKV: return ResourceBundle.getBundle("labels", getApplicationSettings().getCurrentLocale()).getString( "label.study");
+ */
+ return Constants.STUDY_MENU;
}
public String getVersion() {
// Public services
// ==============================================================================================================================
+ @Override
public URL newTemplateBasedDocument(final String typename, final User author) {
String filename = typename + ".xml"; // Only XML templates are writeable
File template = new File(getRepositoryService().getTemplatePath()
ResourceBundle locale = ResourceBundle.getBundle("som",
getApplicationSettings().getCurrentLocale());
SimpleDateFormat get = new SimpleDateFormat(locale
- .getString("date.format"));
+ .getString("date.format"), getApplicationSettings()
+ .getCurrentLocale());
Writer tool = Toolbox.getWriter(credoc);
List<Step> slist = getInvolvedSteps();
for (Iterator<Step> i = slist.iterator(); i.hasNext();) {
}
}
tool.updateProperty("reference", medoc.getReference());
- tool.updateProperty("study", _mystudy.getTitle());
+ tool.updateProperty(Constants.STUDY_MENU, _mystudy.getTitle());
tool.updateProperty("step", locale.getString(
"folder.step." + step.getNumber()).replaceAll("''", "'"));
tool.updateProperty("author", author.getUsername().toUpperCase());
protected void add(final Publication doc) {
DocumentFacade facade = new DocumentFacade(this, doc,
- getProjectSettings(), getPublicationService());
+ getProjectSettings(), getPublicationService(),
+ getApplicationSettings());
boolean first = (_contents.size() == 0);
- docpres.put(doc.getIndex(), facade);
+ _docpres.put(doc.getIndex(), facade);
_contents.add(0, facade); // Prepend the new publication
if (first) {
this.getMenu().refreshSelectedItem();
protected void add(final SimulationContext contex) {
SimulationContextFacade facade = new SimulationContextFacade(contex,
- getProjectSettings().getAllSteps());
+ getProjectSettings().getAllSteps(), getApplicationSettings());
_context.add(facade);
}
protected void add(final KnowledgeElement kelm) {
KnowledgeElementFacade facade = new KnowledgeElementFacade(BeanHelper
- .copyBean(kelm, KnowledgeElementDTO.class));
+ .copyBean(kelm, KnowledgeElementDTO.class),
+ getApplicationSettings());
// 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)
// RKV:Begin: Find a knowledge iterator for appropriate knowledge type
}
}
if (known != null) { // RKV:End
- knowpres.put(kelm.getIndex(), facade);
+ _knowpres.put(kelm.getIndex(), facade);
known._list.add(facade); // Insert the new knowledge at the end of the corresponding knowledge type
}
}
_cuser = user;
_popup = null;
if (getStudyService().isStaffedBy(_mystudy, _cuser)) {
- _popup = getApplicationSettings().getPopupMenu("steditable");
- _popup.setContext("study", new StudyRights(_cuser, _mystudy));
+ _popup = getApplicationSettings().getPopupMenu(
+ "steditablemarkpublic");
+ _popup.setContext(Constants.STUDY_MENU, new StudyRights(_cuser,
+ _mystudy));
}
// ustep = getProjectElementService().getFirstStep(mystudy);
if (_ustep != null) {
}
protected void remove(final KnowledgeElement kelm) {
- KnowledgeIterator known = _knowledge.get((int) (kelm.getType()
- .getIndex() - 2));
+ // RKV: KnowledgeIterator known = _knowledge.get((int) (kelm.getType()
+ // RKV: .getIndex() - 2));
// Knowledges are ordered by type index, from 0 to n-1, the first one being reserved (reason for -2)
- knowpres.remove(kelm.getIndex());
- for (Iterator<KnowledgeElementFacade> i = known._list.iterator(); i
- .hasNext();) {
- KnowledgeElementFacade facade = i.next();
- if (!facade.isFacadeOf(BeanHelper.copyBean(kelm,
- KnowledgeElementDTO.class))) {
- continue;
+ // 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.remove(kelm.getIndex());
+ for (Iterator<KnowledgeElementFacade> i = known._list.iterator(); i
+ .hasNext();) {
+ KnowledgeElementFacade facade = i.next();
+ if (!facade.isFacadeOf(BeanHelper.copyBean(kelm,
+ KnowledgeElementDTO.class))) {
+ continue;
+ }
+ i.remove();
+ break;
}
- i.remove();
- break;
}
}
protected void update(final Publication doc) {
- DocumentFacade facade = docpres.get(doc.getIndex());
+ DocumentFacade facade = _docpres.get(doc.getIndex());
if (facade != null) {
facade.refresh();
}
}
protected void update(final KnowledgeElementDTO kelm) {
- KnowledgeElementFacade facade = knowpres.get(kelm.getIndex());
+ KnowledgeElementFacade facade = _knowpres.get(kelm.getIndex());
if (facade != null) {
facade.refresh(kelm);
}
for (Iterator<SimulationContext> j = i.next()
.getAllSimulationContexts().iterator(); j.hasNext();) {
_context.add(new SimulationContextFacade(j.next(),
- getProjectSettings().getAllSteps()));
+ getProjectSettings().getAllSteps(),
+ getApplicationSettings()));
}
}
}
step = getProjectElementService().getSteps(_mystudy);
for (int i = step.length - 1; i > -1; i--) {
Step firstep = step[i];
- if (firstep.getNumber() > base) {
- continue;
+ if (firstep.getNumber() <= base) {
+ _involving.add(0, firstep);
}
- _involving.add(0, firstep);
}
}