Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java,v diff -u -r1.5 -r1.6 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java 9 Nov 2005 06:30:49 -0000 1.5 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java 14 Nov 2005 06:32:14 -0000 1.6 @@ -22,170 +22,433 @@ */ package org.lamsfoundation.lams.learningdesign.dto; +import org.lamsfoundation.lams.learningdesign.Activity; +import org.lamsfoundation.lams.learningdesign.GateActivity; +import org.lamsfoundation.lams.learningdesign.Grouping; +import org.lamsfoundation.lams.learningdesign.GroupingActivity; +import org.lamsfoundation.lams.learningdesign.OptionsActivity; +import org.lamsfoundation.lams.learningdesign.ParallelActivity; +import org.lamsfoundation.lams.learningdesign.PermissionGateActivity; +import org.lamsfoundation.lams.learningdesign.ScheduleGateActivity; +import org.lamsfoundation.lams.learningdesign.SequenceActivity; +import org.lamsfoundation.lams.learningdesign.SynchGateActivity; import org.lamsfoundation.lams.learningdesign.ToolActivity; +import org.lamsfoundation.lams.learningdesign.dto.GroupingDTO; import org.lamsfoundation.lams.tool.dto.AuthoringToolDTO; +import org.lamsfoundation.lams.tool.Tool; import org.lamsfoundation.lams.util.wddx.WDDXTAGS; +import java.util.ArrayList; +import java.util.Date; +import java.util.Set; -/** - * @author Manpreet Minhas - * - * This class acts as a data transfer object for transfering - * information between FLASH and the core module. This class - * passes information about the template activities(tool activities) - * assocaited with a given Learning Library. - * - * Every Learning Library has a Tool activity (also known as template - * activity) associated with it. And every tool activity has its own Tool. - * - * This is utility class required by the authoring enviorment to pass - * information about installed libraries to populate the tool panel - * on the left hand side of the Authoring Canvas. - * - */ -public class LibraryActivityDTO extends BaseDTO { - - /***************************************************************************** - * Attributes - *****************************************************************************/ - - /** identifier field */ - private Long activityID; - - /** FLASH generated value. Unique per LearningDesign. - * Required by flash only.*/ - private Integer activityUIID; - - /** Description of the activity*/ +public class LibraryActivityDTO extends BaseDTO +{ + private Integer activityTypeID; + private Long activityID; + private Integer activityCategoryID; + private Integer activityUIID; + private Long learningLibraryID; //not sure if this is needed + private Long learningDesignID; + private Long libraryActivityID; + private Long parentActivityID; + private Integer parentUIID; + private Integer orderID; + private Long groupingID; + private Integer groupingUIID; private String description; - - /** Title of the activity*/ private String title; - - /** Help text for the activity*/ private String helpText; - - /** UI specific attribute indicating the - * position of the activity*/ private Integer xCoord; - - /** UI specific attribute indicating the - * position of the activity*/ private Integer yCoord; - - /** The image that represents the icon of this - * activity in the UI*/ private String libraryActivityUIImage; + private Boolean applyGrouping; + private Boolean runOffline; + private Boolean defineLater; + private Date createDateTime; + private Integer groupingSupportType; - /** The type of activity */ - private Integer activityTypeID; + private AuthoringToolDTO tool; //no longer used - /** The category of activity */ - private Integer activityCategoryID; + /* Properties Specific to ToolActivity */ + private Long toolID; + private Long toolContentID; + private String toolDisplayName; + private Boolean supportsDefineLater; + private Boolean supportsRunOffline; + private Boolean supportsModeration; + private Boolean supportsContribute; + private String authoringURL; - private AuthoringToolDTO tool; + /* Grouping Activities */ - /***************************************************************************** - * Constructors - *****************************************************************************/ + /* Optional Activities */ + private Integer maxOptions; + private Integer minOptions; + private String optionsInstructions; - public LibraryActivityDTO(Long activityId, Integer activityUIID, - String description, String title, String helpText, Integer xcoord, - Integer ycoord,String libraryActivityUiImage,AuthoringToolDTO tool) { - super(); - this.activityID = activityId; - this.activityUIID = activityUIID; - this.description = description; - this.title = title; - this.helpText = helpText; - this.xCoord = xcoord; - this.yCoord = ycoord; - this.libraryActivityUIImage = libraryActivityUiImage; - this.tool = tool; + /* Sequence Activities */ + + /* Gate Activities */ + private Integer gateActivityLevelID; + private Boolean gateOpen; + private Long gateStartTimeOffset; + private Long gateEndTimeOffset; + private Date gateStartDateTime; + private Date gateEndDateTime; + + public LibraryActivityDTO (Activity activity) + { + this.activityTypeID = activity.getActivityTypeId(); + this.activityID = activity.getActivityId(); + this.activityCategoryID = activity.getActivityCategoryID(); + this.activityUIID = activity.getActivityUIID(); + this.learningLibraryID = activity.getLearningLibrary() != null ? activity.getLearningLibrary().getLearningLibraryId() : null; + this.learningDesignID = activity.getLearningDesign() != null ? activity.getLearningDesign().getLearningDesignId() : null; + this.libraryActivityID = activity.getLibraryActivity() != null ? activity.getLibraryActivity().getActivityId() : null; + this.parentActivityID = activity.getParentActivity() != null ? activity.getParentActivity().getActivityId() : null; + this.parentUIID = activity.getParentUIID(); + this.orderID = activity.getOrderId(); + this.groupingID = activity.getGrouping()!= null? activity.getGrouping().getGroupingId(): null; + this.groupingUIID = activity.getGroupingUIID(); + this.description = activity.getDescription(); + this.title = activity.getTitle(); + this.helpText = activity.getHelpText(); + this.xCoord = activity.getXcoord(); + this.yCoord = activity.getYcoord(); + this.libraryActivityUIImage = activity.getLibraryActivityUiImage(); + this.applyGrouping = activity.getApplyGrouping(); + this.runOffline = activity.getRunOffline(); + this.defineLater = activity.getDefineLater(); + this.createDateTime = activity.getCreateDateTime(); + this.groupingSupportType = activity.getGroupingSupportType(); + processActivityType(activity); + } - public LibraryActivityDTO(ToolActivity activity){ - this.activityID = activity.getActivityId(); - this.activityUIID = activity.getActivityUIID(); - this.description = activity.getDescription(); - this.title = activity.getTitle(); - this.helpText = activity.getHelpText(); - this.xCoord = activity.getXcoord(); - this.yCoord = activity.getYcoord(); - this.libraryActivityUIImage = activity.getLibraryActivityUiImage(); - this.activityTypeID = activity.getActivityTypeId(); - this.activityCategoryID = activity.getActivityCategoryID(); - this.tool = activity.getTool().getAuthoringToolDTO(); + + private void processActivityType(Activity activity){ + if(activity.isGroupingActivity()) + addGroupingActivityAttributes((GroupingActivity)activity); + else if(activity.isToolActivity()) + addToolActivityAttributes((ToolActivity)activity); + else if(activity.isGateActivity()) + addGateActivityAttributes(activity); + else + addComplexActivityAttributes(activity); } - - /***************************************************************************** - * Setter Methods - *****************************************************************************/ - - /** - * @return Returns the activityID. - */ - public Long getActivityID() { - return activityID; - } - /** - * @return Returns the activityUIID. - */ - public Integer getActivityUIID() { - return activityUIID; - } - /** - * @return Returns the description. - */ - public String getDescription() { - return description; + private void addComplexActivityAttributes(Activity activity){ + if(activity.isOptionsActivity()) + addOptionsActivityAttributes((OptionsActivity)activity); + else if (activity.isParallelActivity()) + addParallelActivityAttributes((ParallelActivity)activity); + else + addSequenceActivityAttributes((SequenceActivity)activity); + } - /** - * @return Returns the helpText. - */ - public String getHelpText() { - return helpText; + private void addGroupingActivityAttributes(GroupingActivity groupingActivity){ + Grouping grouping = groupingActivity.getCreateGrouping(); + + /* this.groupingDTO = grouping.getGroupingDTO(); + this.createGroupingID = grouping.getGroupingId(); + this.createGroupingUIID = grouping.getGroupingUIID(); + this.groupingType = grouping.getGroupingTypeId(); */ } - /** - * @return Returns the libraryActivityUiImage. - */ - public String getLibraryActivityUIImage() { - return libraryActivityUIImage; - } - /** - * @return Returns the title. - */ - public String getTitle() { - return title; - } - /** - * @return Returns the xcoord. - */ - public Integer getxCoord() { - return xCoord; + private void addOptionsActivityAttributes(OptionsActivity optionsActivity){ + this.maxOptions = optionsActivity.getMaxNumberOfOptions(); + this.minOptions = optionsActivity.getMinNumberOfOptions(); + this.optionsInstructions = optionsActivity.getOptionsInstructions(); } - /** - * @return Returns the ycoord. - */ - public Integer getyCoord() { - return yCoord; - } - /** - * @return Returns the tool. - */ - public AuthoringToolDTO getTool() { - return tool; + private void addParallelActivityAttributes(ParallelActivity activity){ + } - - /** - * @return Returns the activityCategoryID. - */ - public Integer getActivityCategoryID() { - return activityCategoryID; + private void addSequenceActivityAttributes(SequenceActivity activity){ } - /** - * @return Returns the activityTypeID. - */ - public Integer getActivityTypeID() { - return activityTypeID; + private void addToolActivityAttributes(ToolActivity toolActivity){ + Tool tool = toolActivity.getTool(); + if (tool != null) + { + this.toolID = tool.getToolId(); + this.toolContentID = new Long(tool.getDefaultToolContentId()); + this.toolDisplayName = tool.getToolDisplayName(); + this.supportsDefineLater = new Boolean(tool.getSupportsDefineLater()); + this.supportsRunOffline = new Boolean(tool.getSupportsRunOffline()); + this.supportsModeration = new Boolean(tool.getSupportsModeration()); + this.supportsContribute = new Boolean(tool.getSupportsContribute()); + this.authoringURL = tool.getAuthorUrl(); + } + } + private void addGateActivityAttributes(Object activity){ + if(activity instanceof SynchGateActivity) + addSynchGateActivityAttributes((SynchGateActivity)activity); + else if (activity instanceof PermissionGateActivity) + addPermissionGateActivityAttributes((PermissionGateActivity)activity); + else + addScheduleGateActivityAttributes((ScheduleGateActivity)activity); + GateActivity gateActivity = (GateActivity)activity ; + this.gateActivityLevelID = gateActivity.getGateActivityLevelId(); + this.gateOpen = gateActivity.getGateOpen(); + + } + private void addSynchGateActivityAttributes(SynchGateActivity activity){ + } + private void addPermissionGateActivityAttributes(PermissionGateActivity activity){ + } + private void addScheduleGateActivityAttributes(ScheduleGateActivity activity){ + + this.gateStartDateTime = activity.getGateStartDateTime(); + this.gateStartTimeOffset = activity.getGateStartTimeOffset(); + this.gateEndDateTime = activity.getGateEndDateTime(); + this.gateEndTimeOffset = activity.getGateEndTimeOffset(); + } + + /** + * @return Returns the activityCategoryID. + */ + public Integer getActivityCategoryID() { + return activityCategoryID; + } + /** + * @return Returns the activityID. + */ + public Long getActivityID() { + return activityID; + } + /** + * @return Returns the activityTypeID. + */ + public Integer getActivityTypeID() { + return activityTypeID; + } + /** + * @return Returns the activityUIID. + */ + public Integer getActivityUIID() { + return activityUIID; + } + /** + * @return Returns the applyGrouping. + */ + public Boolean getApplyGrouping() { + return applyGrouping; + } + /** + * @return Returns the createDateTime. + */ + public Date getCreateDateTime() { + return createDateTime; + } + /** + * @return Returns the defineLater. + */ + public Boolean getDefineLater() { + return defineLater; + } + /** + * @return Returns the description. + */ + public String getDescription() { + return description; + } + /** + * @return Returns the groupingID. + */ + public Long getGroupingID() { + return groupingID; + } + /** + * @return Returns the groupingSupportType. + */ + public Integer getGroupingSupportType() { + return groupingSupportType; + } + /** + * @return Returns the groupingUIID. + */ + public Integer getGroupingUIID() { + return groupingUIID; + } + /** + * @return Returns the helpText. + */ + public String getHelpText() { + return helpText; + } + /** + * @return Returns the learningDesignID. + */ + public Long getLearningDesignID() { + return learningDesignID; + } + /** + * @return Returns the learningLibraryID. + */ + public Long getLearningLibraryID() { + return learningLibraryID; + } + /** + * @return Returns the libraryActivityID. + */ + public Long getLibraryActivityID() { + return libraryActivityID; + } + /** + * @return Returns the libraryActivityUIImage. + */ + public String getLibraryActivityUIImage() { + return libraryActivityUIImage; + } + /** + * @return Returns the orderID. + */ + public Integer getOrderID() { + return orderID; + } + /** + * @return Returns the parentActivityID. + */ + public Long getParentActivityID() { + return parentActivityID; + } + /** + * @return Returns the parentUIID. + */ + public Integer getParentUIID() { + return parentUIID; + } + /** + * @return Returns the runOffline. + */ + public Boolean getRunOffline() { + return runOffline; + } + /** + * @return Returns the title. + */ + public String getTitle() { + return title; + } + /** + * @return Returns the tool. + */ + public AuthoringToolDTO getTool() { + return tool; + } + /** + * @return Returns the xCoord. + */ + public Integer getxCoord() { + return xCoord; + } + /** + * @return Returns the yCoord. + */ + public Integer getyCoord() { + return yCoord; + } + + /** + * @return Returns the authoringURL. + */ + public String getAuthoringURL() { + return authoringURL; + } + /** + * @return Returns the supportsContribute. + */ + public Boolean getSupportsContribute() { + return supportsContribute; + } + /** + * @return Returns the supportsDefineLater. + */ + public Boolean getSupportsDefineLater() { + return supportsDefineLater; + } + /** + * @return Returns the supportsModeration. + */ + public Boolean getSupportsModeration() { + return supportsModeration; + } + /** + * @return Returns the supportsRunOffline. + */ + public Boolean getSupportsRunOffline() { + return supportsRunOffline; + } + /** + * @return Returns the toolContentID. + */ + public Long getToolContentID() { + return toolContentID; + } + /** + * @return Returns the toolDisplayName. + */ + public String getToolDisplayName() { + return toolDisplayName; + } + /** + * @return Returns the toolID. + */ + public Long getToolID() { + return toolID; + } + + /** + * @return Returns the gateActivityLevelID. + */ + public Integer getGateActivityLevelID() { + return gateActivityLevelID; + } + /** + * @return Returns the gateEndDateTime. + */ + public Date getGateEndDateTime() { + return gateEndDateTime; + } + /** + * @return Returns the gateEndTimeOffset. + */ + public Long getGateEndTimeOffset() { + return gateEndTimeOffset; + } + /** + * @return Returns the gateOpen. + */ + public Boolean getGateOpen() { + return gateOpen; + } + /** + * @return Returns the gateStartDateTime. + */ + public Date getGateStartDateTime() { + return gateStartDateTime; + } + /** + * @return Returns the gateStartTimeOffset. + */ + public Long getGateStartTimeOffset() { + return gateStartTimeOffset; + } + + /** + * @return Returns the maxOptions. + */ + public Integer getMaxOptions() { + return maxOptions; + } + /** + * @return Returns the minOptions. + */ + public Integer getMinOptions() { + return minOptions; + } + /** + * @return Returns the optionsInstructions. + */ + public String getOptionsInstructions() { + return optionsInstructions; + } }