Index: lams_tool_eadventure/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -re7b84a8dda80b775d674d686a2564d40c7e3f871 -rffd772499eed6c23b2c9e95d6d34132f5e32e191 --- lams_tool_eadventure/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision e7b84a8dda80b775d674d686a2564d40c7e3f871) +++ lams_tool_eadventure/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision ffd772499eed6c23b2c9e95d6d34132f5e32e191) @@ -14,6 +14,7 @@ label.authoring.basic.resource.add.instruction =Add Instruction label.authoring.online.instruction =Online Instructions label.authoring.offline.instruction =Offline Instructions +label.authoring.heading.conditions = Conditions error.resource.item.desc.blank =Comment/Instruction can not be blank tool.display.name =eAdventure Tool tool.description =Tool for use games in a sequence. Index: lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/model/EadventureItemVisitLog.java =================================================================== diff -u -re7b84a8dda80b775d674d686a2564d40c7e3f871 -rffd772499eed6c23b2c9e95d6d34132f5e32e191 --- lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/model/EadventureItemVisitLog.java (.../EadventureItemVisitLog.java) (revision e7b84a8dda80b775d674d686a2564d40c7e3f871) +++ lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/model/EadventureItemVisitLog.java (.../EadventureItemVisitLog.java) (revision ffd772499eed6c23b2c9e95d6d34132f5e32e191) @@ -48,6 +48,10 @@ public EadventureItemVisitLog(){ eadventureVars = new HashSet(); } + + + + /** * @hibernate.property column="access_date" * @return @@ -116,9 +120,9 @@ * * * @hibernate.set lazy="true" - * inverse="true" + * inverse="false" * cascade="all" - * order-by="create_date desc" + * * @hibernate.collection-key column="visit_log_uid" * @hibernate.collection-one-to-many class="org.eucm.lams.tool.eadventure.model.EadventureVars" * Index: lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/model/EadventureVars.java =================================================================== diff -u -re7b84a8dda80b775d674d686a2564d40c7e3f871 -rffd772499eed6c23b2c9e95d6d34132f5e32e191 --- lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/model/EadventureVars.java (.../EadventureVars.java) (revision e7b84a8dda80b775d674d686a2564d40c7e3f871) +++ lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/model/EadventureVars.java (.../EadventureVars.java) (revision ffd772499eed6c23b2c9e95d6d34132f5e32e191) @@ -22,6 +22,12 @@ /* $Id$ */ package org.eucm.lams.tool.eadventure.model; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import org.apache.log4j.Logger; /** * Eadventure @@ -30,15 +36,96 @@ * @hibernate.class table="tl_eueadv10_var" * */ -public class EadventureVars { +public class EadventureVars implements Cloneable{ + private static final Logger log = Logger.getLogger(EadventureVars.class); + private Long uid; private String name; private String type; private String value; //TODO necesito tener el visitLog entero o solo el uid??�?�?? private EadventureItemVisitLog visitLog; + + public EadventureVars(){ + + } + /** + * {@Override} + */ + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((type == null) ? 0 : type.hashCode()); + result = prime * result + ((value == null) ? 0 : value.hashCode()); + result = prime * result + ((uid == null) ? 0 : uid.hashCode()); + result = prime * result + ((visitLog == null) ? 0 : visitLog.hashCode()); + return result; + } + + /** + * {@Override} + */ + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null) return false; + if (getClass() != obj.getClass()) return false; + final EadventureVars other = (EadventureVars) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + + if (type == null) { + if (other.type != null) + return false; + } else if (!type.equals(other.type)) + return false; + + if (value == null) { + if (other.value != null) + return false; + } else if (!value.equals(other.value)) + return false; + + if (visitLog == null) { + if (other.visitLog != null) + return false; + } else if (!visitLog.equals(other.visitLog)) + return false; + + if (uid == null) { + if (other.uid != null) + return false; + } else if (!uid.equals(other.uid)) + return false; + + return true; + } + + /** + * {@Override} + */ + public Object clone(){ + + EadventureVars vars = null; + try{ + vars = (EadventureVars) super.clone(); + vars.setUid(null); + vars.setVisitLog(null); + + } catch (CloneNotSupportedException e) { + log.error("When clone " + EadventureVars.class + " failed"); + } + + return vars; + } + + + /** * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" * @return Returns the log Uid. */ Index: lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/service/EadventureServiceImpl.java =================================================================== diff -u -re7b84a8dda80b775d674d686a2564d40c7e3f871 -rffd772499eed6c23b2c9e95d6d34132f5e32e191 --- lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/service/EadventureServiceImpl.java (.../EadventureServiceImpl.java) (revision e7b84a8dda80b775d674d686a2564d40c7e3f871) +++ lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/service/EadventureServiceImpl.java (.../EadventureServiceImpl.java) (revision ffd772499eed6c23b2c9e95d6d34132f5e32e191) @@ -1031,7 +1031,6 @@ } - eadventureDao.saveObject(toolContentObj); @@ -1051,7 +1050,7 @@ * @throws EadventureApplicationException */ - @Override + // @Override public SortedMap getToolOutputDefinitions(Long toolContentId) throws ToolException { Eadventure content = getEadventureByContentId(toolContentId); if (content == null) { @@ -1459,6 +1458,7 @@ if (condition != null) { EadventureItemVisitLog visitLog = eadventureItemVisitDao.getEadventureItemLog(eadventure.getUid(), userUid); Set eadV = visitLog.getEadventureVars(); + if (eadV.isEmpty()){ List eadventureVars = new ArrayList( eadV); //TODO comprobar si no lo tengo que meter con comparator para que salga en orden Iterator it = condition.getEadListExpression().iterator(); @@ -1494,6 +1494,10 @@ break; } } + }else { + //There aren't vars set for this user and session + result=false; + } } else { //there is no such a condition result = false; @@ -1504,12 +1508,14 @@ private boolean checkExpression(EadventureExpression expr, List eadventureVars){ EadventureVars firstVar = getVarByName(expr.getFirstOp().getName(),eadventureVars); + firstVar.setType(expr.getFirstOp().getType()); EadventureVars secVar = null; String operator = expr.getExpresionOp(); String value = expr.getValueIntroduced(); - if (expr.getVarIntroduced()!=null) + if (expr.getVarIntroduced()!=null){ secVar = getVarByName(expr.getVarIntroduced().getName(),eadventureVars); - + secVar.setType(expr.getVarIntroduced().getType()); + } if (secVar==null) return evalExpr(firstVar.getType(), firstVar.getValue(), value, operator); else @@ -1558,7 +1564,7 @@ //TODO IMPORRRRRRRRRRRRRRRTANTE!!!!!!!!!!!!!!! el par�metro toolContentID que estamos pasando es realmente toolSessionID!!!! - @Override + //@Override public boolean setAppletInput(String name, String value, String userId, String toolContentID) { //TODO restart when EadventureServiceImpl.log.error("EEEEEEEEEEEEEEEEEE " + name); @@ -1594,19 +1600,19 @@ return changeButton; } - @Override + //@Override public void setReportInput(String name, String value, String userId, String toolSessionID) { // TODO Auto-generated method stub } - @Override + //@Override public EadventureItemVisitLog getEadventureItemLog(Long itemUid, Long userId) { return eadventureItemVisitDao.getEadventureItemLog(itemUid, userId); } - @Override + // @Override public EadventureVars getEadventureVars(Long itemVisitLogID, String name) { return eadventureVarsDao.getEadventureVars(itemVisitLogID, name); } Index: lams_tool_eadventure/web/pages/learningobj/mainframe.jsp =================================================================== diff -u -re7b84a8dda80b775d674d686a2564d40c7e3f871 -rffd772499eed6c23b2c9e95d6d34132f5e32e191 --- lams_tool_eadventure/web/pages/learningobj/mainframe.jsp (.../mainframe.jsp) (revision e7b84a8dda80b775d674d686a2564d40c7e3f871) +++ lams_tool_eadventure/web/pages/learningobj/mainframe.jsp (.../mainframe.jsp) (revision ffd772499eed6c23b2c9e95d6d34132f5e32e191) @@ -54,7 +54,7 @@ //--> - +