import java.util.ResourceBundle;
import java.util.Vector;
-import org.hibernate.HibernateException;
-import org.hibernate.Session;
-import org.hibernate.Transaction;
import org.splat.dal.bo.kernel.User;
import org.splat.manox.Reader;
import org.splat.manox.Toolbox;
-import org.splat.dal.dao.som.Database;
import org.splat.dal.bo.som.Document;
import org.splat.dal.bo.som.ProgressState;
import org.splat.service.DocumentService;
import org.splat.som.Revision;
import org.splat.som.Step;
+/**
+ * Action for adding a document into a study step.
+ */
public class ImportDocumentAction extends UploadBaseNextAction {
/**
/**
* Injected repository service.
*/
- private RepositoryService _repositoryService;
+ private RepositoryService _repositoryService;
+ /**
+ * Value of the menu property.
+ * It can be: none, create, open, study, knowledge, sysadmin, help.
+ */
+ private String _menuProperty;
+
+ /**
+ * Value of the title bar property.
+ * It can be: study, knowledge.
+ */
+ private String _titleProperty;
+
+ /**
+ * Value of the tool bar property.
+ * It can be: none, standard, study, back.
+ */
+ private String _toolProperty;
+
+ /**
+ * Property that indicates whether the current open study is editable or not.
+ * On the screen it looks like pen on the status icon, pop-up menu also can be called.
+ * It is necessary for correct building the title bar.
+ */
+ private String _editDisabledProperty = "false";
// ==============================================================================================================================
// Action methods
* @return SUCCESS in success, otherwise - ERROR
*/
public String doInitialize() {
- // -----------------------------
- Session connex = Database.getCurSession();
- Transaction transax = connex.beginTransaction();
+
+ setMenuProperty("study");
+ setTitleProperty("study");
+ setEditDisabledProperty("true");
+ if ("true".equals(getWriteAccess())) {
+ setToolProperty("study");
+ } else {
+ setToolProperty("none");
+ }
+ initializationScreenContext(_menuProperty, _titleProperty, _editDisabledProperty, _toolProperty);
+
User user = getConnectedUser();
File updir = getRepositoryService().getDownloadDirectory(user);
File upfile = new File(updir.getPath() + "/" + filename);
mystudy = getOpenStudy();
Step step = mystudy.getSelectedStep();
doctypes = getStepService().getValidDocumentTypes(step);
- deftype = ApplicationSettings.getDefaultDocumentType(step, filext);
+ deftype = getApplicationSettings().getDefaultDocumentType(step, filext);
defuses = new Vector<Document>();
state = ProgressState.inWORK;
new Revision().toString());
if (slot == null) {
setErrorCode("reference.undefined");
+
+ setToolProperty("none");
+ initializationScreenContext(_menuProperty, _titleProperty, _editDisabledProperty, _toolProperty);
+
return ERROR;
} else {
if (!slot.isUndefined()) {
setErrorCode("reference.duplicate");
+
+ setToolProperty("none");
+ initializationScreenContext(_menuProperty, _titleProperty, _editDisabledProperty, _toolProperty);
+
return ERROR;
}
docref = fileref; // Disables document name and state fields
docver = version.toString();
} catch (ParseException e) {
setErrorCode("format.version");
+
+ setToolProperty("none");
+ initializationScreenContext(_menuProperty, _titleProperty, _editDisabledProperty, _toolProperty);
+
return ERROR;
}
docname = tool.extractProperty("title"); // Property kept even if the file is not referenced
date = tool.extractProperty("date");
if (date != null) {
ResourceBundle locale = ResourceBundle.getBundle("som",
- ApplicationSettings.getCurrentLocale());
+ getApplicationSettings().getCurrentLocale());
SimpleDateFormat check = new SimpleDateFormat(
locale.getString("date.format"));
try {
check.parse(date);
} catch (ParseException e) {
setErrorCode("format.date");
+
+ setToolProperty("none");
+ initializationScreenContext(_menuProperty, _titleProperty, _editDisabledProperty, _toolProperty);
+
return ERROR;
}
} else
Arrays.sort(types, compare);
doctypes = Arrays.asList(types);
- transax.commit();
return SUCCESS;
}
*/
public String doImport() {
// -------------------------
+
+ setMenuProperty("study");
+ setTitleProperty("study");
+ setEditDisabledProperty("true");
+ initializationScreenContext(_menuProperty, _titleProperty, _editDisabledProperty);
+
if (action == ToDo.cancel)
return "cancel";
if (doctype == 0) {
setErrorCode("import.type");
+
+ setToolProperty("none");
+ initializationScreenContext(_menuProperty, _titleProperty, _editDisabledProperty, _toolProperty);
+
return ERROR;
}
- Session connex = Database.getCurSession();
- Transaction transax = connex.beginTransaction();
try {
// Getting user inputs
mystudy = getOpenStudy();
} else { // Importation of a previously created template-based document
if (date.length() > 0) {
ResourceBundle locale = ResourceBundle.getBundle("som",
- ApplicationSettings.getCurrentLocale());
+ getApplicationSettings().getCurrentLocale());
SimpleDateFormat get = new SimpleDateFormat(
locale.getString("date.format"));
dprop.setDate(get.parse(date));
}
// Creation of derived the document formats
// Document ndoc = addoc.value();
- // Converter send = ApplicationSettings.getConverter(ndoc.getType(), ndoc.getFormat());
+ // Converter send = getApplicationSettings().getConverter(ndoc.getType(), ndoc.getFormat());
//
// if (send != null) send.converts(addoc); // Asynchronous process
- transax.commit();
mystudy.add(addoc); // Updates the presentation
return SUCCESS;
logger.error("Reason:", error);
setErrorCode("internal");
}
- if (transax != null && transax.isActive()) { // Probably useless test
- // Second try-catch as the rollback could fail as well
- try {
- transax.rollback();
- } catch (HibernateException backerror) {
- logger.debug("Error rolling back transaction", backerror);
- }
- }
+
+ setToolProperty("none");
+ initializationScreenContext(_menuProperty, _titleProperty, _editDisabledProperty, _toolProperty);
+
return ERROR;
}
public void setDocumentTypeService(DocumentTypeService documentTypeService) {
_documentTypeService = documentTypeService;
}
+
+ /**
+ * Get the menuProperty.
+ * @return the menuProperty
+ */
+ public String getMenuProperty() {
+ return _menuProperty;
+ }
+
+ /**
+ * Set the menuProperty.
+ * @param menuProperty the menuProperty to set
+ */
+ public void setMenuProperty(String menuProperty) {
+ this._menuProperty = menuProperty;
+ }
+
+ /**
+ * Get the _titleProperty.
+ * @return the _titleProperty
+ */
+ public String getTitleProperty() {
+ return _titleProperty;
+ }
+
+ /**
+ * Set the _titleProperty.
+ * @param _titleProperty the titleProperty to set
+ */
+ public void setTitleProperty(String titleProperty) {
+ _titleProperty = titleProperty;
+ }
+
+ /**
+ * Get the editDisabledProperty.
+ * @return the editDisabledProperty
+ */
+ public final String getEditDisabledProperty() {
+ return _editDisabledProperty;
+ }
+
+ /**
+ * Set the editDisabledProperty.
+ * @param editDisabledProperty the editDisabledProperty to set
+ */
+ public final void setEditDisabledProperty(String editDisabledProperty) {
+ _editDisabledProperty = editDisabledProperty;
+ }
+
+ /**
+ * Get the toolProperty.
+ * @return the toolProperty
+ */
+ public String getToolProperty() {
+ return _toolProperty;
+ }
+
+ /**
+ * Set the toolProperty.
+ * @param toolProperty the toolProperty to set
+ */
+ public void setToolProperty(final String toolProperty) {
+ _toolProperty = toolProperty;
+ }
}
\ No newline at end of file