List of usage examples for org.apache.wicket.extensions.markup.html.form.palette Palette getModelCollection
@SuppressWarnings("unchecked") public Collection<T> getModelCollection()
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();"); }