List of usage examples for org.apache.wicket.markup.html.form FormComponentLabel add
public MarkupContainer add(final Component... children)
From source file:dk.teachus.frontend.components.form.SelectPupilsPanel.java
License:Apache License
public SelectPupilsPanel(String id, IModel<? extends Collection<Pupil>> model) { super(id, model); selectGroup = new CheckGroup<Pupil>("selectGroup", getModel()); selectGroup.setRenderBodyOnly(false); add(selectGroup);/*www . j a v a2s . c o m*/ // Header selectGroup.add(new CheckGroupSelector("selectAll")); selectGroup.add(new Label("name", TeachUsSession.get().getString("General.pupil"))); // Check list model IModel<List<Pupil>> pupilsModel = new LoadableDetachableModel<List<Pupil>>() { private static final long serialVersionUID = 1L; @Override protected List<Pupil> load() { List<Pupil> pupils = loadPupils(); return pupils; } }; selectGroup.add(new ListView<Pupil>("pupils", pupilsModel) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<Pupil> item) { item.add(AttributeModifier.replace("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { return (item.getIndex() + 1) % 2 == 0 ? "even" : "odd"; } })); Check<Pupil> check = new Check<Pupil>("select", item.getModel()); item.add(check); FormComponentLabel label = new FormComponentLabel("label", check); item.add(label); label.add(new Label("name", new PropertyModel<String>(item.getModel(), "name")) .setRenderBodyOnly(true)); } }); }
From source file:org.apache.isis.viewer.wicket.ui.components.widgets.valuechoices.ValueChoices.java
License:Apache License
protected FormComponentLabel createFormComponentLabel() { final String name = getModel().getName(); valueField.setLabel(Model.of(name)); final FormComponentLabel labelIfRegular = new FormComponentLabel(ID_SCALAR_IF_REGULAR, valueField); final String describedAs = getModel().getDescribedAs(); if (describedAs != null) { labelIfRegular.add(new AttributeModifier("title", Model.of(describedAs))); }// w ww. j a va 2 s . c om final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(valueField)); labelIfRegular.add(scalarName); labelIfRegular.add(valueField); // scalarNameAndValue.add(dropDownChoicesForValueMementos); return labelIfRegular; }
From source file:org.obiba.onyx.quartz.core.wicket.layout.impl.standard.QuestionCategoryCheckBoxPanel.java
License:Open Source License
/** * Constructor./*from ww w . ja va2 s . com*/ * * @param id * @param questionModel * @param questionCategoryModel * @param selectionsModel check group selections model * @param radioLabelVisible */ @SuppressWarnings("serial") public QuestionCategoryCheckBoxPanel(String id, IModel<Question> questionModel, IModel<QuestionCategory> questionCategoryModel, IModel<Collection<IModel<QuestionCategory>>> selectionsModel, boolean radioLabelVisible) { super(id, questionModel, questionCategoryModel); setOutputMarkupId(true); // previous answer or default selection QuestionCategory questionCategory = (QuestionCategory) getDefaultModelObject(); QuestionCategoryCheckBoxModel selectionModel = new QuestionCategoryCheckBoxModel(selectionsModel, questionCategoryModel); if (!activeQuestionnaireAdministrationService.isQuestionnaireDevelopmentMode()) { CategoryAnswer previousAnswer = activeQuestionnaireAdministrationService .findAnswer(questionModel.getObject(), questionCategory); if (previousAnswer != null) selectionModel.select(); } checkbox = new CheckBox("checkbox", selectionModel); checkbox.setLabel(new QuestionnaireStringResourceModel(questionCategoryModel, "label")); // persist selection on change event // and make sure there is no active open field previously selected if (!activeQuestionnaireAdministrationService.isQuestionnaireDevelopmentMode()) { checkbox.add(new AjaxEventBehavior("onchange") { @Override protected void onEvent(AjaxRequestTarget target) { // toggle selection // note: call for setModelObject to ensure modelChanged trigger is properly called checkbox.setModelObject(!getSelectionModel().isSelected()); if (getSelectionModel().isSelected()) { activeQuestionnaireAdministrationService.answer(getQuestion(), getQuestionCategory(), getQuestionCategory().getCategory().getOpenAnswerDefinition(), null); } else { activeQuestionnaireAdministrationService.deleteAnswer(getQuestion(), getQuestionCategory()); } if (getOpenField() != null) { if (!getSelectionModel().isSelected()) { resetOpenAnswerDefinitionPanels(target, getOpenField(), getQuestionCategoryModel()); updateFeedbackPanel(target); } } fireQuestionCategorySelection(target, getQuestionModel(), getQuestionCategoryModel(), getSelectionModel().isSelected()); } }); } FormComponentLabel checkboxLabel = new FormComponentLabel("categoryLabel", checkbox); add(checkboxLabel); checkboxLabel.add(checkbox); checkboxLabel.add(new Label("label", checkbox.getLabel()).setRenderBodyOnly(true) .setVisible(radioLabelVisible).setEscapeModelStrings(false)); if (questionCategory.getCategory().getOpenAnswerDefinition() != null) { // there is an open field openField = newOpenAnswerDefinitionPanel("open"); add(openField); checkbox.add(new AttributeAppender("class", new Model<String>("checkbox-open"), " ")); checkboxLabel.add(new AttributeModifier("class", new Model<String>("label-open"))); } else { // no open answer add(new EmptyPanel("open").setVisible(false)); } }
From source file:org.obiba.onyx.quartz.core.wicket.layout.impl.standard.QuestionCategoryRadioPanel.java
License:Open Source License
/** * Constructor./*w w w. ja v a2 s. c o m*/ * * @param id * @param questionModel * @param questionCategoryModel * @param radioLabelVisible */ @SuppressWarnings("serial") public QuestionCategoryRadioPanel(String id, IModel<Question> questionModel, IModel<QuestionCategory> questionCategoryModel, RadioGroup<QuestionCategory> radioGroup, boolean radioLabelVisible) { super(id, questionModel, questionCategoryModel); this.radioGroup = radioGroup; // previous answer or default selection QuestionCategory questionCategory = (QuestionCategory) questionCategoryModel.getObject(); Question question = (Question) questionModel.getObject(); Radio<QuestionCategory> radio = new Radio<QuestionCategory>("radio", questionCategoryModel); radio.setLabel(new QuestionnaireStringResourceModel(questionCategoryModel, "label")); // persist selection on change event // and make sure there is no active open field previously selected if (!activeQuestionnaireAdministrationService.isQuestionnaireDevelopmentMode()) { radio.add(new AjaxEventBehavior("onchange") { @Override protected void onEvent(AjaxRequestTarget target) { // make the radio group active for the selection QuestionCategoryRadioPanel.this.radioGroup.setModel(getQuestionCategoryModel()); // exclusive choice, only one answer per question activeQuestionnaireAdministrationService.deleteAnswers(getQuestion()); activeQuestionnaireAdministrationService.answer(getQuestion(), getQuestionCategory()); // make sure a previously selected open field is not asked for resetOpenAnswerDefinitionPanels(target, QuestionCategoryRadioPanel.this.radioGroup, getQuestionCategoryModel()); updateFeedbackPanel(target); fireQuestionCategorySelection(target, getQuestionModel(), getQuestionCategoryModel(), true); } }); } FormComponentLabel radioLabel = new FormComponentLabel("categoryLabel", radio); add(radioLabel); radioLabel.add(radio); radioLabel.add(new Label("label", radio.getLabel()).setRenderBodyOnly(true).setVisible(radioLabelVisible) .setEscapeModelStrings(false)); if (questionCategory.getCategory().getOpenAnswerDefinition() != null) { // there is an open field openField = newOpenAnswerDefinitionPanel("open"); add(openField); // make radio associated to open answer optionally visible using css styling radio.add(new AttributeAppender("class", new Model<String>("radio-open"), " ")); radioLabel.add(new AttributeModifier("class", new Model<String>("label-open"))); } else { // no open answer add(new EmptyPanel("open").setVisible(false)); } // previous answer or default selection if (!activeQuestionnaireAdministrationService.isQuestionnaireDevelopmentMode()) { CategoryAnswer previousAnswer = activeQuestionnaireAdministrationService.findAnswer(question, questionCategory); if (previousAnswer != null) { radioGroup.setModel(questionCategoryModel); } } }
From source file:org.sakaiproject.delegatedaccess.tool.pages.SearchAccessPage.java
License:Educational Community License
private void main() { disableLink(searchAccessLink);//from w w w.ja v a2 s . c om final AbstractReadOnlyModel resultModel = new AbstractReadOnlyModel<String>() { @Override public String getObject() { if (firstLoad) { return ""; } else { if (provider.getData().size() == 0) { if (searchTypeEid.equals(selectedSearchType)) { if (eid == null || "".equals(eid.trim())) { return new StringResourceModel("noEidEntered", null).getObject(); } else { User u = getUser(); if (u == null) { return new StringResourceModel("eidDoesNotExist", null).getObject(); } else { return new StringResourceModel("noResultsUser", null).getObject(); } } } else { return new StringResourceModel("noResultsHierarchy", null).getObject(); } } else { return ""; } } } }; add(new Label("resultInfo", resultModel) { @Override public boolean isVisible() { return !"".equals(resultModel.getObject()); } }); //create form final Form<?> form = new Form("form") { protected void onSubmit() { super.onSubmit(); firstLoad = false; if (provider != null) { provider.detachManually(); } } }; form.setOutputMarkupId(true); //search by label: form.add(new Label("searchByLabel", new StringResourceModel("searchByLabel", null))); //setup radio buttons for search type: final RadioGroup group = new RadioGroup("searchGroup", new PropertyModel<String>(this, "selectedSearchType")); final Radio hierarchyRadio = new Radio("searchByHierarchy", new Model<String>(searchTypeHierarchy)); FormComponentLabel hierarchyLabel = new FormComponentLabel("searchByHierarchyLabel", hierarchyRadio); hierarchyLabel.add( new Label("searchByHierarchyLabelText", new StringResourceModel("searchByHierarchyLabel", null))); group.add(hierarchyRadio); group.add(hierarchyLabel); group.add(hierarchyRadio.add(new AjaxEventBehavior("onchange") { @Override protected void onEvent(AjaxRequestTarget arg0) { selectedSearchType = searchTypeHierarchy; } })); Radio eidRadio = new Radio("searchByEid", new Model<String>(searchTypeEid)); FormComponentLabel eidRadioLabel = new FormComponentLabel("searchByEidLabel", eidRadio); eidRadioLabel.add(new Label("searchByEidLabelText", new StringResourceModel("searchByEidLabel", null))); group.add(eidRadio); group.add(eidRadioLabel); group.add(eidRadio.add(new AjaxEventBehavior("onchange") { @Override protected void onEvent(AjaxRequestTarget arg0) { selectedSearchType = searchTypeEid; } })); form.add(group); //input for hierarchy fields: WebMarkupContainer hierarchyDiv = new WebMarkupContainer("hierarchyFields") { @Override protected void onComponentTag(ComponentTag tag) { if (!selectedSearchType.equals(searchTypeHierarchy)) { //set to hidden tag.put("style", "display:none"); } } }; final Comparator<SelectOption> optionComparator = new SelectOptionComparator(); if (hierarchySelectOptions == null || hierarchySelectOptions.size() == 0) { hierarchySelectOptions = new HashMap<String, List<SelectOption>>(); HierarchyNodeSerialized rootNode = projectLogic.getRootNodeId(); nodeSelects = new HashMap<String, SelectOption>(); nodeSelectOrder = new ArrayList<String>(); if (rootNode != null && rootNode.id != null && !"".equals(rootNode.id)) { Set<HierarchyNodeSerialized> nodes = projectLogic.getDirectNodes(rootNode.id); List<SelectOption> options = new ArrayList<SelectOption>(); if (nodes != null) { for (HierarchyNodeSerialized node : nodes) { options.add(new SelectOption(node.description, node.id)); } } Collections.sort(options, optionComparator); hierarchySelectOptions.put(rootNode.id, options); //since nothing is selected, set the node selection to null nodeSelects.put(rootNode.id, null); //add the root node as the first selection nodeSelectOrder.add(rootNode.id); } } final ChoiceRenderer choiceRenderer = new ChoiceRenderer("label", "value"); DataView dropdowns = new DataView("hierarchyDropdowns", new IDataProvider<String>() { @Override public void detach() { } @Override public Iterator<? extends String> iterator(int first, int count) { return nodeSelectOrder.subList(first, first + count).iterator(); } @Override public IModel<String> model(final String arg0) { return new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { return arg0; } }; } @Override public int size() { return nodeSelectOrder.size(); } }) { @Override protected void populateItem(Item item) { final String itemNodeId = item.getModelObject().toString(); final DropDownChoice choice = new DropDownChoice("hierarchyLevel", new NodeSelectModel(itemNodeId), hierarchySelectOptions.get(itemNodeId), choiceRenderer); //keeps the null option (choose one) after a user selects an option choice.setNullValid(true); choice.add(new AjaxFormComponentUpdatingBehavior("onchange") { protected void onUpdate(AjaxRequestTarget target) { List<String> newOrder = new ArrayList<String>(); for (String nodeId : nodeSelectOrder) { newOrder.add(nodeId); if (nodeId.equals(itemNodeId)) { break; } } if (choice.getModelObject() != null && !"".equals(((SelectOption) choice.getModelObject()).getValue())) { String value = ((SelectOption) choice.getModelObject()).getValue(); //check if options list exist for newly selected node if (!hierarchySelectOptions.containsKey(value)) { Set<HierarchyNodeSerialized> nodes = projectLogic.getDirectNodes(value); List<SelectOption> options = new ArrayList<SelectOption>(); if (nodes != null) { for (HierarchyNodeSerialized node : nodes) { options.add(new SelectOption(node.description, node.id)); } Collections.sort(options, optionComparator); } hierarchySelectOptions.put(value, options); } //check to see if there are any additional direct children, or if //this is the last node if (hierarchySelectOptions.containsKey(value) && hierarchySelectOptions.get(value).size() > 0) { //update node select order newOrder.add(value); } } nodeSelectOrder = newOrder; //refresh everything: target.addComponent(form); } }); item.add(choice); } }; hierarchyDiv.add(dropdowns); //include lower perms checkbox: CheckBox checkbox = new CheckBox("includeLowerPerms", new PropertyModel(this, "includeLowerPerms")); FormComponentLabel checkboxLabel = new FormComponentLabel("includeLowerPermsLabel", checkbox); checkboxLabel.add( new Label("includeLowerPermsLabelText", new StringResourceModel("includeLowerPermsLabel", null))); hierarchyDiv.add(checkboxLabel); hierarchyDiv.add(checkbox); form.add(hierarchyDiv); //input for eid fields: WebMarkupContainer eidDiv = new WebMarkupContainer("eidFields") { @Override protected void onComponentTag(ComponentTag tag) { if (!selectedSearchType.equals(searchTypeEid)) { //set to hidden tag.put("style", "display:none"); } } }; final PropertyModel<String> eidModel = new PropertyModel<String>(this, "eid"); TextField<String> eidText = new TextField<String>("eid", eidModel); eidDiv.add(eidText); form.add(eidDiv); add(form); //Display Results: //Headers: Link<Void> userIdSort = new Link<Void>("userIdSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_EID); } @Override public boolean isVisible() { return provider.size() > 0 && searchTypeHierarchy.equals(selectedSearchType); } }; add(userIdSort); Link<Void> nameSort = new Link<Void>("nameSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_SORT_NAME); } @Override public boolean isVisible() { return provider.size() > 0 && searchTypeHierarchy.equals(selectedSearchType); } }; add(nameSort); Link<Void> typeSort = new Link<Void>("typeSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_TYPE); } @Override public boolean isVisible() { return provider.size() > 0; } }; add(typeSort); Link<Void> levelSort = new Link<Void>("levelSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_LEVEL); } @Override public boolean isVisible() { return provider.size() > 0; } }; add(levelSort); Link<Void> accessSort = new Link<Void>("accessSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_ACCESS); } }; add(accessSort); Label restrictedToolsHeader = new Label("restrictedToolsHeader", new StringResourceModel("restrictedToolsHeader", null)) { @Override public boolean isVisible() { return provider.size() > 0; } }; add(restrictedToolsHeader); Label hierarchyHeader = new Label("hierarchyHeader", new StringResourceModel("hierarchyHeader", null)) { @Override public boolean isVisible() { return provider.size() > 0; } }; add(hierarchyHeader); //Display user (if available) final AbstractReadOnlyModel userModel = new AbstractReadOnlyModel() { @Override public Object getObject() { if (searchTypeEid.equals(selectedSearchType) && eid != null && !"".equals(eid.trim())) { User u = getUser(); if (u != null) { return u.getDisplayName(); } } return ""; } }; Label userName = new Label("userName", userModel) { @Override public boolean isVisible() { return searchTypeEid.equals(selectedSearchType) && eid != null && !"".equals(eid) && !"".equals(userModel.getObject()); } }; add(userName); add(new Link("editUserLink") { private static final long serialVersionUID = 1L; public void onClick() { User u = getUser(); if (u != null) { setResponsePage(new UserEditPage(u.getId(), u.getDisplayName())); } } }); Link removeAllPermsLink = new Link("removeAllPerms") { private static final long serialVersionUID = 1L; public void onClick() { User u = getUser(); if (u != null) { projectLogic.removeAllPermsForUser(u.getId()); provider.detachManually(); } } @Override public boolean isVisible() { return sakaiProxy.isSuperUser(); } }; String confirm = new StringResourceModel("confirmRemoveAll", null).getObject(); removeAllPermsLink.add(new SimpleAttributeModifier("onclick", "return confirm('" + confirm + "');")); add(removeAllPermsLink); //tool id=>title map: final Map<String, String> toolTitleMap = new HashMap<String, String>(); final List<ListOptionSerialized> blankRestrictedTools = projectLogic.getEntireToolsList(); for (ListOptionSerialized opt : blankRestrictedTools) { toolTitleMap.put(opt.getId(), opt.getName()); } //Data String[] tmpHierarchy = sakaiProxy .getServerConfigurationStrings(DelegatedAccessConstants.HIERARCHY_SITE_PROPERTIES); if (tmpHierarchy == null || tmpHierarchy.length == 0) { tmpHierarchy = DelegatedAccessConstants.DEFAULT_HIERARCHY; } final String[] hierarchy = new String[tmpHierarchy.length + 1]; //include the root as part of the hierarchy: hierarchy[0] = sakaiProxy.getRootName(); for (int i = 1; i < hierarchy.length; i++) { hierarchy[i] = tmpHierarchy[i - 1]; } provider = new AccessSearchResultDataProvider(); dataView = new DataView<AccessSearchResult>("searchResult", provider) { @Override public void populateItem(final Item item) { final AccessSearchResult searchResult = (AccessSearchResult) item.getModelObject(); item.add(new Label("userId", searchResult.getEid()) { @Override public boolean isVisible() { return searchTypeHierarchy.equals(selectedSearchType); } }); item.add(new Label("name", searchResult.getSortName())); item.add(new Label("type", new StringResourceModel("accessType" + searchResult.getType(), null))); String level = ""; if (hierarchy != null && searchResult.getLevel() < hierarchy.length) { level = hierarchy[searchResult.getLevel()]; } else { level = new StringResourceModel("site", null).getObject(); } item.add(new Label("level", level)); AbstractReadOnlyModel<String> accessModel = new AbstractReadOnlyModel<String>() { @Override public String getObject() { String returnVal = ""; if (searchResult.getAccess() != null && searchResult.getAccess().length == 2) { returnVal = searchResult.getAccess()[0] + ":" + searchResult.getAccess()[1]; if (":".equals(returnVal)) { returnVal = ""; } } return returnVal; } }; item.add(new Label("access", accessModel)); item.add(new ListView<String>("restrictedTools", searchResult.getRestrictedTools()) { @Override protected void populateItem(ListItem<String> arg0) { String toolTitle = arg0.getDefaultModelObject().toString(); if (toolTitleMap.containsKey(toolTitle)) { toolTitle = toolTitleMap.get(toolTitle); } arg0.add(new Label("restrictedTool", toolTitle)); } }); item.add(new ListView<String>("hierarchy", searchResult.getHierarchyNodes()) { @Override protected void populateItem(ListItem<String> arg0) { String hierarchyStr = "|-"; for (String hierarchyLevel : searchResult.getHierarchyNodes()) { if (hierarchyLevel.equals(arg0.getDefaultModelObject())) { break; } hierarchyStr += "-"; } hierarchyStr += arg0.getDefaultModelObject(); arg0.add(new Label("hierarchyTitle", hierarchyStr)); } }); Link<Void> viewLink = new Link("view") { private static final long serialVersionUID = 1L; public void onClick() { setResponsePage(new SearchAccessPage(false, searchResult.getEid())); } @Override public boolean isVisible() { return searchTypeHierarchy.equals(selectedSearchType); } }; item.add(viewLink); Link<Void> userIdLink = new Link("edit") { private static final long serialVersionUID = 1L; public void onClick() { setResponsePage(new UserEditPage(searchResult.getId(), searchResult.getDisplayName())); } @Override public boolean isVisible() { return searchTypeHierarchy.equals(selectedSearchType); } }; item.add(userIdLink); Link<Void> removeLink = new Link("remove") { @Override public void onClick() { projectLogic.removeAccess(searchResult.getNodeId(), searchResult.getId(), searchResult.getType()); provider.detachManually(); } @Override public boolean isVisible() { return searchResult.isCanEdit(); } }; String confirm = new StringResourceModel("confirmRemove", null).getObject(); removeLink.add(new SimpleAttributeModifier("onclick", "return confirm('" + confirm + "');")); item.add(removeLink); //add css class if (rowIndex == 100) { rowIndex = 0; } item.add(new AttributeAppender("class", true, new Model<String>(rowIndex % 2 == 0 ? "even" : "odd"), ";")); rowIndex++; } @Override public boolean isVisible() { return provider.size() > 0; } @Override protected void onComponentTag(ComponentTag arg0) { } }; dataView.setOutputMarkupId(true); dataView.setItemReuseStrategy(new DefaultItemReuseStrategy()); dataView.setItemsPerPage(DelegatedAccessConstants.SEARCH_RESULTS_PAGE_SIZE); add(dataView); //Navigation //add a pager to our table, only visible if we have more than SEARCH_RESULTS_PAGE_SIZE items add(new PagingNavigator("navigatorTop", dataView) { @Override public boolean isVisible() { if (provider.size() > DelegatedAccessConstants.SEARCH_RESULTS_PAGE_SIZE) { return true; } return false; } @Override public void onBeforeRender() { super.onBeforeRender(); //clear the feedback panel messages clearFeedback(feedbackPanel); } }); add(new PagingNavigator("navigatorBottom", dataView) { @Override public boolean isVisible() { if (provider.size() > DelegatedAccessConstants.SEARCH_RESULTS_PAGE_SIZE) { return true; } return false; } @Override public void onBeforeRender() { super.onBeforeRender(); //clear the feedback panel messages clearFeedback(feedbackPanel); } }); }