1
|
1 package de.mpiwg.itgroup.ismi.entry.beans;
|
|
2
|
|
3 import java.util.ArrayList;
|
|
4 import java.util.List;
|
|
5
|
|
6 import javax.faces.model.SelectItem;
|
|
7
|
|
8 import org.apache.log4j.Logger;
|
|
9 import org.mpi.openmind.repository.bo.Entity;
|
|
10 import org.mpi.openmind.repository.bo.Node;
|
|
11 import org.mpi.openmind.repository.bo.Relation;
|
|
12 import org.mpi.openmind.security.bo.User;
|
|
13
|
|
14
|
|
15 public class CurrentSubjectBean extends AbstractISMIBean {
|
|
16
|
|
17 private static final long serialVersionUID = -435164522506185752L;
|
|
18
|
|
19 private static Logger logger = Logger.getLogger(CurrentSubjectBean.class);
|
|
20
|
|
21 public static String type = "type";
|
|
22 public static String NO_SUBJECT = "NO_SUBJECT";
|
|
23
|
|
24 public static String has_subject = "has_subject";
|
|
25 public static String SUBJECT = "SUBJECT";
|
|
26 public static String main_subject = "main_subject";
|
|
27 public static String sub_subject = "sub_subject";
|
|
28
|
|
29 private Long idMainSubject;
|
|
30
|
|
31 private List<SelectItem> suggestedCategories = new ArrayList<SelectItem>();
|
|
32 private List<SelectItem> suggestedTypes = new ArrayList<SelectItem>();
|
|
33
|
|
34 public CurrentSubjectBean(){
|
|
35 suggestedTypes.add(new SelectItem(null, "-- choose --"));
|
|
36 suggestedTypes.add(new SelectItem(main_subject, main_subject));
|
|
37 suggestedTypes.add(new SelectItem(sub_subject, sub_subject));
|
|
38 reset();
|
|
39 }
|
|
40
|
|
41 @Override
|
|
42 public void reset(){
|
|
43 super.reset();
|
|
44 this.entity = new Entity(Node.TYPE_ABOX, SUBJECT, false);
|
|
45
|
|
46 setDefObjectClass(SUBJECT);
|
|
47 this.idMainSubject = null;
|
|
48
|
|
49 this.suggestedCategories = new ArrayList<SelectItem>();
|
|
50 this.suggestedCategories.add(new SelectItem(null, "-- choose --"));
|
|
51
|
|
52 List<Entity> cats = getWrapper().getEntitiesByAtt(SUBJECT, type, main_subject, -1, true);
|
|
53
|
|
54 for(Entity cat : cats){
|
|
55 SelectItem item = new SelectItem(cat.getId(), cat.getOwnValue());
|
|
56
|
|
57 item.setStyle("font-weight: bold; padding-left: 0px; font-size: 14;");
|
|
58 this.suggestedCategories.add(item);
|
|
59 List<Entity> subCats = getWrapper().getSourcesForTargetRelation(cat, is_part_of, SUBJECT, -1);
|
|
60 for(Entity subCat : subCats){
|
|
61
|
|
62 SelectItem subItem = new SelectItem(subCat.getId(), subCat.getOwnValue());
|
|
63 subItem.setStyle("padding-left: 10px; font-size: 12;");
|
|
64
|
|
65 this.suggestedCategories.add(subItem);
|
|
66 List<Entity> subsubCats = getWrapper().getSourcesForTargetRelation(subCat, is_part_of, SUBJECT, -1);
|
|
67 for(Entity subsubCat : subsubCats){
|
|
68
|
|
69 SelectItem subsubItem = new SelectItem(subsubCat.getId(), subsubCat.getOwnValue());
|
|
70 subsubItem.setStyle("padding-left: 20px; font-size: 10;");
|
|
71 this.suggestedCategories.add(subsubItem);
|
|
72 }
|
|
73 }
|
|
74 }
|
|
75 }
|
|
76
|
|
77 public void setEntity(Entity subject) {
|
|
78 this.reset();
|
|
79
|
|
80 this.entity = subject;
|
|
81 if(this.entity.isPersistent()){
|
|
82 this.setCurrentId(this.entity.getId().toString());
|
|
83 if (subject.isLightweight()) {
|
|
84 this.entity = getWrapper().getEntityContent(this.entity);
|
|
85 }
|
|
86 this.loadAttributes(this.entity);//, getDefinition(this.entity));
|
|
87
|
|
88 for (Relation rel : this.entity.getSourceRelations()) {
|
|
89 if(rel.getOwnValue().equals(is_part_of)){
|
|
90 this.idMainSubject = rel.getTargetId();
|
|
91 }
|
|
92 }
|
|
93 }
|
|
94 }
|
|
95
|
|
96 @Override
|
|
97 public String save() {
|
|
98 super.save();
|
|
99 try {
|
|
100 User user = getSessionUser();
|
|
101
|
|
102 this.entity = updateEntityAttributes(this.entity);
|
|
103
|
|
104 this.entity.removeAllSourceRelations(is_part_of, SUBJECT);
|
|
105 if(getIdMainSubject() != null){
|
|
106 Entity mainCategory = getWrapper().getEntityById(getIdMainSubject());
|
|
107 //replaceSourceRelation(this.entity, mainCategory, SUBJECT, is_part_of);
|
|
108 this.entity.replaceSourceRelation(mainCategory, SUBJECT, is_part_of);
|
|
109 }
|
|
110
|
|
111 this.entity = getWrapper().saveEntity(this.entity, user.getEmail());
|
|
112 getSessionBean().setEditFormCurrentEntId(this.entity.getId());
|
|
113
|
|
114 logger.info("Entity saved - Time = " + (System.currentTimeMillis() - start) + ", " + entity);
|
|
115 this.printSuccessSavingEntity();
|
|
116
|
|
117 getAppBean().resetSuggestedSubjects();
|
|
118 } catch (Exception e) {
|
|
119 logger.error(e.getMessage(), e);
|
|
120 e.printStackTrace();
|
|
121 this.printInternalError(e);
|
|
122 }
|
|
123
|
|
124 saveEnd();
|
|
125 return PAGE_EDITOR;
|
|
126
|
|
127 }
|
|
128
|
|
129 public List<SelectItem> getSuggestedCategories() {
|
|
130 return suggestedCategories;
|
|
131 }
|
|
132
|
|
133 public void setSuggestedCategories(List<SelectItem> suggestedCategories) {
|
|
134 this.suggestedCategories = suggestedCategories;
|
|
135 }
|
|
136
|
|
137 public Long getIdMainSubject() {
|
|
138 return idMainSubject;
|
|
139 }
|
|
140
|
|
141 public void setIdMainSubject(Long idMainSubject) {
|
|
142 this.idMainSubject = idMainSubject;
|
|
143 }
|
|
144
|
|
145 public List<SelectItem> getSuggestedTypes() {
|
|
146 return suggestedTypes;
|
|
147 }
|
|
148
|
|
149 public void setSuggestedTypes(List<SelectItem> suggestedTypes) {
|
|
150 this.suggestedTypes = suggestedTypes;
|
|
151 }
|
|
152 }
|