14 package cz.vutbr.fit.knot.annotations.web;
25 import java.io.Serializable;
26 import java.util.ArrayList;
27 import java.util.Iterator;
28 import java.util.List;
29 import java.util.logging.Level;
30 import java.util.logging.Logger;
31 import javax.faces.bean.ManagedBean;
32 import javax.faces.bean.ViewScoped;
33 import javax.faces.model.SelectItem;
34 import javax.persistence.EntityManager;
35 import javax.persistence.EntityTransaction;
45 public class EditATA implements Serializable {
49 private String
name = null;
92 if (
name == null ||
name.isEmpty()) {
93 errorMessage = MessageProvider.getMessage(
"nameCantBeEmpty");
99 errorMessage = MessageProvider.getMessage(
"simpleAndStructuredError");
102 String uri = AppBean.getBaseTypeUri() +
"g"
105 Object[] params =
new Object[2];
108 List tList = AppBean.getPersistenceManager().queryDB(
"AnnotType.findByUri", params);
109 if (tList != null && !tList.isEmpty()) {
113 errorMessage = MessageProvider.getMessage(
"unknownStructuredType");
119 errorMessage = MessageProvider.getMessage(
"unknownSimpleType");
123 errorMessage = MessageProvider.getMessage(
"typeMustBeSet");
128 annotTAttr.setName(
name);
130 annotTAttr.setAttributeType(sType);
131 annotTAttr.setComment(
comment);
138 errorMessage = MessageProvider.getMessage(
"changesNSDatabaseFailure");
140 String msg =
"Persisting changes in attribute of type of annotation failed.";
141 Logger.getLogger(EditATA.class.getName()).log(Level.SEVERE, msg);
149 AnnotType editedAT = SessionManager.getSession().getEditedAT();
151 synchronized(AppBean.getSessions()){
152 Iterator<EditorSession> sesIt = AppBean.getSessions().iterator();
153 while (sesIt.hasNext()) {
156 flier.AddEditedType(editedAT);
157 es.addMessageTS(rc.createCometResponse(flier, es));
161 SessionManager.getSession().setSecondFormBackup(null);
162 SessionManager.getSession().setEditedATA(null);
173 AnnotType editedAT = SessionManager.getSession().getEditedAT();
175 if (
name == null ||
name.isEmpty()) {
176 errorMessage = MessageProvider.getMessage(
"nameCantBeEmpty");
184 errorMessage = MessageProvider.getMessage(
"simpleAndStructuredError");
187 String uri = AppBean.getBaseTypeUri() +
"g"
190 Object[] params =
new Object[2];
193 List tList = AppBean.getPersistenceManager().queryDB(
"AnnotType.findByUri", params);
194 if (tList != null && !tList.isEmpty()) {
198 errorMessage = MessageProvider.getMessage(
"unknownStructuredType");
204 errorMessage = MessageProvider.getMessage(
"unknownSimpleType");
208 errorMessage = MessageProvider.getMessage(
"typeMustBeSet");
214 annotTAttr.setAttributeType(sType);
215 annotTAttr.setComment(
comment);
220 EntityManager em = AppBean.getPersistenceManager().getEM();
221 EntityTransaction transaction = em.getTransaction();
223 editedAT = em.merge(editedAT);
224 annotTAttr.setAnnotationType(editedAT);
226 SessionManager.getSession().setEditedAT(editedAT);
228 transaction.commit();
229 }
catch (Exception e) {
230 errorMessage = MessageProvider.getMessage(
"newAttrNSDatabaseFailure");
232 String msg =
"Persisting new attribute of type of annotation failed.";
233 Logger.getLogger(EditATA.class.getName()).log(Level.SEVERE, msg, e);
240 synchronized(AppBean.getSessions()){
241 Iterator<EditorSession> sesIt = AppBean.getSessions().iterator();
242 while (sesIt.hasNext()) {
245 flier.AddEditedType(editedAT);
246 es.addMessageTS(rc.createCometResponse(flier, es));
250 SessionManager.getSession().setSecondFormBackup(null);
251 SessionManager.getSession().setEditedATA(null);
262 AnnotType editedAT = SessionManager.getSession().getEditedAT();
267 String uri = AppBean.getBaseTypeUri() +
"g"
270 Object[] params =
new Object[2];
273 List tList = AppBean.getPersistenceManager().queryDB(
"AnnotType.findByUri", params);
274 if (tList != null && !tList.isEmpty()) {
286 backup.setAttributeType(sType);
298 SessionManager.getSession().setSecondFormBackup(null);
299 SessionManager.getSession().setEditedATA(null);
310 if (
name == null && backup != null) {
311 name = backup.getName();
313 name = annotTAttr.getName();
314 }
else if (
name == null) {
376 structuredType = annotTAttr.getAttributeType().getLinearizedName();
400 if (
comment == null && backup != null) {
403 comment = annotTAttr.getComment();
426 if (
required == null && backup != null) {
429 required = annotTAttr.getRequired();
476 AnnotType editedAT = SessionManager.getSession().getEditedAT();
478 SessionManager.getSession().setSecondFormBackup(backup);
479 SessionManager.getSession().setSelectedUG(editedAT.
getGroup());
480 SessionManager.getSession().setEditedATA(
annotTAttr);
481 SessionManager.getSession().setCameFrom(
"editATA");
492 AnnotType editedAT = SessionManager.getSession().getEditedAT();
494 SessionManager.getSession().setSecondFormBackup(backup);
495 SessionManager.getSession().setSelectedUG(editedAT.
getGroup());
496 SessionManager.getSession().setEditedATA(
annotTAttr);
497 SessionManager.getSession().setCameFrom(
"addATA");
511 annotTAttr = SessionManager.getSession().getEditedATA();
512 AnnotType sAT = SessionManager.getSession().getSelectedAT();
515 SessionManager.getSession().setSelectedAT(null);
516 SessionManager.getSession().setCameFrom(null);
519 SessionManager.getSession().setSelectedAT(null);
520 SessionManager.getSession().setCameFrom(null);
529 if (backup.
getId() != annotTAttr.getId()) {
573 return annotTAttr.getAnnotationType().
getGroup();
575 return SessionManager.getSession().getEditedAT().getGroup();
584 List<SelectItem> rList =
new ArrayList<SelectItem>();
586 String t = tIt.next();
587 if (t.equals(
"person") || t.equals(
"geoPoint")) {
590 rList.add(
new SelectItem(t, t));
592 rList.add(
new SelectItem(
"",
""));
static WebSession getSession()
Class representing attribute of type of annotation.
Class for manipulating with session.
void setUriInOntology(String uriInOntology)
String btnSaveNewAction()
String getUriInOntology()
static String replaceArrows(String aString)
AnnotTypeAttr getAnnotTAttr()
Singleton for storing global variables.
void setRequired(Boolean required)
AnnotType getAnnotationType()
AnnotType getAttributeType()
void setStructuredType(String structuredType)
void setName(String name)
AnnotTypeAttr getBackup()
void setErrorMessage(String errorMessage)
static final ArrayList< String > SIMPLE_TYPES
Static class which parses and process XML with messages.
Class representing user group.
void setSimpleType(String simpleType)
static final int LOG_LEVEL
Class representing type of annotation.
Flier with informations for comet handlers.
List< SelectItem > getSimpleTypes()
static PersistM getPersistenceManager()
String btnSelectSTypeAction()
Class that creates responses and persists data.
static final int LOG_LEVEL_SERVER_ERRORS
Backbean for managing attributes of types of annotations.
void setComment(String comment)
String getStructuredType()
Informations about client session.
String btnSelectSTypeActionN()
AnnotTypeAttr createBackup()