List of usage examples for org.apache.wicket.model.util ListModel ListModel
public ListModel()
From source file:au.org.theark.core.web.component.customfield.form.DetailForm.java
License:Open Source License
/** * Constructor/*from ww w .j a va 2 s .com*/ * * @param id * @param cpModel * @param feedBackPanel * @param arkCrudContainerVO */ public DetailForm(String id, CompoundPropertyModel<CustomFieldVO> cpModel, FeedbackPanel feedBackPanel, ArkCrudContainerVO arkCrudContainerVO) { super(id, feedBackPanel, cpModel, arkCrudContainerVO); // Initialise the model to be empty for now cfGroupDdcListModel = new ListModel<CustomFieldGroup>(); refreshEntityFromBackend(); //this.unitTypeDropDownOn=unitTypeDropDownOn; //this.subjectCustomField = subjectCustomField; Long sessionModuleId = (Long) SecurityUtils.getSubject().getSession() .getAttribute(au.org.theark.core.Constants.ARK_MODULE_KEY); }
From source file:au.org.theark.phenotypic.web.component.phenodatadictionary.form.DetailForm.java
License:Open Source License
/** * Constructor//from www . ja v a 2s . c o m * * @param id * @param cpModel * @param feedBackPanel * @param arkCrudContainerVO */ public DetailForm(String id, CompoundPropertyModel<PhenoDataSetFieldVO> cpModel, FeedbackPanel feedBackPanel, ArkCrudContainerVO arkCrudContainerVO) { super(id, feedBackPanel, cpModel, arkCrudContainerVO); cfGroupDdcListModel = new ListModel<PhenoDataSetGroup>(); refreshEntityFromBackend(); Long sessionModuleId = (Long) SecurityUtils.getSubject().getSession() .getAttribute(au.org.theark.core.Constants.ARK_MODULE_KEY); study = cpModel.getObject().getPhenoDataSetField().getStudy(); //arkFunction=iArkCommonService.getArkFunctionByName(au.org.theark.core.Constants.FUNCTION_KEY_VALUE_SUBJECT_CUSTOM_FIELD_CATEGORY); }
From source file:ca.travelagency.config.CompanyPage.java
License:Apache License
private Form<Void> uploadForm() { Form<Void> form = new Form<Void>(UPLOAD_FORM) { private static final long serialVersionUID = 1L; @Override// ww w. j a va 2 s . com protected void onSubmit() { FileUpload fileUpload = fileUploadField.getFileUpload(); if (fileUpload == null) { return; } String code = ApplicationProperties.make().getCode(); File companyLogoFile = UploadUtils.getCompanyLogoFile(code); try { companyLogoFile.createNewFile(); fileUpload.writeTo(companyLogoFile); } catch (Exception e) { throw new RuntimeException("Unable to write logo image", e); } } }; form.setMultiPart(true); form.setMaxSize(Bytes.kilobytes(100)); form.add(new ComponentFeedbackPanel(FEEDBACK, form)); fileUploadField = new FileUploadField(UPLOAD_FIELD, new ListModel<FileUpload>()); form.add(fileUploadField); return form; }
From source file:com.chitek.ignition.drivers.generictcp.meta.config.ui.MessageConfigUI.java
License:Apache License
private void addComponents() { // Select the first message for initial display if (getConfig().messages.isEmpty()) { // No messages configured. Create a new message with id=1. getConfig().addMessageConfig(new MessageConfig(1)); }//from w w w. j av a 2 s . c o m currentMessage = getConfig().getMessageList().get(0); currentMessage.calcOffsets(getConfig().getMessageIdType().getByteSize()); currentMessageId = currentMessage.getMessageId(); // ******************************************************************************************* // *** Form for XML import final FileUploadField uploadField = new FileUploadField("upload-field", new ListModel<FileUpload>()); Form<?> uploadForm = new Form<Object>("upload-form") { @Override protected void onSubmit() { try { FileUpload upload = uploadField.getFileUpload(); if (upload != null) { handleOnUpload(upload.getInputStream()); } else { warn(new StringResourceModel("warn.noFileToUpload", this, null).getString()); } } catch (Exception e) { this.error(new StringResourceModel("import.error", this, null).getString() + " Exception: " + e.toString()); } } }; uploadForm.add(uploadField); SubmitLink importLink = new SubmitLink("import-link"); uploadForm.add(importLink); add(uploadForm); // ******************************************************************************************* // *** The message configuration currentMessageModel = new PropertyModel<MessageConfig>(this, "currentMessage"); editForm = new Form<MessageConfig>("edit-form", new CompoundPropertyModel<MessageConfig>(currentMessageModel)) { @Override protected void onError() { // Validation error - reset the message dropdown to the original value // Clear input causes the component to reload the model currentMessageIdDropdown.clearInput(); super.onError(); } }; editForm.add(new MessageFormValidator()); WebMarkupContainer tableContainer = new WebMarkupContainer("table-container"); messageIdTypeDropDown = getMessageIdTypeDropdown(); tableContainer.add(messageIdTypeDropDown); currentMessageIdDropdown = getCurrentMessageIdDropdown(); tableContainer.add(currentMessageIdDropdown); Button buttonNew = new Button("new"); buttonNew.add(new AjaxFormSubmitBehavior("onclick") { @Override protected void onSubmit(AjaxRequestTarget target) { handleNew(target); } @Override protected void onError(AjaxRequestTarget target) { handleError(target); } }); tableContainer.add(buttonNew); Button buttonCopy = new Button("copy"); buttonCopy.add(new AjaxFormSubmitBehavior("onclick") { @Override protected void onSubmit(AjaxRequestTarget target) { handleCopy(target); } @Override protected void onError(AjaxRequestTarget target) { handleError(target); } }); tableContainer.add(buttonCopy); Button deleteButton = new Button("delete"); deleteButton.add(new AjaxEventBehavior("onclick") { @Override protected void onEvent(AjaxRequestTarget target) { handleDelete(target); } }); tableContainer.add(deleteButton); messageTypeDropdown = getMessageTypeDropdown(); tableContainer.add(messageTypeDropdown); tableContainer.add(getQueueModeDropdown()); tableContainer.add(new CheckBox("usePersistance").setOutputMarkupId(true)); WebMarkupContainer listEditorContainer = new WebMarkupContainer("list-editor"); messageIdTextField = getMessageIdTextField(); listEditorContainer.add(messageIdTextField); messageAliasTextField = getMessageAliasTextField(); listEditorContainer.add(messageAliasTextField); // Create the list editor editor = new ListEditor<TagConfig>("tags", new PropertyModel<List<TagConfig>>(currentMessageModel, "tags")) { @Override protected void onPopulateItem(EditorListItem<TagConfig> item) { item.setModel(new CompoundPropertyModel<TagConfig>(item.getModelObject())); BinaryDataType dataType = item.getModelObject().getDataType(); boolean enable = dataType.isSpecial() ? false : true; // Offset is displayed only for information item.add(new Label("offset").setOutputMarkupId(true)); if (enable) { item.add(getIdTextField()); } else { // The static TextField has no validation. Validation would fail for special tags. item.add(getSpecialIdTextField().setEnabled(false)); } item.add(getAliasTextField().setVisible(enable)); item.add(getSizeTextField().setEnabled(dataType.isArrayAllowed())); item.add(getTagLengthTypeDropDown().setEnabled(dataType.supportsVariableLength())); item.add(getDataTypeDropdown()); // Create the edit links to be used in the list editor item.add(getInsertLink()); item.add(getDeleteLink()); item.add(getMoveUpLink().setVisible(item.getIndex() > 0)); item.add(getMoveDownLink().setVisible(item.getIndex() < getList().size() - 1)); } }; listEditorContainer.add(editor); Label noItemsLabel = new Label("no-items-label", new StringResourceModel("noitems", this, null)) { @Override public boolean isVisible() { return editor.getList().size() == 0; } }; listEditorContainer.add(noItemsLabel); listEditorContainer.add(new EditorSubmitLink("add-row-link") { @Override public void onSubmit() { editor.addItem(new TagConfig()); // Adjust the visibility of the edit links updateListEditor(editor); } }); listEditorContainer.setOutputMarkupId(true); tableContainer.add(listEditorContainer); editForm.add(tableContainer); // XML export SubmitLink exportLink = new SubmitLink("export-link", editForm) { @Override public void onSubmit() { ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(getResourceStream(), getFileName()); handler.setContentDisposition(ContentDisposition.ATTACHMENT); handler.setCacheDuration(Duration.NONE); getRequestCycle().scheduleRequestHandlerAfterCurrent(handler); } private String getFileName() { return String.format("MsgConfig_%s.xml", currentMessageModel.getObject().getMessageId()); } private IResourceStream getResourceStream() { String config = currentMessageModel.getObject().toXMLString(); return new StringResourceStream(config, "text/xml"); } }; editForm.add(exportLink); uploadForm.add(editForm); }
From source file:com.norconex.jefmon.settings.panels.JobLocationsPanel.java
License:Apache License
private ListMultipleChoice<File> buildLocationsSelect(String markupId) { final ListMultipleChoice<File> lc = new ListMultipleChoice<File>(markupId, new ListModel<File>(), locations) {//from ww w . j a va 2s. co m private static final long serialVersionUID = 7754249758151817399L; @Override protected CharSequence getDefaultChoice(String selected) { return ""; } @Override protected void appendOptionHtml(AppendingStringBuffer buffer, File file, int index, String selected) { super.appendOptionHtml(buffer, file, index, selected); if (file == null) { return; } String icon = "nx-file-icon"; if (file.isDirectory()) { icon = "nx-folder-icon"; } buffer.insert(buffer.lastIndexOf("\">") + 1, " class=\"" + icon + "\""); } }; lc.setMaxRows(7); lc.setOutputMarkupId(true); lc.add(new AjaxFormComponentUpdatingBehavior("onchange") { private static final long serialVersionUID = -6508661554028761884L; @Override protected void onUpdate(AjaxRequestTarget target) { adjustButtonVisibility(target); } }); return lc; }
From source file:com.tysanclan.site.projectewok.pages.member.admin.TangoImporterPage.java
License:Open Source License
/** * //from ww w .j a va 2s. co m */ public TangoImporterPage() { super("Tango Conversion Page"); Form<?> uploadForm = new Form<Void>("uploadForm") { private static final long serialVersionUID = 1L; /** * @see org.apache.wicket.markup.html.form.Form#onSubmit() */ @Override protected void onSubmit() { PasswordTextField keyField = (PasswordTextField) get("masterKey"); if (userDAO.findAll().isEmpty()) { if (keyField.getModelObject().equals(TysanApplication.MASTER_KEY)) { FileUploadField field = (FileUploadField) get("fileUploader"); FileUpload upload = field.getFileUpload(); if (upload == null) { error("You must upload a file"); return; } try { TysanScheduler.getScheduler() .scheduleTask(new TangoImportTask(upload.getInputStream())); info("Tango import background job started"); } catch (IOException e) { error("Internal error: Unable to read upload"); } } else { error("Master key invalid"); } } else { error("Import can only be run on an empty database!"); } } }; uploadForm.add(new PasswordTextField("masterKey", new Model<String>(""))); uploadForm.add(new FileUploadField("fileUploader", new ListModel<FileUpload>())); add(uploadForm); }
From source file:com.tysanclan.site.projectewok.pages.member.ProposeAchievementPage.java
License:Open Source License
public ProposeAchievementPage(int tabIndex) { super("Propose Achievement"); this.tabIndex = tabIndex; add(new ListView<AchievementProposal>("proposals", ModelMaker.wrap(achievementProposalDAO.findAll())) { private static final long serialVersionUID = 1L; @Override// w ww.j a v a2 s . c o m protected void populateItem(final ListItem<AchievementProposal> item) { AchievementProposal proposal = item.getModelObject(); item.add(new Image("icon", new StoredImageResource(proposal.getIcon().getImage()))); item.add(new Label("name", proposal.getName())); item.add(new Label("description", proposal.getDescription()).setEscapeModelStrings(false)); item.add(new Label("game", proposal.getGame() != null ? proposal.getGame().getName() : "-")); item.add(new Label("group", proposal.getGroup() != null ? proposal.getGroup().getName() : "-")); } }); List<AchievementIcon> icons = achievementService.getAvailableIcons(getUser()); add(getIconListview("icons", icons, new IconClickResponder() { private static final long serialVersionUID = 1L; @Override public void onClick(AchievementIcon icon) { setResponsePage(new ProposeAchievementPage2(icon)); } })); add(new WebMarkupContainer("noIcons").setVisible(icons.isEmpty())); add(getIconListview("approved", getApprovedIcons(getUser()), null)); add(getIconListview("pending", getPendingIcons(getUser()), null)); add(getIconListview("rejected", getRejectedIcons(getUser()), new IconClickResponder() { private static final long serialVersionUID = 1L; @Override public void onClick(AchievementIcon icon) { achievementService.deleteIcon(getUser(), icon); setResponsePage(new ProposeAchievementPage(2)); } })); final FileUploadField uploadField = new FileUploadField("file", new ListModel<FileUpload>()); uploadField.setRequired(true); final TextField<String> purposeField = new TextField<String>("purpose", new Model<String>("")); purposeField.setRequired(true); final CheckBox privateIconBox = new CheckBox("private", new Model<Boolean>(true)); Form<AchievementIcon> uploadForm = new Form<AchievementIcon>("uploadIcon") { private static final long serialVersionUID = 1L; @Override protected void onSubmit() { List<FileUpload> uploads = uploadField.getModelObject(); String purpose = purposeField.getModelObject(); Boolean privateIcon = privateIconBox.getModelObject(); if (uploads != null && !uploads.isEmpty()) { FileUpload upload = uploads.get(0); AchievementIcon icon = achievementService.uploadAchievementIcon(getUser(), upload.getBytes(), purpose, privateIcon); if (icon != null) { setResponsePage(new ProposeAchievementPage(2)); } else { error("Invalid image type, or not a 48x48 pixel image"); } } else { error("No valid file uploaded"); } } }; uploadForm.setMultiPart(true); uploadForm.add(uploadField); uploadForm.add(purposeField); uploadForm.add(privateIconBox); add(uploadForm); }
From source file:com.tysanclan.site.projectewok.pages.member.RequestAchievementPage2.java
License:Open Source License
public RequestAchievementPage2(Achievement achievement) { super("Request achievement " + achievement.getName()); achievementModel = ModelMaker.wrap(achievement); final FileUploadField uploadField = new FileUploadField("screenshot", new ListModel<FileUpload>()); final TextArea<String> evidenceField = new BBCodeTextArea("evidence", ""); Form<Achievement> form = new Form<Achievement>("evidenceForm") { private static final long serialVersionUID = 1L; @SpringBean//from w w w.j a va 2 s .c om private AchievementService service; @Override protected void onSubmit() { FileUpload upload = uploadField.getFileUpload(); String evidence = evidenceField.getModelObject(); if (upload != null) { if (!ImageUtil.isGIFImage(upload.getBytes()) && !ImageUtil.isPNGImage(upload.getBytes()) && !ImageUtil.isJPEGImage(upload.getBytes())) { error("Please supply a valid JPG, GIF or PNG image"); return; } } else { if (evidence == null || evidence.isEmpty()) { error("Please provide either a screenshot or a textual description of why you qualify for this achievement"); return; } } AchievementRequest request = service.requestAchievement(getUser(), achievementModel.getObject(), upload != null ? upload.getBytes() : null, evidence); if (request != null) { setResponsePage(new RequestAchievementPage()); } else { error("Failed to create request"); } } }; form.setMultiPart(true); form.add(uploadField); form.add(evidenceField); add(form); form.add(new Label("name", achievement.getName())); Game game = achievement.getGame(); form.add(new Image("icon", new StoredImageResource(achievement.getIcon().getImage()))); form.add(new Image("game", new StoredImageResource(game != null ? game.getImage() : new byte[0])) .setVisible(game != null)); boolean hasGroup = achievement.getGroup() != null; form.add(new Label("group", hasGroup ? achievement.getGroup().getName() : "-").setVisible(hasGroup)); form.add(new Label("description", achievement.getDescription()).setEscapeModelStrings(false)); }
From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.forms.ScenarioForm.java
License:Apache License
public ScenarioForm(String id, final ModalWindow window) { super(id, new CompoundPropertyModel<Scenario>(new Scenario())); add(new Label("addScenarioHeader", ResourceUtils.getModel("pageTitle.addScenario"))); final FeedbackPanel feedback = new FeedbackPanel("feedback"); feedback.setOutputMarkupId(true);//from w ww .j a va 2s . c om add(feedback); setMultiPart(true); Person owner = getModel().getObject().getPerson(); if (owner == null) owner = EEGDataBaseSession.get().getLoggedUser(); getModel().getObject().setPerson(owner); List<ResearchGroup> choices = researchGroupFacade.getResearchGroupsWhereAbleToWriteInto(owner); if (choices == null || choices.isEmpty()) choices = Arrays.asList(getModel().getObject().getResearchGroup()); DropDownChoice<ResearchGroup> groups = new DropDownChoice<ResearchGroup>("researchGroup", choices, new ChoiceRenderer<ResearchGroup>("title")); groups.setRequired(true); TextField<String> title = new TextField<String>("title"); title.setLabel(ResourceUtils.getModel("label.scenarioTitle")); title.setRequired(true); // title.add(new TitleExistsValidator()); TextField<Integer> length = new TextField<Integer>("scenarioLength", Integer.class); length.setRequired(true); length.add(RangeValidator.minimum(0)); TextArea<String> description = new TextArea<String>("description"); description.setRequired(true); description.setLabel(ResourceUtils.getModel("label.scenarioDescription")); final WebMarkupContainer fileContainer = new WebMarkupContainer("contailer"); fileContainer.setVisibilityAllowed(false); fileContainer.setOutputMarkupPlaceholderTag(true); /* * TODO file field for xml was not visible in old portal. I dont know why. So I hided it but its implemented and not tested. */ // hidded line in old portal final DropDownChoice<ScenarioSchemas> schemaList = new DropDownChoice<ScenarioSchemas>("schemaList", new Model<ScenarioSchemas>(), scenariosFacade.getListOfScenarioSchemas(), new ChoiceRenderer<ScenarioSchemas>("schemaName", "schemaId")); schemaList.setOutputMarkupPlaceholderTag(true); schemaList.setRequired(true); schemaList.setLabel(ResourceUtils.getModel("label.scenarioSchema")); schemaList.setVisibilityAllowed(false); final FileUploadField file = new FileUploadField("file", new ListModel<FileUpload>()); file.setOutputMarkupId(true); file.setLabel(ResourceUtils.getModel("description.fileType.dataFile")); file.setOutputMarkupPlaceholderTag(true); // hidded line in old portal final FileUploadField xmlfile = new FileUploadField("xmlfile", new ListModel<FileUpload>()); xmlfile.setOutputMarkupId(true); xmlfile.setLabel(ResourceUtils.getModel("label.xmlDataFile")); xmlfile.setOutputMarkupPlaceholderTag(true); xmlfile.setVisibilityAllowed(false); // hidded line in old portal final RadioGroup<Boolean> schema = new RadioGroup<Boolean>("schema", new Model<Boolean>(Boolean.FALSE)); schema.add(new Radio<Boolean>("noschema", new Model<Boolean>(Boolean.FALSE), schema)); schema.add(new Radio<Boolean>("fromschema", new Model<Boolean>(Boolean.TRUE), schema)); schema.setOutputMarkupPlaceholderTag(true); schema.setVisibilityAllowed(false); schema.add(new AjaxFormChoiceComponentUpdatingBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { schemaList.setVisibilityAllowed(schema.getModelObject()); xmlfile.setRequired(!xmlfile.isRequired()); target.add(xmlfile); target.add(schemaList); } }); CheckBox privateCheck = new CheckBox("privateScenario"); final CheckBox dataAvailable = new CheckBox("dataAvailable", new Model<Boolean>()); dataAvailable.add(new AjaxFormComponentUpdatingBehavior("onChange") { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { fileContainer.setVisibilityAllowed(dataAvailable.getModelObject()); file.setRequired(!file.isRequired()); target.add(fileContainer); } }); fileContainer.add(file, xmlfile, schema, schemaList); add(groups, title, length, description, privateCheck, dataAvailable, fileContainer); add(new AjaxButton("submitForm", this) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { FileUpload uploadedFile = file.getFileUpload(); Scenario scenario = ScenarioForm.this.getModelObject(); if (!scenariosFacade.canSaveTitle(scenario.getTitle(), scenario.getScenarioId())) { error(ResourceUtils.getString("error.titleAlreadyInDatabase")); target.add(feedback); return; } else { // loading non-XML scenario file if ((uploadedFile != null) && (!(uploadedFile.getSize() == 0))) { String name = uploadedFile.getClientFileName(); // when uploading from localhost some browsers will specify the entire path, we strip it // down to just the file name name = Strings.lastPathComponent(name, '/'); name = Strings.lastPathComponent(name, '\\'); // File uploaded String filename = name.replace(" ", "_"); scenario.setScenarioName(filename); scenario.setMimetype(uploadedFile.getContentType()); try { scenario.setFileContentStream(uploadedFile.getInputStream()); } catch (IOException e) { log.error(e.getMessage(), e); error("Error while saving data."); target.add(feedback); } } // Creating new scenariosFacade.create(scenario); /* * clean up after upload file, and set model to null or will be problem with page serialization when redirect start - DON'T DELETE IT ! */ ScenarioForm.this.setModelObject(null); window.close(target); } } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { target.add(feedback); } }); add(new AjaxButton("closeForm", ResourceUtils.getModel("button.close")) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { window.close(target); } }.setDefaultFormProcessing(false)); setOutputMarkupId(true); }
From source file:cz.zcu.kiv.eegdatabase.wui.ui.pricing.PriceListPage.java
License:Apache License
private void setupComponents() { person = EEGDataBaseSession.get().getLoggedUser(); selectModel = new Model<ResearchGroup>(); packagesModel = new ListModel<ExperimentPackage>(); final WebMarkupContainer experimentsContainer = new WebMarkupContainer("experimentsContainer"); experimentsContainer.setOutputMarkupId(true); Label emptyExperiments = new Label("emptyExperimentsLabel", ResourceUtils.getModel("label.myexperiments.empty")) { private static final long serialVersionUID = 1L; @Override/*from w w w . j av a 2 s. co m*/ public boolean isVisible() { return experimentProvider.size() == 0; } }; experimentProvider = new ListExperimentsDataProvider(experimentFacade, person, true, false); DefaultDataTable<Experiment, String> list = new DefaultDataTable<Experiment, String>("list", createListColumns(experimentsContainer), experimentProvider, ITEMS_PER_PAGE) { private static final long serialVersionUID = 1L; @Override public boolean isVisible() { return experimentProvider.size() != 0; } }; experimentsContainer.add(list, emptyExperiments); final WebMarkupContainer priceListForPackageContainer = new WebMarkupContainer("expPackagesContainer"); priceListForPackageContainer.setOutputMarkupId(true); priceListForPackageContainer.setVisibilityAllowed(securityFacade.userIsGroupAdmin()); List<ResearchGroup> selectGroupChoice = groupFacade.getResearchGroupsWhereUserIsGroupAdmin(person); final DropDownChoice<ResearchGroup> selectGroup = new DropDownChoice<ResearchGroup>("selectGroup", selectModel, selectGroupChoice); selectGroup.add(new AjaxFormComponentUpdatingBehavior("onChange") { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { ResearchGroup selection = selectModel.getObject(); List<ExperimentPackage> selectPackages = expPackageFacade.listExperimentPackagesByGroup(selection); packagesModel.setObject(selectPackages); target.add(priceListForPackageContainer); } }); priceListForPackageContainer.add(selectGroup); PageableListView<ExperimentPackage> packageList = new PageableListView<ExperimentPackage>("packageList", packagesModel, ITEMS_PER_PAGE) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<ExperimentPackage> item) { item.setModel(new CompoundPropertyModel<ExperimentPackage>(item.getModel())); item.add(new Label("experimentPackageId")); item.add(new Label("name")); item.add(new Label("price")); item.add(new PriceChangePanel("changePrice", new PropertyModel<BigDecimal>(item.getModel(), "price"), getFeedback(), "width: 80px;") { private static final long serialVersionUID = 1L; @Override void onUpdate(AjaxRequestTarget target) { ExperimentPackage experimentPackage = item.getModelObject(); expPackageFacade.update(experimentPackage); target.add(priceListForPackageContainer); } }); } @Override public boolean isVisible() { List<ExperimentPackage> list = packagesModel.getObject(); return list != null && !list.isEmpty(); } }; Label emptyListLabel = new Label("emptyListLabel", ResourceUtils.getModel("label.experimentPackage.select.empty")) { private static final long serialVersionUID = 1L; @Override public boolean isVisible() { List<ExperimentPackage> list = packagesModel.getObject(); return selectModel.getObject() != null && !(list != null && !list.isEmpty()); } }; priceListForPackageContainer.add(emptyListLabel); priceListForPackageContainer.add(packageList); add(priceListForPackageContainer, experimentsContainer); }