List of usage examples for org.apache.wicket.markup.html.form SubmitLink SubmitLink
public SubmitLink(String id)
From source file:org.projectforge.web.timesheet.TimesheetListForm.java
License:Open Source License
@SuppressWarnings("serial") @Override/* www . j a v a 2 s . com*/ protected void init() { super.init(); add(new IFormValidator() { @Override public FormComponent<?>[] getDependentFormComponents() { return dependentFormComponents; } @Override public void validate(final Form<?> form) { if (parentPage.isMassUpdateMode() == true) { } else { final TimesheetFilter filter = getSearchFilter(); final Date from = startDate.getConvertedInput(); final Date to = stopDate.getConvertedInput(); if (from == null && to == null && filter.getTaskId() == null) { error(getString("timesheet.error.filter.needMore")); } else if (from != null && to != null && from.after(to) == true) { error(getString("timesheet.error.startTimeAfterStopTime")); } } } }); final TimesheetFilter filter = getSearchFilter(); { gridBuilder.newSplitPanel(GridSize.COL66); final FieldsetPanel fs = gridBuilder.newFieldset(getString("task")).supressLabelForWarning(); final TaskSelectPanel taskSelectPanel = new TaskSelectPanel(fs.newChildId(), new Model<TaskDO>() { @Override public TaskDO getObject() { return taskTree.getTaskById(getSearchFilter().getTaskId()); } }, parentPage, "taskId") { @Override protected void selectTask(final TaskDO task) { super.selectTask(task); if (task != null) { getSearchFilter().setTaskId(task.getId()); } parentPage.refresh(); } }; fs.add(taskSelectPanel); taskSelectPanel.init(); taskSelectPanel.setRequired(false); } { // Assignee gridBuilder.newSplitPanel(GridSize.COL33); final FieldsetPanel fs = gridBuilder.newFieldset(getString("user")); final UserSelectPanel assigneeSelectPanel = new UserSelectPanel(fs.newChildId(), new Model<PFUserDO>() { @Override public PFUserDO getObject() { return userGroupCache.getUser(filter.getUserId()); } @Override public void setObject(final PFUserDO object) { if (object == null) { filter.setUserId(null); } else { filter.setUserId(object.getId()); } } }, parentPage, "userId"); fs.add(assigneeSelectPanel); assigneeSelectPanel.setDefaultFormProcessing(false); assigneeSelectPanel.init().withAutoSubmit(true); } { gridBuilder.newSplitPanel(GridSize.COL66); final FieldsetPanel fs = gridBuilder.newFieldset(getString("timePeriod")); startDate = new DatePanel(fs.newChildId(), new PropertyModel<Date>(filter, "startTime"), DatePanelSettings.get().withSelectPeriodMode(true)); fs.add(dependentFormComponents[0] = startDate); fs.setLabelFor(startDate); fs.add(new DivTextPanel(fs.newChildId(), " - ")); stopDate = new DatePanel(fs.newChildId(), new PropertyModel<Date>(filter, "stopTime"), DatePanelSettings.get().withSelectPeriodMode(true)); fs.add(dependentFormComponents[1] = stopDate); { final SubmitLink unselectPeriodLink = new SubmitLink(IconLinkPanel.LINK_ID) { @Override public void onSubmit() { getSearchFilter().setStartTime(null); getSearchFilter().setStopTime(null); clearInput(); parentPage.refresh(); }; }; unselectPeriodLink.setDefaultFormProcessing(false); fs.add(new IconLinkPanel(fs.newChildId(), IconType.REMOVE_SIGN, new ResourceModel("calendar.tooltip.unselectPeriod"), unselectPeriodLink) .setColor(CSSColor.RED)); } final QuickSelectPanel quickSelectPanel = new QuickSelectPanel(fs.newChildId(), parentPage, "quickSelect", startDate); fs.add(quickSelectPanel); quickSelectPanel.init(); fs.add(new DivTextPanel(fs.newChildId(), new Model<String>() { @Override public String getObject() { return WicketUtils.getCalendarWeeks(TimesheetListForm.this, filter.getStartTime(), filter.getStopTime()); } })); fs.add(new HtmlCommentPanel(fs.newChildId(), new Model<String>() { @Override public String getObject() { return WicketUtils.getUTCDates(filter.getStartTime(), filter.getStopTime()); } })); } { // Duration gridBuilder.newSplitPanel(GridSize.COL33); final FieldsetPanel fs = gridBuilder.newFieldset(getString("timesheet.totalDuration")) .supressLabelForWarning(); fs.add(new DivTextPanel(fs.newChildId(), new Model<String>() { @Override public String getObject() { long duration = 0; if (parentPage.getList() != null) { for (final TimesheetDO sheet : parentPage.getList()) { duration += sheet.getDuration(); } } return dateTimeFormatter.getPrettyFormattedDuration(duration); } })); } }
From source file:org.projectforge.web.tree.TreeIconsActionPanel.java
License:Open Source License
public void init(final TreeTablePanel page, final TreeTableNode treeNode) { this.treeNode = treeNode; final ContextImage spacerImage = new PresizedImage("spacer", WebConstants.IMAGE_SPACER); final boolean showExploreIcon = treeNode.hasChilds(); int spacerWidth; if (showExploreIcon == true) spacerWidth = treeNode.getIndent() * WebConstants.IMAGE_TREE_ICON_WIDTH + 1; else//from w ww.j a va 2 s. c o m spacerWidth = (treeNode.getIndent() + 1) * WebConstants.IMAGE_TREE_ICON_WIDTH + 1; spacerImage.add(AttributeModifier.replace("width", String.valueOf(spacerWidth))); if (this.link.isVisible() == true) { link.add(spacerImage); add(WicketUtils.getInvisibleDummyImage("spacer", getRequestCycle())); } else { add(spacerImage); } final ContextImage leafImage = new PresizedImage("leaf", WebConstants.IMAGE_TREE_ICON_LEAF); leafImage.setVisible(treeNode.isLeaf()); add(leafImage); final WebMarkupContainer iconSpan = new WebMarkupContainer("icons"); add(iconSpan); if (useAjaxAtDefault == false) { iconSpan.setRenderBodyOnly(true); } { final WebMarkupContainer exploreLink; if (useAjaxAtDefault == true) { exploreLink = new AjaxFallbackLink<Object>("explore") { @Override public void onClick(final AjaxRequestTarget target) { if (target == null || treeTable == null) { // Link with right mouse button and select new browser window / tab? return; } treeTable.setOpenedStatusOfNode(TreeTableEvent.EXPLORE, treeNode.getHashId()); if (treeNode.isFolder() == true) { // Implore page.setEvent(target, TreeTableEvent.IMPLORE, treeNode); } else { // Explore page.setEvent(target, TreeTableEvent.EXPLORE, treeNode); } }; }; } else if (useSubmitLinkImages == true) { exploreLink = new SubmitLink("explore") { @Override public void onSubmit() { treeTable.setOpenedStatusOfNode(TreeTableEvent.EXPLORE, treeNode.getHashId()); page.setEventNode(treeNode.getHashId()); } }; } else { exploreLink = new Link<Object>("explore") { @Override public void onClick() { treeTable.setOpenedStatusOfNode(TreeTableEvent.EXPLORE, treeNode.getHashId()); page.setEventNode(treeNode.getHashId()); }; }; } exploreLink.setVisible(showExploreIcon); iconSpan.add(exploreLink); // Get string results in warnings (panel was added before)? final ContextImage exploreImage = new PresizedImage("explore", WebConstants.IMAGE_TREE_ICON_EXPLOSION); exploreLink.add(exploreImage); } { final WebMarkupContainer folderLink; if (useAjaxAtDefault == true) { folderLink = new AjaxFallbackLink<TreeTableNode>("folder", new Model<TreeTableNode>(treeNode)) { @Override public void onClick(final AjaxRequestTarget target) { if (target == null || treeTable == null) { // Link with right mouse button and select new browser window / tab? return; } if (getModelObject().isOpened() == true) { treeTable.setOpenedStatusOfNode(TreeTableEvent.CLOSE, treeNode.getHashId()); page.setEvent(target, TreeTableEvent.CLOSE, treeNode); } else { treeTable.setOpenedStatusOfNode(TreeTableEvent.OPEN, treeNode.getHashId()); page.setEvent(target, TreeTableEvent.OPEN, treeNode); } }; }; } else if (useSubmitLinkImages == true) { folderLink = new SubmitLink("folder", new Model<TreeTableNode>(treeNode)) { @Override public void onSubmit() { if (((TreeTableNode) getDefaultModelObject()).isOpened() == true) { treeTable.setOpenedStatusOfNode(TreeTableEvent.CLOSE, treeNode.getHashId()); page.setEventNode(treeNode.getHashId()); } else { treeTable.setOpenedStatusOfNode(TreeTableEvent.OPEN, treeNode.getHashId()); page.setEventNode(treeNode.getHashId()); } } }; } else { folderLink = new Link<TreeTableNode>("folder", new Model<TreeTableNode>(treeNode)) { @Override public void onClick() { if (getModelObject().isOpened() == true) { treeTable.setOpenedStatusOfNode(TreeTableEvent.CLOSE, treeNode.getHashId()); page.setEventNode(treeNode.getHashId()); } else { treeTable.setOpenedStatusOfNode(TreeTableEvent.OPEN, treeNode.getHashId()); page.setEventNode(treeNode.getHashId()); } }; }; } folderLink.setVisible(treeNode.hasChilds() == true); iconSpan.add(folderLink); folderImage = new PresizedImage("folderImage", WebConstants.IMAGE_TREE_ICON_FOLDER); folderImage.setOutputMarkupId(true); folderOpenImage = new PresizedImage("folderOpenImage", WebConstants.IMAGE_TREE_ICON_FOLDER_OPEN); folderOpenImage.setOutputMarkupId(true); folderLink.add(folderImage).add(folderOpenImage); } final Label clickedEntryLabel = new Label("clickedEntry", "<a name=\"clickedEntry\" />"); clickedEntryLabel.setEscapeModelStrings(false); final Serializable eventNode = page.getEventNode(); clickedEntryLabel.setVisible(eventNode != null && eventNode.equals(treeNode.getHashId()) == true); add(clickedEntryLabel); }
From source file:org.projectforge.web.user.GroupSelectPanel.java
License:Open Source License
@Override @SuppressWarnings("serial") public GroupSelectPanel init() { super.init(); final Label groupAsStringLabel = new Label("groupAsString", new Model<String>() { @Override// www .j a v a 2 s. c o m public String getObject() { final GroupDO group = getModelObject(); Hibernate.initialize(group); if (group != null) { return group.getName(); } return ""; } }); add(groupAsStringLabel); final SubmitLink selectButton = new SubmitLink("select") { @Override public void onSubmit() { setResponsePage(new GroupListPage(caller, selectProperty)); }; }; selectButton.setDefaultFormProcessing(defaultFormProcessing); add(selectButton); selectButton.add( new TooltipImage("selectHelp", WebConstants.IMAGE_GROUP_SELECT, getString("tooltip.selectGroup"))); final SubmitLink unselectButton = new SubmitLink("unselect") { @Override public void onSubmit() { caller.unselect(selectProperty); } @Override public boolean isVisible() { return isRequired() == false && getModelObject() != null; } }; unselectButton.setDefaultFormProcessing(defaultFormProcessing); add(unselectButton); unselectButton.add(new TooltipImage("unselectHelp", WebConstants.IMAGE_GROUP_UNSELECT, getString("tooltip.unselectGroup"))); return this; }
From source file:org.projectforge.web.user.NewGroupSelectPanel.java
License:Open Source License
@SuppressWarnings("serial") @Override/* w w w. j av a2s. c o m*/ public NewGroupSelectPanel init() { super.init(); add(groupTextField); final SubmitLink selectButton = new SubmitLink("select") { @Override public void onSubmit() { setResponsePage(new GroupListPage(caller, selectProperty)); }; }; selectButton.setDefaultFormProcessing(defaultFormProcessing); add(selectButton); selectButton.add( new TooltipImage("selectHelp", WebConstants.IMAGE_GROUP_SELECT, getString("tooltip.selectGroup"))); final SubmitLink unselectButton = new SubmitLink("unselect") { @Override public void onSubmit() { caller.unselect(selectProperty); } @Override public boolean isVisible() { return isRequired() == false && getModelObject() != null; } }; unselectButton.setDefaultFormProcessing(defaultFormProcessing); add(unselectButton); unselectButton.add(new TooltipImage("unselectHelp", WebConstants.IMAGE_GROUP_UNSELECT, getString("tooltip.unselectGroup"))); return this; }
From source file:org.projectforge.web.user.UserSelectPanel.java
License:Open Source License
@Override @SuppressWarnings("serial") public UserSelectPanel init() { super.init(); add(userTextField);//from w w w .j a v a 2s . c o m final AbstractLink selectMeLink; if (userTextField.getSettings().isAutoSubmit() == true) { selectMeLink = new SubmitLink("selectMe") { @Override public void onSubmit() { caller.select(selectProperty, PFUserContext.getUserId()); markTextFieldModelAsChanged(); } @Override public boolean isVisible() { // Is visible if no user is given or the given user is not the current logged in user. final PFUserDO user = UserSelectPanel.this.getModelObject(); return showSelectMeButton == true && (user == null || user.getId().equals(PFUserContext.getUser().getId()) == false); } }; ((SubmitLink) selectMeLink).setDefaultFormProcessing(defaultFormProcessing); } else { selectMeLink = new AjaxLink<Void>("selectMe") { @Override public void onClick(final AjaxRequestTarget target) { UserSelectPanel.this.setModelObject(PFUserContext.getUser()); markTextFieldModelAsChanged(); target.add(this, userTextField); // For hiding entry. } /** * @see org.apache.wicket.Component#isVisible() */ @Override public boolean isVisible() { // Is visible if no user is given or the given user is not the current logged in user. final PFUserDO user = UserSelectPanel.this.getModelObject(); return showSelectMeButton == true && (user == null || user.getId().equals(PFUserContext.getUser().getId()) == false); } }; selectMeLink.setOutputMarkupId(true); } add(selectMeLink); selectMeLink.add(new IconPanel("selectMeHelp", IconType.USER, getString("tooltip.selectMe")) .setColor(CSSColor.GREEN)); return this; }
From source file:org.sakaiproject.attendance.tool.pages.Overview.java
License:Educational Community License
private void createTakeAttendanceNow() { final Form<?> takeAttendanceNowForm = new Form<Void>("take-attendance-now-form") { @Override/*from w w w. ja v a2 s . c o m*/ protected void onSubmit() { AttendanceEvent newEvent = new AttendanceEvent(); newEvent.setAttendanceSite(attendanceLogic.getCurrentAttendanceSite()); newEvent.setName(new ResourceModel("attendance.now.name").getObject()); newEvent.setStartDateTime(new Date()); Long newEventId = (Long) attendanceLogic.addAttendanceEventNow(newEvent); if (newEventId != null) { newEvent = attendanceLogic.getAttendanceEvent(newEventId); setResponsePage(new EventView(newEvent, BasePage.OVERVIEW_PAGE)); } else { error(new ResourceModel("attendance.now.error").getObject()); } } }; takeAttendanceNowForm.add(new SubmitLink("take-attendance-now")); add(takeAttendanceNowForm); }
From source file:org.sakaiproject.attendance.tool.pages.panels.PrintPanel.java
License:Educational Community License
private Form<?> createPrintForm() { final Form<?> printForm = new Form<Void>("print-form") { @Override// ww w .jav a 2s . c o m protected void onSubmit() { if (groupChoice.getModelObject() == null) { userList = sakaiProxy.getCurrentSiteMembership(); groupOrSiteTitle = sakaiProxy.getCurrentSiteTitle(); } else { userList = sakaiProxy.getGroupMembershipForCurrentSite(groupChoice.getModelObject()); groupOrSiteTitle = sakaiProxy.getGroupTitleForCurrentSite(groupChoice.getModelObject()); } final boolean isSignIn = selected.equals("Sign-In Sheet"); String filename = eventModel.getObject().getName().trim().replaceAll("\\s+", "") + (isSignIn ? "-signin.pdf" : "-attendance.pdf"); AbstractResourceStreamWriter rstream = new AbstractResourceStreamWriter() { @Override public void write(OutputStream outputStream) throws IOException { if (isSignIn) { pdfExporter.createSignInPdf(eventModel.getObject(), outputStream, userList, groupOrSiteTitle); } else { pdfExporter.createAttendanceSheetPdf(eventModel.getObject(), outputStream, userList, groupOrSiteTitle); } } }; ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(rstream, filename); getRequestCycle().scheduleRequestHandlerAfterCurrent(handler); } }; if (eventModel.getObject() != null) { printForm.add(new Label("event-name", eventModel.getObject().getName())); printForm.add(new Label("event-date", eventModel.getObject().getStartDateTime())); } else { printForm.add(new Label("event-name", "")); printForm.add(new Label("event-date", "")); } List<String> groupIds = sakaiProxy.getAvailableGroupsForCurrentSite(); Collections.sort(groupIds, new Comparator<String>() { @Override public int compare(String o1, String o2) { return sakaiProxy.getGroupTitleForCurrentSite(o1) .compareTo(sakaiProxy.getGroupTitleForCurrentSite(o2)); } }); groupChoice = new DropDownChoice<String>("group-choice", new Model<String>(), groupIds, new IChoiceRenderer<String>() { @Override public Object getDisplayValue(String s) { return sakaiProxy.getGroupTitleForCurrentSite(s); } @Override public String getIdValue(String s, int i) { return s; } }); groupChoice.setNullValid(true); printForm.add(groupChoice); RadioChoice<String> printFormat = new RadioChoice<String>("print-format", new PropertyModel<String>(this, "selected"), PRINT_OPTIONS); printForm.add(printFormat); SubmitLink print = new SubmitLink("print"); printForm.add(print); return printForm; }
From source file:org.sakaiproject.ddo.tool.pages.DropOffForm.java
License:Educational Community License
public DropOffForm() { disableLink(studentOverviewLink);/* w w w . j a v a2s .co m*/ // create the form final Form<?> dropOffForm = new Form<Void>("dropOffForm") { /** * @see org.apache.wicket.markup.html.form.Form#onSubmit() */ @Override protected void onSubmit() { String currentUserId = sakaiProxy.getCurrentUserId(); String notifyName = ""; String notifyEmail = ""; Submission s = new Submission(); s.setPrimaryLanguageIsEnglish(primaryLanguageIsEnglish.getModelObject()); s.setPrimaryLanguage(primaryLanguage.getModelObject()); s.setAssignmentTitle(assignmentTitle.getModelObject()); s.setInstructorRequirements(instructorRequirements.getModelObject()); s.setDueDate(dueDate.getModelObject()); if (courseTitle.getModelObject().equals("Other")) { s.setCourseTitle(courseOther.getModelObject()); } else { s.setCourseTitle(courseTitle.getModelObject()); } if (instructors.getModelObject().equals("Other")) { String instructor = instructorNameOther.getModelObject() + " (" + instructorEmailOther.getModelObject() + ")"; s.setInstructor(instructor); notifyEmail = instructorEmailOther.getModelObject(); } else { s.setInstructor(instructors.getModelObject()); notifyEmail = sakaiProxy.getUserEmail(instructors.getModelObject()); } s.setFeedbackFocus(feedbackFocus.getModelObject()); FileUpload file = uploadField.getFileUpload(); if (file == null) { error(getString("error.null_file")); } else if (file.getSize() == 0) { error(getString("error.empty_file")); } else if (!Arrays.asList(SubmissionFile.AcceptableMimeTypes).contains(file.getContentType())) { error(getString("error.unacceptable_filetype")); } else { String mimeType = file.getContentType(); String fileName = file.getClientFileName(); //ok so get bytes of file uploaded byte[] documentBytes = file.getBytes(); //create resource id String documentRef = sakaiProxy.getDocumentResourcePath(fileName); if (!sakaiProxy.saveFile(documentRef, currentUserId, fileName, mimeType, documentBytes)) { error(getString("error.save")); return; } else { s.setDocumentRef(documentRef); } s.setSubmittedBy(currentUserId); s.setStatus(Submission.STATUS_WAITING); if (projectLogic.addSubmission(s)) { if (notifyInstructor.getModelObject()) sakaiProxy.sendNotificationToInstructor(notifyEmail, currentUserId, s); if (receipt.getModelObject()) sakaiProxy.sendReceipt(currentUserId, s); getSession().info(getString("success.save_submission")); setResponsePage(new StudentOverview()); } else { error(getString("error.save_submission")); } } } }; final String userid = sakaiProxy.getCurrentUserId(); dropOffForm.setMaxSize(Bytes.megabytes(15)); add(dropOffForm); dropOffForm .add(primaryLanguageIsEnglish = new CheckBox("primaryLanguageIsEnglish", Model.of(Boolean.TRUE))); dropOffForm.add(primaryLanguage = new TextField<String>("primaryLanguage", new Model<String>())); dropOffForm.add(assignmentTitle = new TextField<String>("assignmentTitle", new Model<String>())); dropOffForm .add(instructorRequirements = new TextArea<String>("instructorRequirements", new Model<String>())); Set<String> sectionsSet = sakaiProxy.getCurrentSectionsForCurrentUser(); List<String> sectionsList = new ArrayList<String>(); if (!sectionsSet.isEmpty()) { sectionsList = new ArrayList<String>(sectionsSet); } sectionsList.add("Other"); DropDownChoice<String> sDD = new DropDownChoice<String>("courseTitle", new Model<String>(), sectionsList, new IChoiceRenderer<String>() { @Override public Object getDisplayValue(String section) { if (section.equals("Other")) { return "Other"; } else { return sakaiProxy.getCourseOfferingTitleForSection(section); } } @Override public String getIdValue(String section, int i) { return section; } }); dropOffForm.add(courseTitle = sDD); Set<String> instructorSet = sakaiProxy.getCurrentInstructorsForCurrentUser(); List<String> instructorList = new ArrayList<String>(); if (!instructorSet.isEmpty()) { instructorList = new ArrayList<String>(instructorSet); } instructorList.add("Other"); DropDownChoice<String> iDD = new DropDownChoice<String>("instructors", new Model<String>(), instructorList, new IChoiceRenderer<String>() { @Override public Object getDisplayValue(String userId) { if (userId.equals("Other")) { return "Other"; } else { return sakaiProxy.getUserDisplayName(userId); } } @Override public String getIdValue(String userId, int i) { return userId; } }); dropOffForm.add(instructors = iDD); dropOffForm.add(courseOther = new TextField<String>("courseOther", new Model<String>())); dropOffForm.add(instructorNameOther = new TextField<String>("instructorNameOther", new Model<String>())); dropOffForm.add(instructorEmailOther = new TextField<String>("instructorEmailOther", new Model<String>())); dropOffForm.add(notifyInstructor = new CheckBox("notifyInstructor", Model.of(Boolean.FALSE))); dropOffForm.add(receipt = new CheckBox("receipt", Model.of(Boolean.TRUE))); dropOffForm.add(feedbackFocus = new TextArea<String>("feedbackFocus", new Model<String>())); dueDate = new DateTextField("dueDate", new PropertyModel<Date>(this, "date")); DatePicker datePicker = new DatePicker(); datePicker.setShowOnFieldClick(true); datePicker.setAutoHide(true); dueDate.add(datePicker); dropOffForm.add(dueDate); assignmentTitle.setRequired(true); instructors.setRequired(true); courseTitle.setRequired(true); dueDate.setRequired(true); dropOffForm.add(uploadField = new FileUploadField("uploadField")); uploadField.setRequired(true); dropOffForm.add( new Label("max", MessageFormat.format(getString("dropoff.form.max"), dropOffForm.getMaxSize()))); Link<Void> cancel = new Link<Void>("cancelLink") { public void onClick() { setResponsePage(new StudentOverview()); } }; dropOffForm.add(cancel); Link<Void> cancel2 = new Link<Void>("cancelLink2") { public void onClick() { setResponsePage(new StudentOverview()); } }; add(cancel2); SubmitLink submit = new SubmitLink("submitLink"); dropOffForm.add(submit); dropOffForm.add(new Label("displayName", sakaiProxy.getCurrentUserDisplayName())); dropOffForm.add(new Label("email", sakaiProxy.getUserEmail(userid))); dropOffForm.add(new Label("username", sakaiProxy.getUserDisplayId(userid))); }
From source file:org.sakaiproject.ddo.tool.pages.EditFeedback.java
License:Educational Community License
public EditFeedback(long feedbackId) { disableLink(staffOverviewLink);// w ww. j av a 2s . c o m this.f = projectLogic.getFeedback(feedbackId); this.s = projectLogic.getSubmission(f.getSubmissionId()); //s.setStatus(Submission.STATUS_UNDER); //projectLogic.updateSubmissionStatus(s); add(new Label("name", sakaiProxy.getUserDisplayName(s.getSubmittedBy()))); add(new Label("primaryLanguageIsEnglish", s.getPrimaryLanguageIsEnglish() ? "Yes" : "No")); add(new Label("primaryLanguage", s.getPrimaryLanguage())); add(new Label("submissionDate", df.format(s.getSubmissionDate()))); add(new Label("email", sakaiProxy.getUserEmail(s.getSubmittedBy()))); add(new Label("username", sakaiProxy.getUserDisplayId(s.getSubmittedBy()))); Link<Void> streamDownloadLink = new Link<Void>("document") { @Override public void onClick() { AbstractResourceStreamWriter rstream = new AbstractResourceStreamWriter() { @Override public void write(OutputStream output) throws IOException { output.write(sakaiProxy.getResource(s.getDocumentRef()).getBytes()); } }; ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(rstream, sakaiProxy.getResource(s.getDocumentRef()).getFileName()); getRequestCycle().scheduleRequestHandlerAfterCurrent(handler); } }; add(streamDownloadLink); SubmissionFile sf = sakaiProxy.getResource(s.getDocumentRef()); streamDownloadLink.add(new Label("fileName", sf == null ? "Cannot find file." : sf.getFileName())); add(new ContextImage("submissionIcon", new Model<String>(sakaiProxy.getResourceIconUrl(s.getDocumentRef())))); add(new Label("fileSize", sakaiProxy.getResourceFileSize(s.getDocumentRef()))); add(new Label("assignmentTitle", s.getAssignmentTitle())); add(new Label("course", s.getCourseTitle())); String instructorDisplayName = sakaiProxy.getUserDisplayName(s.getInstructor()); String instructorEmail = sakaiProxy.getUserEmail(s.getInstructor()); if ("".equals(instructorDisplayName)) { add(new Label("instructor", s.getInstructor())); } else { add(new Label("instructor", instructorDisplayName + " (" + instructorEmail + ")")); } add(new Label("dueDate", s.getDueDate() != null ? dueFormat.format(s.getDueDate()) : getString("error.no_due_date"))); add(new MultiLineLabel("feedbackFocus", s.getFeedbackFocus())); add(new MultiLineLabel("instructorRequirements", s.getInstructorRequirements())); final Form<?> feedbackForm = new Form<Void>("feedbackForm") { /** * @see org.apache.wicket.markup.html.form.Form#onSubmit() */ @Override protected void onSubmit() { String currentUserId = sakaiProxy.getCurrentUserId(); f.setComments(comments.getModelObject()); FileUpload file = uploadField.getFileUpload(); String oldFileReference = ""; // Check if the reviewer would like to replace or add a new reviewed file if (replaceReview.getModelObject().booleanValue()) { // Remove previously submitted file if there was one. if (f.getReviewedDocumentRef() != null && !f.getReviewedDocumentRef().isEmpty()) { oldFileReference = f.getReviewedDocumentRef(); } if (file == null) { f.setReviewedDocumentRef(""); } else if (file.getSize() == 0) { error(getString("error.empty_file")); return; } else { String mimeType = file.getContentType(); String fileName = file.getClientFileName(); //ok so get bytes of file uploaded byte[] documentBytes = file.getBytes(); //create resource id String documentRef = sakaiProxy.getDocumentResourcePath(fileName); if (!sakaiProxy.saveFile(documentRef, currentUserId, fileName, mimeType, documentBytes)) { error(getString("error.save")); return; } else { f.setReviewedDocumentRef(documentRef); } } } if (f.getComments() == null && file == null) { error(getString("error.no_feedback")); return; } f.setReviewDate(new Date()); f.setReviewedBy(currentUserId); if (projectLogic.updateFeedback(f) && projectLogic.updateSubmissionStatus(s)) { // Only delete old file on a successful save if (!oldFileReference.isEmpty()) { sakaiProxy.removeResource(oldFileReference); } getSession().info(getString("success.save_feedback")); setResponsePage(new StaffOverview()); } else { error(getString("error.save_feedback")); } } }; feedbackForm.setMaxSize(Bytes.megabytes(15)); add(feedbackForm); feedbackForm.add(comments = new TextArea<String>("comments", Model.of(f.getComments()))); feedbackForm.add(uploadField = new FileUploadField("uploadField")); feedbackForm.add(replaceReview = new CheckBox("replaceReview", Model.of(Boolean.FALSE))); if (f.getReviewedDocumentRef() != null && !f.getReviewedDocumentRef().isEmpty()) { Link<Void> feedbackDownloadLink = new Link<Void>("feedbackDoc") { @Override public void onClick() { AbstractResourceStreamWriter rstream = new AbstractResourceStreamWriter() { @Override public void write(OutputStream output) throws IOException { output.write(sakaiProxy.getResource(f.getReviewedDocumentRef()).getBytes()); } }; ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(rstream, sakaiProxy.getResource(f.getReviewedDocumentRef()).getFileName()); getRequestCycle().scheduleRequestHandlerAfterCurrent(handler); } }; feedbackForm.add(feedbackDownloadLink); SubmissionFile ff = sakaiProxy.getResource(f.getReviewedDocumentRef()); feedbackDownloadLink.add(new Label("fFileName", ff == null ? "Cannot find file" : ff.getFileName())); feedbackForm.add(new ContextImage("feedbackIcon", new Model<String>(sakaiProxy.getResourceIconUrl(f.getReviewedDocumentRef())))); String fileSize = "(" + sakaiProxy.getResourceFileSize(f.getReviewedDocumentRef()) + ")"; feedbackForm.add(new Label("reviewFileSize", fileSize)); feedbackForm.add(new Label("noDoc", getString("error.no_document")).setVisible(false)); } else { Link<Void> feedbackDownloadLink = new Link<Void>("feedbackDoc") { @Override public void onClick() { } }; feedbackForm.add(feedbackDownloadLink); feedbackDownloadLink.add(new Label("fFileName", "")); ContextImage icon = new ContextImage("feedbackIcon", ""); icon.setVisible(false); feedbackForm.add(icon); feedbackForm.add(new Label("reviewFileSize", "")); feedbackForm.add(new Label("noDoc", getString("error.no_document")).setVisible(true)); } feedbackForm.add( new Label("max", MessageFormat.format(getString("feedback.form.max"), feedbackForm.getMaxSize()))); Link<Void> cancel = new Link<Void>("cancelLink") { public void onClick() { //s.setStatus(Submission.STATUS_WAITING); //projectLogic.updateSubmissionStatus(s); setResponsePage(new StaffOverview()); } }; feedbackForm.add(cancel); SubmitLink submit = new SubmitLink("submit"); feedbackForm.add(submit); }
From source file:org.sakaiproject.ddo.tool.pages.FeedbackFormPage.java
License:Educational Community License
public FeedbackFormPage(long submissionId) { disableLink(staffOverviewLink);//from w ww .j a v a 2 s . c o m this.s = projectLogic.getSubmission(submissionId); s.setStatus(Submission.STATUS_UNDER); projectLogic.updateSubmissionStatus(s); add(new Label("name", sakaiProxy.getUserDisplayName(s.getSubmittedBy()))); add(new Label("primaryLanguageIsEnglish", s.getPrimaryLanguageIsEnglish() ? "Yes" : "No")); add(new Label("primaryLanguage", s.getPrimaryLanguage())); add(new Label("submissionDate", df.format(s.getSubmissionDate()))); add(new Label("email", sakaiProxy.getUserEmail(s.getSubmittedBy()))); add(new Label("username", sakaiProxy.getUserDisplayId(s.getSubmittedBy()))); Link<Void> streamDownloadLink = new Link<Void>("document") { @Override public void onClick() { AbstractResourceStreamWriter rstream = new AbstractResourceStreamWriter() { @Override public void write(OutputStream output) throws IOException { output.write(sakaiProxy.getResource(s.getDocumentRef()).getBytes()); } }; ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(rstream, sakaiProxy.getResource(s.getDocumentRef()).getFileName()); getRequestCycle().scheduleRequestHandlerAfterCurrent(handler); } }; add(streamDownloadLink); SubmissionFile sf = sakaiProxy.getResource(s.getDocumentRef()); streamDownloadLink.add(new Label("fileName", sf == null ? "Cannot find file." : sf.getFileName())); add(new ContextImage("submissionIcon", new Model<String>(sakaiProxy.getResourceIconUrl(s.getDocumentRef())))); add(new Label("fileSize", sakaiProxy.getResourceFileSize(s.getDocumentRef()))); add(new Label("assignmentTitle", s.getAssignmentTitle())); add(new Label("course", s.getCourseTitle())); String instructorDisplayName = sakaiProxy.getUserDisplayName(s.getInstructor()); String instructorEmail = sakaiProxy.getUserEmail(s.getInstructor()); if ("".equals(instructorDisplayName)) { add(new Label("instructor", s.getInstructor())); } else { add(new Label("instructor", instructorDisplayName + " (" + instructorEmail + ")")); } add(new Label("dueDate", s.getDueDate() != null ? dueFormat.format(s.getDueDate()) : getString("error.no_due_date"))); add(new MultiLineLabel("feedbackFocus", s.getFeedbackFocus())); add(new MultiLineLabel("instructorRequirements", s.getInstructorRequirements())); final Form<?> feedbackForm = new Form<Void>("feedbackForm") { /** * @see org.apache.wicket.markup.html.form.Form#onSubmit() */ @Override protected void onSubmit() { String currentUserId = sakaiProxy.getCurrentUserId(); Feedback f = new Feedback(); f.setComments(comments.getModelObject()); FileUpload file = uploadField.getFileUpload(); if (file == null) { f.setReviewedDocumentRef(""); } else if (file.getSize() == 0) { error(getString("error.empty_file")); return; } else if (!Arrays.asList(SubmissionFile.AcceptableMimeTypes).contains(file.getContentType())) { error(getString("error.unacceptable_filetype")); return; } else { String mimeType = file.getContentType(); String fileName = file.getClientFileName(); //ok so get bytes of file uploaded byte[] documentBytes = file.getBytes(); //create resource id String documentRef = sakaiProxy.getDocumentResourcePath(fileName); if (!sakaiProxy.saveFile(documentRef, currentUserId, fileName, mimeType, documentBytes)) { error(getString("error.save")); return; } else { f.setReviewedDocumentRef(documentRef); } } if (f.getComments() == null && file == null) { error(getString("error.no_feedback")); return; } f.setSubmissionId(s.getSubmissionId()); f.setReviewedBy(currentUserId); s.setStatus(Submission.STATUS_REVIEWED); if (projectLogic.addFeedback(f) && projectLogic.updateSubmissionStatus(s)) { getSession().info(getString("success.save_feedback")); setResponsePage(new StaffOverview()); } else { error(getString("error.save_feedback")); } } }; feedbackForm.setMaxSize(Bytes.megabytes(15)); add(feedbackForm); feedbackForm.add(comments = new TextArea<String>("comments", new Model<String>())); feedbackForm.add(uploadField = new FileUploadField("uploadField")); feedbackForm.add( new Label("max", MessageFormat.format(getString("feedback.form.max"), feedbackForm.getMaxSize()))); Link<Void> cancel = new Link<Void>("cancelLink") { public void onClick() { setResponsePage(new StaffOverview()); } }; feedbackForm.add(cancel); SubmitLink submit = new SubmitLink("submit"); feedbackForm.add(submit); }