* Terms - Prepared support for rename * ObjectType.java - Added ID for serialization - Added RELATIONSHIP class constant * struts.xml - Added Relationship actions * General - Relationships between two terms can be added and listed - Clean-up: + Renamed methods according to their purpose + Fixed RDM and corresponding properties/annotations + RelationShipTypeAction.java
/trunk/src/struts.xml |
---|
8,11 → 8,11 |
<!-- User environment --> |
<package name="user" namespace="/user" extends="hibernate-default"> |
<!-- Term management --> |
<action name="termAddForm"> |
<action name="termAdd"> |
<result>/user/termAddForm.jsp</result> |
</action> |
<action name="doTermAdd" method="add" |
<action name="termSave" method="save" |
class="ch.ffhs.webE.action.TermAction"> |
<result name="success">/user/termAdd.jsp</result> |
<result name="error">/user/termAddForm.jsp</result> |
32,6 → 32,22 |
class="ch.ffhs.webE.action.TermAction"> |
<result name="success">/user/termAddForm.jsp</result> |
</action> |
<action name="relationshipAdd" method="add" |
class="ch.ffhs.webE.action.RelationshipAction"> |
<result>/user/relationshipAddForm.jsp</result> |
</action> |
<action name="relationshipSave" method="save" |
class="ch.ffhs.webE.action.RelationshipAction"> |
<result name="success">/user/relationshipAdd.jsp</result> |
<result name="error">/user/relationshipAddForm.jsp</result> |
</action> |
<action name="relationshipList" method="list" |
class="ch.ffhs.webE.action.RelationshipAction"> |
<result name="success">/user/relationshipList.jsp</result> |
</action> |
</package> |
<!-- Admin environment --> |
/trunk/src/ch/ffhs/webE/dao/RelationshipTypeDAO.java |
---|
6,11 → 6,11 |
public interface RelationshipTypeDAO { |
List<RelationshipType> listRelationshipTypes(); |
List<RelationshipType> getRelTypes(); |
boolean deleteRelationshipType(int relTypeID); |
RelationshipType listRelTypeById(int relTypeID); |
RelationshipType getRelTypeById(int relTypeID); |
boolean saveOrUpdateRelType(RelationshipType relType); |
} |
/trunk/src/ch/ffhs/webE/dao/RelationshipDAOImpl.java |
---|
0,0 → 1,130 |
package ch.ffhs.webE.dao; |
import java.util.ArrayList; |
import java.util.List; |
import org.hibernate.Session; |
import org.hibernate.Transaction; |
import ch.ffhs.webE.domain.Relationship; |
import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget; |
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget; |
/** |
* Implements the Database Access Object for terms |
* |
* @author Thomas Lahn |
*/ |
public class RelationshipDAOImpl |
{ |
/** |
* Database session |
*/ |
@SessionTarget |
Session session; |
/** |
* Database transaction |
*/ |
@TransactionTarget |
Transaction transaction; |
/** |
* Creates a list of all relationships |
* |
* @return an ArrayList with all the relationshops - in case of a problem, an |
* empty list is returned |
*/ |
@SuppressWarnings("unchecked") |
public List<Relationship> listRelationships() |
{ |
List<Relationship> relationship = null; |
try |
{ |
relationship = this.session.createQuery("from Relationship").list(); //$NON-NLS-1$ |
} |
catch (Exception e) |
{ |
e.printStackTrace(); |
} |
/* |
* If no relationship was checked, return an empty list to mitigate null |
* pointer exceptions |
*/ |
if (relationship == null) |
{ |
relationship = new ArrayList<Relationship>(); |
} |
return relationship; |
} |
/** |
* Executes the query to save the relationship |
* |
* @param relationship |
* Domain object to be saved |
* @return <code>true</code> if successful, <code>false</code> otherwise |
*/ |
public boolean saveOrUpdate(Relationship relationship) |
{ |
try |
{ |
relationship.setObjectId(relationship.getObjectId()); |
this.session.saveOrUpdate(relationship); |
return true; |
} |
catch (Exception e) |
{ |
this.transaction.rollback(); |
e.printStackTrace(); |
return false; |
} |
} |
/** |
* Delete a relationship |
* |
* @param id |
* Relationship ID |
*/ |
public void deleteRelationship(int id) |
{ |
try |
{ |
Relationship relationship = (Relationship) this.session.get( |
Relationship.class, id); |
this.session.delete(relationship); |
} |
catch (Exception e) |
{ |
this.transaction.rollback(); |
e.printStackTrace(); |
} |
} |
/** |
* Retrieves a relationship by ID |
* |
* @param id |
* Term ID |
* @return The relationship with this <var>id</var> |
*/ |
public Relationship getRelationshipById(int id) |
{ |
Relationship relationship = null; |
try |
{ |
relationship = (Relationship) this.session.get(Relationship.class, id); |
} |
catch (Exception e) |
{ |
e.printStackTrace(); |
} |
return relationship; |
} |
} |
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+text/plain |
\ No newline at end of property |
Index: src/ch/ffhs/webE/dao/RelationshipTypeDAOImpl.java |
=================================================================== |
--- src/ch/ffhs/webE/dao/RelationshipTypeDAOImpl.java (revision 33) |
+++ src/ch/ffhs/webE/dao/RelationshipTypeDAOImpl.java (revision 34) |
@@ -26,7 +26,7 @@ |
*/ |
@SuppressWarnings("unchecked") |
@Override |
- public List<RelationshipType> listRelationshipTypes() |
+ public List<RelationshipType> getRelTypes() |
{ |
List<RelationshipType> relType = null; |
@@ -100,7 +100,7 @@ |
* Used to get a relationship type by ID |
*/ |
@Override |
- public RelationshipType listRelTypeById(int relTypeID) |
+ public RelationshipType getRelTypeById(int relTypeID) |
{ |
RelationshipType relType = null; |
try |
/trunk/src/ch/ffhs/webE/dao/TermDAO.java |
---|
14,7 → 14,7 |
/** |
* @return |
*/ |
List<Term> listTerm(); |
List<Term> getTerms(); |
/** |
* Delete a term |
/trunk/src/ch/ffhs/webE/dao/TermDAOImpl.java |
---|
31,13 → 31,13 |
Transaction transaction; |
/** |
* Creates a list of all terms |
* Returns a list of all terms |
* |
* @return an ArrayList with all the users - in case of a problem, an empty |
* @return an ArrayList with all the terms - in case of a problem, an empty |
* list is returned |
*/ |
@SuppressWarnings("unchecked") |
public List<Term> listTerm() |
public List<Term> getTerms() |
{ |
List<Term> term = null; |
try |
/trunk/src/ch/ffhs/webE/domain/Relationship.java |
---|
12,7 → 12,9 |
import javax.persistence.OneToOne; |
import javax.persistence.PrimaryKeyJoinColumn; |
import javax.persistence.Table; |
import javax.persistence.Transient; |
import javax.persistence.UniqueConstraint; |
import org.hibernate.annotations.GenericGenerator; |
import org.hibernate.annotations.Parameter; |
21,76 → 23,91 |
*/ |
@Entity |
@Table(name = "relationship", catalog = "webengineering", uniqueConstraints = @UniqueConstraint(columnNames = { |
"term_from", "term_to", "type" })) |
public class Relationship implements java.io.Serializable { |
"term_from", "term_to", "type_id" })) |
public class Relationship implements java.io.Serializable |
{ |
private int objectId; |
private int objectId; |
private Term termByTermTo; |
private ObjectEntity object; |
private RelationshipType relationshipType; |
private Term termByTermFrom; |
@Transient |
private ObjectEntity object; |
public Relationship() { |
} |
private Term termFrom; |
private Term termTo; |
private RelationshipType relationshipType; |
public Relationship(Term termByTermTo, ObjectEntity object, |
RelationshipType relationshipType, Term termByTermFrom) { |
this.termByTermTo = termByTermTo; |
this.object = object; |
this.relationshipType = relationshipType; |
this.termByTermFrom = termByTermFrom; |
} |
public Relationship() |
{ |
} |
@GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "object")) |
@Id |
@GeneratedValue(generator = "generator") |
@Column(name = "object_id", unique = true, nullable = false) |
public int getObjectId() { |
return this.objectId; |
} |
public Relationship(Term termByTermTo, ObjectEntity object, |
RelationshipType relationshipType, Term termByTermFrom) |
{ |
this.termTo = termByTermTo; |
this.object = object; |
this.relationshipType = relationshipType; |
this.termFrom = termByTermFrom; |
} |
public void setObjectId(int objectId) { |
this.objectId = objectId; |
} |
@GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "object")) |
@Id |
@GeneratedValue(generator = "generator") |
@Column(name = "object_id", unique = true, nullable = false) |
public int getObjectId() |
{ |
return this.objectId; |
} |
@ManyToOne(fetch = FetchType.LAZY) |
@JoinColumn(name = "term_to", nullable = false) |
public Term getTermByTermTo() { |
return this.termByTermTo; |
} |
public void setObjectId(int objectId) |
{ |
this.objectId = objectId; |
} |
public void setTermByTermTo(Term termByTermTo) { |
this.termByTermTo = termByTermTo; |
} |
@ManyToOne(fetch = FetchType.LAZY) |
@JoinColumn(name = "term_to", nullable = false) |
public Term getTermTo() |
{ |
return this.termTo; |
} |
@OneToOne(fetch = FetchType.LAZY) |
@PrimaryKeyJoinColumn |
public ObjectEntity getObject() { |
return this.object; |
} |
public void setTermTo(Term termByTermTo) |
{ |
this.termTo = termByTermTo; |
} |
public void setObject(ObjectEntity object) { |
this.object = object; |
} |
@OneToOne(fetch = FetchType.LAZY) |
@PrimaryKeyJoinColumn |
public ObjectEntity getObject() |
{ |
return this.object; |
} |
@ManyToOne(fetch = FetchType.LAZY) |
@JoinColumn(name = "type", nullable = false) |
public RelationshipType getRelationshipType() { |
return this.relationshipType; |
} |
public void setObject(ObjectEntity object) |
{ |
this.object = object; |
} |
public void setRelationshipType(RelationshipType relationshipType) { |
this.relationshipType = relationshipType; |
} |
@ManyToOne(fetch = FetchType.LAZY) |
@JoinColumn(name = "type_id", nullable = false) |
public RelationshipType getRelationshipType() |
{ |
return this.relationshipType; |
} |
@ManyToOne(fetch = FetchType.LAZY) |
@JoinColumn(name = "term_from", nullable = false) |
public Term getTermByTermFrom() { |
return this.termByTermFrom; |
} |
public void setRelationshipType(RelationshipType relationshipType) |
{ |
this.relationshipType = relationshipType; |
} |
public void setTermByTermFrom(Term termByTermFrom) { |
this.termByTermFrom = termByTermFrom; |
} |
@ManyToOne(fetch = FetchType.LAZY) |
@JoinColumn(name = "term_from", nullable = false) |
public Term getTermFrom() |
{ |
return this.termFrom; |
} |
public void setTermFrom(Term termByTermFrom) |
{ |
this.termFrom = termByTermFrom; |
} |
} |
/trunk/src/ch/ffhs/webE/domain/RelationshipType.java |
---|
2,13 → 2,15 |
// Generated 19.12.2010 14:46:08 by Hibernate Tools 3.4.0.Beta1 |
import static javax.persistence.GenerationType.IDENTITY; |
import java.util.HashSet; |
import java.util.Set; |
import javax.persistence.Column; |
import javax.persistence.Entity; |
import javax.persistence.FetchType; |
import javax.persistence.GeneratedValue; |
import static javax.persistence.GenerationType.IDENTITY; |
import javax.persistence.Id; |
import javax.persistence.OneToMany; |
import javax.persistence.Table; |
19,64 → 21,76 |
*/ |
@Entity |
@Table(name = "relationship_type", catalog = "webengineering", uniqueConstraints = @UniqueConstraint(columnNames = "name_from")) |
public class RelationshipType implements java.io.Serializable { |
public class RelationshipType implements java.io.Serializable |
{ |
private Integer relationshipId; |
private String nameFrom; |
private String nameTo; |
private Set<Relationship> relationships = new HashSet<Relationship>(0); |
private Integer id; |
private String nameFrom; |
private String nameTo; |
private Set<Relationship> relationships = new HashSet<Relationship>(0); |
public RelationshipType() { |
} |
public RelationshipType() |
{ |
} |
public RelationshipType(String nameFrom, String nameTo) { |
this.nameFrom = nameFrom; |
this.nameTo = nameTo; |
} |
public RelationshipType(String nameFrom, String nameTo) |
{ |
this.nameFrom = nameFrom; |
this.nameTo = nameTo; |
} |
public RelationshipType(String nameFrom, String nameTo, |
Set<Relationship> relationships) { |
this.nameFrom = nameFrom; |
this.nameTo = nameTo; |
this.relationships = relationships; |
} |
public RelationshipType(String nameFrom, String nameTo, |
Set<Relationship> relationships) |
{ |
this.nameFrom = nameFrom; |
this.nameTo = nameTo; |
this.relationships = relationships; |
} |
@Id |
@GeneratedValue(strategy = IDENTITY) |
@Column(name = "relationship_id", unique = true, nullable = false) |
public Integer getRelationshipId() { |
return this.relationshipId; |
} |
@Id |
@GeneratedValue(strategy = IDENTITY) |
@Column(name = "id", unique = true, nullable = false) |
public Integer getId() |
{ |
return this.id; |
} |
public void setRelationshipId(Integer relationshipId) { |
this.relationshipId = relationshipId; |
} |
public void setId(Integer id) |
{ |
this.id = id; |
} |
@Column(name = "name_from", unique = true, nullable = false) |
public String getNameFrom() { |
return this.nameFrom; |
} |
@Column(name = "name_from", unique = true, nullable = false) |
public String getNameFrom() |
{ |
return this.nameFrom; |
} |
public void setNameFrom(String nameFrom) { |
this.nameFrom = nameFrom; |
} |
public void setNameFrom(String nameFrom) |
{ |
this.nameFrom = nameFrom; |
} |
@Column(name = "name_to", nullable = false) |
public String getNameTo() { |
return this.nameTo; |
} |
@Column(name = "name_to", nullable = false) |
public String getNameTo() |
{ |
return this.nameTo; |
} |
public void setNameTo(String nameTo) { |
this.nameTo = nameTo; |
} |
public void setNameTo(String nameTo) |
{ |
this.nameTo = nameTo; |
} |
@OneToMany(fetch = FetchType.LAZY, mappedBy = "relationshipType") |
public Set<Relationship> getRelationships() { |
return this.relationships; |
} |
@OneToMany(fetch = FetchType.LAZY, mappedBy = "relationshipType") |
public Set<Relationship> getRelationships() |
{ |
return this.relationships; |
} |
public void setRelationships(Set<Relationship> relationships) { |
this.relationships = relationships; |
} |
public void setRelationships(Set<Relationship> relationships) |
{ |
this.relationships = relationships; |
} |
} |
/trunk/src/ch/ffhs/webE/domain/Term.java |
---|
45,6 → 45,12 |
0); |
/** |
* @var <code>true</code> if the term is edited/renamed, <code>false</code> |
* otherwise |
*/ |
public boolean edit = false; |
/** |
* No-op constructor |
*/ |
public Term() |
130,7 → 136,7 |
this.name = name; |
} |
@OneToMany(fetch = FetchType.LAZY, mappedBy = "termByTermTo") |
@OneToMany(fetch = FetchType.LAZY, mappedBy = "termTo") |
public Set<Relationship> getRelationshipsForTermTo() |
{ |
return this.relationshipsForTermTo; |
147,7 → 153,7 |
/** |
* @return |
*/ |
@OneToMany(fetch = FetchType.LAZY, mappedBy = "termByTermFrom") |
@OneToMany(fetch = FetchType.LAZY, mappedBy = "termFrom") |
public Set<Relationship> getRelationshipsForTermFrom() |
{ |
return this.relationshipsForTermFrom; |
/trunk/src/ch/ffhs/webE/domain/ObjectType.java |
---|
21,11 → 21,21 |
public class ObjectType implements java.io.Serializable |
{ |
/** |
* Version ID for serialization |
*/ |
private static final long serialVersionUID = 1L; |
/** |
* ObjectEntity type ID for a term |
*/ |
public static final int TERM = 1; |
private int objectTypeId; |
/** |
* ObjectEntity type ID for a relationship |
*/ |
public static final int RELATIONSHIP = 2; |
private int id; |
private String name; |
private Set<ObjectEntity> objects = new HashSet<ObjectEntity>(0); |
33,28 → 43,28 |
{ |
} |
public ObjectType(int objectTypeId) |
public ObjectType(int id) |
{ |
this.objectTypeId = objectTypeId; |
this.id = id; |
} |
public ObjectType(int objectTypeId, String name, Set<ObjectEntity> objects) |
public ObjectType(int id, String name, Set<ObjectEntity> objects) |
{ |
this.objectTypeId = objectTypeId; |
this.id = id; |
this.name = name; |
this.objects = objects; |
} |
@Id |
@Column(name = "object_type_id", unique = true, nullable = false) |
public int getObjectTypeId() |
@Column(name = "id", unique = true, nullable = false) |
public int getId() |
{ |
return this.objectTypeId; |
return this.id; |
} |
public void setObjectTypeId(int objectTypeId) |
public void setId(int objectTypeId) |
{ |
this.objectTypeId = objectTypeId; |
this.id = objectTypeId; |
} |
@Column(name = "name", unique = true, length = 45) |
/trunk/src/ch/ffhs/webE/action/RelationshipAction.java |
---|
0,0 → 1,254 |
package ch.ffhs.webE.action; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.List; |
import java.util.Map; |
import javax.servlet.http.HttpServletRequest; |
import org.apache.struts2.StrutsStatics; |
import ch.ffhs.webE.dao.RelationshipDAOImpl; |
import ch.ffhs.webE.dao.RelationshipTypeDAOImpl; |
import ch.ffhs.webE.dao.TermDAOImpl; |
import ch.ffhs.webE.dao.UserDAOImpl; |
import ch.ffhs.webE.domain.ObjectEntity; |
import ch.ffhs.webE.domain.ObjectType; |
import ch.ffhs.webE.domain.Relationship; |
import ch.ffhs.webE.domain.RelationshipType; |
import ch.ffhs.webE.domain.Term; |
import ch.ffhs.webE.domain.User; |
import com.opensymphony.xwork2.Action; |
import com.opensymphony.xwork2.ActionContext; |
import com.opensymphony.xwork2.ActionSupport; |
import com.opensymphony.xwork2.ModelDriven; |
/** |
* Implements actions applicable to relationship editing |
* |
* @author Thomas Lahn |
*/ |
public class RelationshipAction extends ActionSupport implements |
ModelDriven<Relationship> |
{ |
private static final long serialVersionUID = 1L; |
private List<RelationshipType> relationshipTypes = new ArrayList<RelationshipType>(); |
private final RelationshipTypeDAOImpl relationshipTypeDAO = new RelationshipTypeDAOImpl(); |
private List<Term> terms = new ArrayList<Term>(); |
private final TermDAOImpl termDAO = new TermDAOImpl(); |
private List<Relationship> relationshipList = new ArrayList<Relationship>(); |
private final RelationshipDAOImpl relationshipDAO = new RelationshipDAOImpl(); |
private final UserDAOImpl userDAO = new UserDAOImpl(); |
private Relationship relationship = new Relationship(); |
/** |
* Session object |
*/ |
Map<String, Object> session = ActionContext.getContext().getSession(); |
private final HttpServletRequest request = (HttpServletRequest) ActionContext |
.getContext().get(StrutsStatics.HTTP_REQUEST); |
/* |
* (non-Javadoc) |
* |
* @see com.opensymphony.xwork2.ModelDriven#getModel() |
*/ |
public Relationship getModel() |
{ |
return this.relationship; |
} |
/** |
* Prepares to add a relationship |
* |
* @return |
*/ |
public String add() |
{ |
this.setTerms(this.termDAO.getTerms()); |
this.setRelationshipTypes(this.relationshipTypeDAO.getRelTypes()); |
return Action.SUCCESS; |
} |
/** |
* Executes the DB query to save the user |
* |
* @return {@link Action#SUCCESS} |
*/ |
public String save() |
{ |
this.relationship.setTermFrom(this.termDAO.getTermById(Integer |
.parseInt(this.request.getParameter("term1")))); |
this.relationship.setTermTo(this.termDAO.getTermById(Integer |
.parseInt(this.request.getParameter("term2")))); |
this.relationship.setRelationshipType(this.relationshipTypeDAO |
.getRelTypeById(Integer.parseInt(this.request.getParameter("type")))); |
if (!"1".equals(this.request.getParameter("edit"))) |
{ |
User user = this.userDAO.searchUsername((String) this.session |
.get("username")); |
ObjectEntity obj = new ObjectEntity(user, new ObjectType( |
ObjectType.RELATIONSHIP), user, null, new Date(), false, null, null, |
this.relationship); |
this.relationship.setObject(obj); |
} |
if (this.relationshipDAO.saveOrUpdate(this.relationship)) |
{ |
return Action.SUCCESS; |
} |
return Action.ERROR; |
} |
/** |
* DB query for relationship list |
* |
* @return SUCCESS |
*/ |
public String list() |
{ |
this.relationshipList = this.relationshipDAO.listRelationships(); |
return Action.SUCCESS; |
} |
/** |
* @return {@link Action#SUCCESS} if <var>id</var> > 0, {@link Action#ERROR} |
* otherwise |
*/ |
public String edit() |
{ |
int id = this.getIdParameter(); |
if (id > 0) |
{ |
this.relationship = this.relationshipDAO.getRelationshipById(id); |
if (this.relationship != null) |
{ |
return Action.SUCCESS; |
} |
} |
return Action.ERROR; |
} |
/** |
* Gets the ID Parameter for update / delete requests |
* |
* @return int from the ID request. If not set or wrong, it gives back -1 |
*/ |
private int getIdParameter() |
{ |
int id = -1; |
try |
{ |
id = Integer.parseInt(this.request.getParameter("id")); //$NON-NLS-1$ |
} |
catch (Exception e) |
{ |
/* TODO: Logging - wrong parameter set */ |
} |
return id; |
} |
/** |
* deletes a user, gets the ID from the "id" parameter that was submitted with |
* the HTTP request |
* |
* @return String - either SUCCESS or ERROR constant |
*/ |
public String delete() |
{ |
int id = this.getIdParameter(); |
/* Check for malicious ID values */ |
if (id > 0) |
{ |
this.relationshipDAO.deleteRelationship(id); |
return Action.SUCCESS; |
} |
else |
{ |
return Action.ERROR; |
} |
} |
/* |
* Standard getters and setters |
*/ |
/** |
* @return The relationship edited with this instance |
*/ |
public Relationship getRelationship() |
{ |
return this.relationship; |
} |
/** |
* @param relationship |
* The relationship edited with this instance |
*/ |
public void setRelationship(Relationship relationship) |
{ |
this.relationship = relationship; |
} |
/** |
* @return The list of terms edited with this instance |
*/ |
public List<Relationship> getRelationshipList() |
{ |
return this.relationshipList; |
} |
/** |
* @param relationshipList |
* The list of terms edited with this instance |
*/ |
public void setRelationshipList(List<Relationship> relationshipList) |
{ |
this.relationshipList = relationshipList; |
} |
/** |
* @return the relationshipTypes |
*/ |
public List<RelationshipType> getRelationshipTypes() |
{ |
return this.relationshipTypes; |
} |
/** |
* @param relationshipTypes |
* the relationshipTypes to set |
*/ |
public void setRelationshipTypes(List<RelationshipType> relationshipTypes) |
{ |
this.relationshipTypes = relationshipTypes; |
} |
/** |
* @return the terms |
*/ |
public List<Term> getTerms() |
{ |
return this.terms; |
} |
/** |
* @param terms |
* the terms to set |
*/ |
public void setTerms(List<Term> terms) |
{ |
this.terms = terms; |
} |
} |
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+text/plain |
\ No newline at end of property |
Index: src/ch/ffhs/webE/action/RelationshipTypeAction.java |
=================================================================== |
--- src/ch/ffhs/webE/action/RelationshipTypeAction.java (revision 33) |
+++ src/ch/ffhs/webE/action/RelationshipTypeAction.java (revision 34) |
@@ -5,125 +5,126 @@ |
import javax.servlet.http.HttpServletRequest; |
-import org.apache.struts2.ServletActionContext; |
+import org.apache.struts2.StrutsStatics; |
import ch.ffhs.webE.dao.RelationshipTypeDAO; |
import ch.ffhs.webE.dao.RelationshipTypeDAOImpl; |
import ch.ffhs.webE.domain.RelationshipType; |
+import com.opensymphony.xwork2.Action; |
import com.opensymphony.xwork2.ActionContext; |
import com.opensymphony.xwork2.ActionSupport; |
import com.opensymphony.xwork2.ModelDriven; |
public class RelationshipTypeAction extends ActionSupport implements |
- ModelDriven<RelationshipType> |
+ ModelDriven<RelationshipType> |
{ |
- private static final long serialVersionUID = -3644691864156792139L; |
+ private static final long serialVersionUID = -3644691864156792139L; |
- private RelationshipType relType = new RelationshipType(); |
- private List<RelationshipType> relTypeList = new ArrayList<RelationshipType>(); |
- private RelationshipTypeDAO relTypeDAO = new RelationshipTypeDAOImpl(); |
+ private RelationshipType relType = new RelationshipType(); |
+ private List<RelationshipType> relTypeList = new ArrayList<RelationshipType>(); |
+ private final RelationshipTypeDAO relTypeDAO = new RelationshipTypeDAOImpl(); |
- @Override |
- public RelationshipType getModel() |
- { |
- return relType; |
- } |
+ @Override |
+ public RelationshipType getModel() |
+ { |
+ return this.relType; |
+ } |
- public String addOrUpdate() |
- { |
- relTypeDAO.saveOrUpdateRelType(relType); |
- return SUCCESS; |
- } |
+ public String addOrUpdate() |
+ { |
+ this.relTypeDAO.saveOrUpdateRelType(this.relType); |
+ return Action.SUCCESS; |
+ } |
- public String list() |
+ public String list() |
+ { |
+ this.relTypeList = this.relTypeDAO.getRelTypes(); |
+ return Action.SUCCESS; |
+ } |
+ |
+ public String edit() |
+ { |
+ int id = this.getIdParameter(); |
+ |
+ if (id > 0) |
{ |
- relTypeList = relTypeDAO.listRelationshipTypes(); |
- return SUCCESS; |
+ this.relType = this.relTypeDAO.getRelTypeById(id); |
+ return Action.SUCCESS; |
} |
- |
- public String edit() |
+ else |
{ |
- int id = getIdParameter(); |
- |
- if (id > 0) |
- { |
- relType = relTypeDAO.listRelTypeById(id); |
- return SUCCESS; |
- } |
- else |
- { |
- return ERROR; |
- } |
+ return Action.ERROR; |
} |
- |
- /** |
- * Gets the ID Parameter for update / delete requests |
- * |
- * @return int from the ID request. If not set or wrong, it gives back -1 |
- */ |
- private int getIdParameter() |
- { |
- HttpServletRequest request = (HttpServletRequest) ActionContext |
- .getContext().get(ServletActionContext.HTTP_REQUEST); |
+ } |
- int id = -1; |
- try |
- { |
- id = Integer.parseInt(request.getParameter("id")); |
- } |
- catch (Exception e) |
- { |
- // TODO: Logging - wrong parameter set |
- } |
+ /** |
+ * Gets the ID Parameter for update / delete requests |
+ * |
+ * @return int from the ID request. If not set or wrong, it gives back -1 |
+ */ |
+ private int getIdParameter() |
+ { |
+ HttpServletRequest request = (HttpServletRequest) ActionContext |
+ .getContext().get(StrutsStatics.HTTP_REQUEST); |
- return id; |
+ int id = -1; |
+ try |
+ { |
+ id = Integer.parseInt(request.getParameter("id")); |
} |
- |
- /** |
- * deletes a relationshipType, gets the ID from the id parameter that was |
- * submitted |
- * |
- * @return String - either success or error |
- */ |
- public String delete() |
+ catch (Exception e) |
{ |
- int id = getIdParameter(); |
- |
- // Check for malicious ID values |
- if (id > 0) |
- { |
- relTypeDAO.deleteRelationshipType(id); |
- return SUCCESS; |
- } |
- else |
- { |
- return ERROR; |
- } |
+ // TODO: Logging - wrong parameter set |
} |
- /* |
- * Getters and setters |
- */ |
+ return id; |
+ } |
- public RelationshipType getRelType() |
- { |
- return relType; |
- } |
+ /** |
+ * deletes a relationshipType, gets the ID from the id parameter that was |
+ * submitted |
+ * |
+ * @return String - either success or error |
+ */ |
+ public String delete() |
+ { |
+ int id = this.getIdParameter(); |
- public void setRelType(RelationshipType relType) |
+ // Check for malicious ID values |
+ if (id > 0) |
{ |
- this.relType = relType; |
+ this.relTypeDAO.deleteRelationshipType(id); |
+ return Action.SUCCESS; |
} |
- |
- public List<RelationshipType> getRelTypeList() |
+ else |
{ |
- return relTypeList; |
+ return Action.ERROR; |
} |
+ } |
- public void setRelTypeList(List<RelationshipType> relTypeList) |
- { |
- this.relTypeList = relTypeList; |
- } |
+ /* |
+ * Getters and setters |
+ */ |
+ |
+ public RelationshipType getRelType() |
+ { |
+ return this.relType; |
+ } |
+ |
+ public void setRelType(RelationshipType relType) |
+ { |
+ this.relType = relType; |
+ } |
+ |
+ public List<RelationshipType> getRelTypeList() |
+ { |
+ return this.relTypeList; |
+ } |
+ |
+ public void setRelTypeList(List<RelationshipType> relTypeList) |
+ { |
+ this.relTypeList = relTypeList; |
+ } |
} |
\ No newline at end of file |
/trunk/src/ch/ffhs/webE/action/TermAction.java |
---|
40,6 → 40,9 |
*/ |
Map<String, Object> session = ActionContext.getContext().getSession(); |
private final HttpServletRequest request = (HttpServletRequest) ActionContext |
.getContext().get(StrutsStatics.HTTP_REQUEST); |
/* |
* (non-Javadoc) |
* |
55,13 → 58,18 |
* |
* @return {@link Action#SUCCESS} |
*/ |
public String add() |
public String save() |
{ |
User user = this.userDAO.searchUsername((String) this.session |
.get("username")); |
ObjectEntity obj = new ObjectEntity(user, new ObjectType(ObjectType.TERM), |
user, null, new Date(), false, this.term, null, null); |
this.term.setObject(obj); |
if (!"1".equals(this.request.getParameter("edit"))) |
{ |
User user = this.userDAO.searchUsername((String) this.session |
.get("username")); |
ObjectEntity obj = new ObjectEntity(user, |
new ObjectType(ObjectType.TERM), user, null, new Date(), false, |
this.term, null, null); |
this.term.setObject(obj); |
} |
if (this.termDAO.saveOrUpdate(this.term)) |
{ |
return Action.SUCCESS; |
77,7 → 85,7 |
*/ |
public String list() |
{ |
this.termList = this.termDAO.listTerm(); |
this.termList = this.termDAO.getTerms(); |
return Action.SUCCESS; |
} |
94,6 → 102,7 |
this.term = this.termDAO.getTermById(id); |
if (this.term != null) |
{ |
this.term.edit = true; |
return Action.SUCCESS; |
} |
} |
108,13 → 117,10 |
*/ |
private int getIdParameter() |
{ |
HttpServletRequest request = (HttpServletRequest) ActionContext |
.getContext().get(StrutsStatics.HTTP_REQUEST); |
int id = -1; |
try |
{ |
id = Integer.parseInt(request.getParameter("id")); //$NON-NLS-1$ |
id = Integer.parseInt(this.request.getParameter("id")); //$NON-NLS-1$ |
} |
catch (Exception e) |
{ |
/trunk/WebContent/admin/relTypeList.jsp |
---|
25,13 → 25,13 |
<td><s:property value="nameTo" /></td> |
<td><s:url id="editURL" action="editRelType"> |
<s:param name="id" value="%{relationshipId}"></s:param> |
<s:param name="id" value="%{id}"></s:param> |
</s:url> <s:a href="%{editURL}"> |
<img src="${contextPath}/resources/icons/page_white_edit.png" alt="edit" /> |
</s:a></td> |
<td><s:url id="deleteURL" action="deleteRelType"> |
<s:param name="id" value="%{relationshipId}"></s:param> |
<s:param name="id" value="%{id}"></s:param> |
</s:url> <s:a href="%{deleteURL}"> |
<img src="${contextPath}/resources/icons/delete.png" alt="delete" /> |
</s:a></td> |
/trunk/WebContent/admin/relTypeAddForm.jsp |
---|
8,11 → 8,11 |
<h1>Beziehungstyp hinzufügen</h1> |
<p>Bitte geben Sie die Daten für den Beziehungstypen ein</p> |
<s:form action="doRelTypeAdd"> |
<s:hidden name="relType.relationshipId" /> |
<s:hidden name="relType.id" /> |
<s:textfield name="relType.nameFrom" label="Name vom Ausgangspunkt (z.B. ist Vater von)" /> |
<s:textfield name="relType.nameTo" label="Name vom Zielpunkt (z.B. ist Sohn von)" /> |
<s:if test="relType.relationshipId != ''"> |
<s:if test="relType.id != ''"> |
<s:submit value="Edit" /> |
</s:if><s:else> |
<s:submit value="Add" /> |
/trunk/WebContent/user/nav.jsp |
---|
7,14 → 7,14 |
<li>Begriffe |
<ul> |
<li><a href="termAddForm">Hinzufügen</a></li> |
<li><a href="termList">Ändern, Löschen</a></li> |
<li><a href="termAdd">Hinzufügen</a></li> |
<li><a href="termList">Anzeigen<!-- Ändern, Löschen --></a></li> |
</ul></li> |
<li>Beziehungen |
<ul> |
<li><a href="">Hinzufügen</a></li> |
<li><a href="">Ändern, Löschen</a></li> |
<li><a href="relationshipAdd">Hinzufügen</a></li> |
<li><a href="relationshipList">Ändern, Löschen</a></li> |
</ul></li> |
<li>User-Settings |
/trunk/WebContent/user/termAddForm.jsp |
---|
7,7 → 7,11 |
<h1> |
Begriff hinzufügen |
</h1> |
<s:form action="doTermAdd"> |
<s:form action="termSave"> |
<s:if test="term.edit"> |
<s:hidden name="edit" value="1" /> |
</s:if> |
<s:hidden name="term.objectId" /> |
<s:textfield name="term.name" label="Name" /> |
<s:if test="term.name != ''"> |
<s:submit value="Umbenennen" /> |
/trunk/WebContent/user/userAdd.jsp |
---|
0,0 → 1,17 |
<html> |
<head> |
<title>User added</title> |
</head> |
<body> |
<h1> |
User hinzugefügt |
</h1> |
<p> |
Der Benutzer wurde hinzugefügt |
</p> |
<p> |
TODO: Weiterleitung!! |
</p> |
</body> |
</html> |
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+text/plain |
\ No newline at end of property |
Index: WebContent/user/relationshipAdd.jsp |
=================================================================== |
--- WebContent/user/relationshipAdd.jsp (nonexistent) |
+++ WebContent/user/relationshipAdd.jsp (revision 34) |
@@ -0,0 +1,17 @@ |
+<html> |
+<head> |
+<title>Relationship added</title> |
+</head> |
+<body> |
+ |
+ <h1> |
+ Beziehung hinzugefügt |
+ </h1> |
+ <p> |
+ Die Beziehung wurde hinzugefügt |
+ </p> |
+ <p> |
+ TODO: Weiterleitung!! |
+ </p> |
+</body> |
+</html> |
\ No newline at end of file |
/WebContent/user/relationshipAdd.jsp |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+text/plain |
\ No newline at end of property |
Index: WebContent/user/relationshipList.jsp |
=================================================================== |
--- WebContent/user/relationshipList.jsp (nonexistent) |
+++ WebContent/user/relationshipList.jsp (revision 34) |
@@ -0,0 +1,47 @@ |
+<%@taglib uri="/struts-tags" prefix="s"%> |
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> |
+<c:set var="contextPath" value="${pageContext.request.contextPath}" /> |
+ |
+<html> |
+ <head> |
+ <title>Beziehung bearbeiten/löschen</title> |
+ </head> |
+ <body> |
+ |
+ <h1>Liste der Beziehungen</h1> |
+ |
+ <s:if test="relationshipList.size() == 0"> |
+ <p>Keine Beziehung definiert</p> |
+ </s:if> |
+ <s:else> |
+ <table> |
+ <thead> |
+ <th>Begriff 1</th> |
+ <th>Beziehung</th> |
+ <th>Begriff 2</th> |
+ </thead> |
+ <tbody> |
+ <s:iterator value="relationshipList" status="stat"> |
+ <tr> |
+ <td><s:property value="termFrom.name" /></td> |
+ <td><s:property value="relationshipType.nameFrom" /></td> |
+ <td><s:property value="termTo.name" /></td> |
+ |
+ <td><s:url id="editURL" action="editRelationship"> |
+ <s:param name="id" value="%{objectId}"></s:param> |
+ </s:url> <s:a href="%{editURL}"> |
+ <img src="${contextPath}/resources/icons/page_white_edit.png" alt="edit" /> |
+ </s:a></td> |
+ |
+ <td><s:url id="deleteURL" action="deleteRelationship"> |
+ <s:param name="id" value="%{objectId}"></s:param> |
+ </s:url> <s:a href="%{deleteURL}"> |
+ <img src="${contextPath}/resources/icons/delete.png" alt="delete" /> |
+ </s:a></td> |
+ </tr> |
+ </s:iterator> |
+ </tbody> |
+ </table> |
+ </s:else> |
+ </body> |
+</html> |
\ No newline at end of file |
/WebContent/user/relationshipList.jsp |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+text/plain |
\ No newline at end of property |
Index: WebContent/user/relationshipAddForm.jsp |
=================================================================== |
--- WebContent/user/relationshipAddForm.jsp (nonexistent) |
+++ WebContent/user/relationshipAddForm.jsp (revision 34) |
@@ -0,0 +1,18 @@ |
+<%@taglib uri="/struts-tags" prefix="s"%> |
+<html> |
+ <head> |
+ <title>Beziehung hinzufügen</title> |
+ </head> |
+ <body> |
+ <h1> |
+ Beziehung hinzufügen |
+ </h1> |
+ <s:form action="relationshipSave"> |
+ <s:hidden name="relationship.objectId" /> |
+ <s:select name="term1" list="terms" listKey="objectId" listValue="name" label="Begriff 1"/> |
+ <s:select name="type" list="relationshipTypes" listKey="id" listValue="nameFrom" label="Beziehungstyp"/> |
+ <s:select name="term2" list="terms" listKey="objectId" listValue="name" label="Begriff 2"/> |
+ <s:submit value="Hinzufügen" /> |
+ </s:form> |
+ </body> |
+</html> |
/WebContent/user/relationshipAddForm.jsp |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+text/plain |
\ No newline at end of property |
Index: WebContent/user/termList.jsp |
=================================================================== |
--- WebContent/user/termList.jsp (revision 33) |
+++ WebContent/user/termList.jsp (revision 34) |
@@ -15,26 +15,12 @@ |
</s:if> |
<s:else> |
<table> |
- <tr> |
- <th>Begriff</th> |
- </tr> |
- <s:iterator value="termList" status="stat"> |
- <tr> |
- <td><s:property value="name" /></td> |
- |
- <td><s:url id="editURL" action="editTerm"> |
- <s:param name="id" value="%{objectId}"></s:param> |
- </s:url> <s:a href="%{editURL}"> |
- <img src="${contextPath}/resources/icons/page_white_edit.png" alt="edit" /> |
- </s:a></td> |
- |
- <td><s:url id="deleteURL" action="deleteTerm"> |
- <s:param name="id" value="%{id}"></s:param> |
- </s:url> <s:a href="%{deleteURL}"> |
- <img src="${contextPath}/resources/icons/delete.png" alt="delete" /> |
- </s:a></td> |
- </tr> |
- </s:iterator> |
+ <s:iterator value="termList" status="stat"> |
+ <tr> |
+ <td><s:property value="name" /></td> |
+ </tr> |
+ </s:iterator> |
+ </tbody> |
</table> |
</s:else> |
</body> |
Index: docs/rdm.mwb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |