Example usage for org.apache.wicket.markup.html.form SubmitLink SubmitLink

List of usage examples for org.apache.wicket.markup.html.form SubmitLink SubmitLink

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.form SubmitLink SubmitLink.

Prototype

public SubmitLink(String id) 

Source Link

Document

With this constructor the SubmitLink must be inside a Form.

Usage

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);

}