Example usage for org.apache.wicket.extensions.markup.html.form.palette Palette getModelCollection

List of usage examples for org.apache.wicket.extensions.markup.html.form.palette Palette getModelCollection

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.markup.html.form.palette Palette getModelCollection.

Prototype

@SuppressWarnings("unchecked")
public Collection<T> getModelCollection() 

Source Link

Usage

From source file:org.sakaiproject.profile2.tool.pages.panels.CreateWorksitePanel.java

License:Educational Community License

/**
 * Creates an instance of <code>CreateWorksitePanel</code>.
 * //from w  w w .  j  a  v a 2 s.c  o m
 * @param id the wicket id.
 * @param persons list of users e.g. from connections (and possibly search
 *            results in the future).
 */
public CreateWorksitePanel(final String id, final List<Person> persons) {
    super(id);

    // sort persons
    Collections.sort(persons);

    Form<Void> form = new Form<Void>("form");
    form.setOutputMarkupId(true);
    add(form);

    // form submit feedback
    final Label formFeedback = new Label("formFeedback");
    formFeedback.setOutputMarkupPlaceholderTag(true);
    form.add(formFeedback);

    final FeedbackPanel feedback = new FeedbackPanel("feedback");
    feedback.setOutputMarkupId(true);
    form.add(feedback);

    int[] filteredErrorLevels = new int[] { FeedbackMessage.ERROR };
    feedback.setFilter(new ErrorLevelsFeedbackMessageFilter(filteredErrorLevels));

    IChoiceRenderer<Person> renderer = new ChoiceRenderer<Person>("displayName", "uuid");

    final Palette<Person> palette = new Palette<Person>("palette",
            new ListModel<Person>(new ArrayList<Person>()), new CollectionModel<Person>(persons), renderer, 10,
            true);
    palette.setOutputMarkupId(true);

    form.add(palette);

    Label siteNameLabel = new Label("siteNameLabel", new ResourceModel("worksite.name"));
    form.add(siteNameLabel);

    final TextField<String> siteNameField = new TextField<String>("siteNameField", new Model<String>());
    siteNameField.setOutputMarkupId(true);
    form.add(siteNameField);

    AjaxButton cancelButton = new AjaxButton("cancelButton") {

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

            resetPanel(target, siteNameField, palette, formFeedback);

        }
    };
    cancelButton.setModel(new ResourceModel("button.worksite.cancel"));
    form.add(cancelButton);

    IndicatingAjaxButton createButton = new IndicatingAjaxButton("createButton", form) {

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

            if (StringUtils.isBlank(siteNameField.getValue())) {
                formFeedback.setDefaultModel(new ResourceModel("error.worksite.no.title"));
                formFeedback.add(new AttributeModifier("class", true, new Model<String>("alertMessage")));
                target.add(formFeedback);
                return;
            }

            if (true == worksiteLogic.createWorksite(ProfileUtils.stripHtml(siteNameField.getValue()),
                    sakaiProxy.getCurrentUserId(), new ArrayList<Person>(palette.getModelCollection()), true)) {

                resetPanel(target, siteNameField, palette, formFeedback);

            } else {
                formFeedback.setDefaultModel(new ResourceModel("error.worksite.create.failed"));
                formFeedback.add(new AttributeModifier("class", true, new Model<String>("alertMessage")));
                target.add(formFeedback);
                return;
            }
        }

    };
    createButton.setModel(new ResourceModel("button.worksite.create"));
    form.add(createButton);

    form.add(new IconWithClueTip("createWorksiteToolTip", ProfileConstants.INFO_IMAGE,
            new ResourceModel("text.worksite.create")));

    Label refreshLabel = new Label("refreshLabel", new ResourceModel("text.worksite.refresh"));
    form.add(refreshLabel);
}

From source file:org.sakaiproject.profile2.tool.pages.panels.CreateWorksitePanel.java

License:Educational Community License

private void resetPanel(AjaxRequestTarget target, final TextField<String> siteNameField,
        final Palette<Person> palette, Label formFeedback) {

    siteNameField.setModelObject("");

    // there is quite possibly a better way of doing this
    List<Person> remove = new ArrayList<Person>();
    for (Person person : palette.getModelCollection()) {
        remove.add(person);//from w  ww.  ja  va 2s .  c  o m
    }
    palette.getModelCollection().removeAll(remove);

    formFeedback.setVisible(false);

    target.add(siteNameField);
    target.appendJavaScript("$('#" + CreateWorksitePanel.this.getMarkupId() + "').slideUp();");
    target.appendJavaScript("fixWindowVertical();");
}