List of usage examples for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel
AbstractReadOnlyModel
From source file:nl.knaw.dans.dccd.web.search.DccdSearchResultPanel.java
License:Apache License
public IModel<String> getResultMessageModel() { return new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = -3354392109873495635L; @Override/*from w ww.j a v a2 s . com*/ public String getObject() { final SearchRequest request = getSearchRequest(); final SearchResult<?> result = getSearchResult(); String queryString = request.getQuery().getQueryString(); if (!StringUtils.isBlank(queryString)) { if (result.getTotalHits() == 1) { return new StringResourceModel(RI_RESULTMESSAGE_1, DccdSearchResultPanel.this, null, new Object[] { Strings.escapeMarkup(queryString) }).getObject(); } else if (result.getTotalHits() > 1 && result.getTotalHits() <= request.getLimit()) { return new StringResourceModel(RI_RESULTMESSAGE_1PAGE, DccdSearchResultPanel.this, null, new Object[] { result.getTotalHits(), Strings.escapeMarkup(queryString) }) .getObject(); } else if (result.getTotalHits() > 1) { return new StringResourceModel(RI_RESULTMESSAGE, DccdSearchResultPanel.this, null, new Object[] { request.getOffset() + 1, Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()), result.getTotalHits(), Strings.escapeMarkup(queryString) }).getObject(); } else { return new StringResourceModel(RI_NO_RESULTS, DccdSearchResultPanel.this, null, new Object[] { Strings.escapeMarkup(queryString) }).getObject(); } } else { if (result.getTotalHits() == 1) { return new StringResourceModel(RI_RESULTMESSAGE_1_NIENTE, DccdSearchResultPanel.this, null) .getObject(); } else if (result.getTotalHits() > 1 && pageBrowsePanel.getCurrentPage() == pageBrowsePanel.getLastPage()) { return new StringResourceModel(RI_RESULTMESSAGE_1PAGE_NIENTE, DccdSearchResultPanel.this, null, new Object[] { result.getTotalHits() }).getObject(); } else if (result.getTotalHits() > 1) { return new StringResourceModel(RI_RESULTMESSAGE_NIENTE, DccdSearchResultPanel.this, null, new Object[] { request.getOffset() + 1, Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()), result.getTotalHits() }).getObject(); } else { return new StringResourceModel(RI_NO_RESULTS_NIENTE, DccdSearchResultPanel.this, null) .getObject(); } } } }; }
From source file:nl.knaw.dans.dccd.web.search.LocationSearchResultPanel.java
License:Apache License
public IModel<String> getResultMessageModel() { return new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = -3354392109873495635L; @Override/* w w w .ja v a 2 s .c o m*/ public String getObject() { final SearchRequest request = getSearchRequest(); final SearchResult<?> result = getSearchResult(); String queryString = request.getQuery().getQueryString(); if (!StringUtils.isBlank(queryString)) { if (result.getTotalHits() == 1) { return new StringResourceModel(RI_RESULTMESSAGE_1, LocationSearchResultPanel.this, null, new Object[] { Strings.escapeMarkup(queryString) }).getObject(); } else if (result.getTotalHits() > 1 && result.getTotalHits() <= request.getLimit()) { return new StringResourceModel(RI_RESULTMESSAGE_1PAGE, LocationSearchResultPanel.this, null, new Object[] { result.getTotalHits(), Strings.escapeMarkup(queryString) }) .getObject(); } else if (result.getTotalHits() > 1) { return new StringResourceModel(RI_RESULTMESSAGE, LocationSearchResultPanel.this, null, new Object[] { request.getOffset() + 1, Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()), result.getTotalHits(), Strings.escapeMarkup(queryString) }).getObject(); } else { return new StringResourceModel(RI_NO_RESULTS, LocationSearchResultPanel.this, null, new Object[] { Strings.escapeMarkup(queryString) }).getObject(); } } else { if (result.getTotalHits() == 1) { // One hit return new StringResourceModel(RI_RESULTMESSAGE_1_NIENTE, LocationSearchResultPanel.this, null).getObject(); } else if (result.getTotalHits() <= request.getLimit()) { // All hits are shown return new StringResourceModel(RI_RESULTMESSAGE_1PAGE_NIENTE, LocationSearchResultPanel.this, null, new Object[] { result.getTotalHits() }) .getObject(); } else if (result.getTotalHits() > 1) { // Not all hits are shown return new StringResourceModel(RI_RESULTMESSAGE_NIENTE, LocationSearchResultPanel.this, null, new Object[] { request.getOffset() + 1, Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()), result.getTotalHits() }).getObject(); } else { return new StringResourceModel(RI_NO_RESULTS_NIENTE, LocationSearchResultPanel.this, null) .getObject(); } } } }; }
From source file:nl.knaw.dans.dccd.web.search.pages.AdvSearchPage.java
License:Apache License
public void onAdvancedSearch(final AdvSearchData searchData) { final List<Field<?>> fields = searchData.getFields(false); if (fields.size() == 0 && StringUtils.isBlank(searchData.query)) { //warningMessage(DccdResources.PLEASE_ENTER_A_SEARCH_VALUE); return;/*from w w w .ja v a 2s . c om*/ } LOGGER.debug("Search request for advanced search: " + searchData.query); if (!StringUtils.isBlank(searchData.query)) { getSearchModel() .addCriterium(new TextSearchCriterium(searchData.query, new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1114909631810523718L; public String getObject() { return CriteriumLabel.createFilterText( AdvSearchPage.this.getString(DccdResources.ADVSEARCH_ANYFIELD_CRITERIUM_PREFIX), searchData.query); } })); } if (fields.size() > 0) { getSearchModel().addCriterium(new MultiFilterCriterium(fields, new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 6378460988292127479L; @Override public String getObject() { String prefix = ""; String fieldStr = ""; if (fields.size() > 1) { prefix = AdvSearchPage.this.getString(DccdResources.ADVSEARCH_CRITERIUM_PREFIX); Iterator<Field<?>> fieldIt = fields.iterator(); while (fieldIt.hasNext()) { Field<?> field = fieldIt.next(); fieldStr += field.getValue().toString(); if (fieldIt.hasNext()) fieldStr += ", "; } } else if (fields.size() > 0) { Field<?> field = fields.get(0); FieldNameResourceTranslator translator = new FieldNameResourceTranslator(); IModel<String> translation = translator.getTranslation(field.getName(), getLocale(), false); prefix = translation.getObject(); fieldStr = field.getValue().toString(); } return CriteriumLabel.createFilterText(prefix, fieldStr); } })); } setResponsePage(AbstractSearchResultPage.instantiate(resultPage, getSearchModel())); }
From source file:nl.knaw.dans.dccd.web.search.pages.MyProjectsSearchResultPage.java
License:Apache License
@Override protected IModel<String> getSearchCriteriumText(final String searchText) { return new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 3254972701101566016L; @Override//from w w w . j a va 2s .c o m public String getObject() { return CriteriumLabel.createFilterText(getString("myprojects.searchbreadcrumbtext"), searchText); } }; }
From source file:nl.knaw.dans.dccd.web.search.pages.PublicSearchResultPage.java
License:Apache License
@Override protected IModel<String> getSearchCriteriumText(final String searchText) { return new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 3254972701101566016L; @Override// ww w. j a v a 2 s .c o m public String getObject() { return CriteriumLabel.createFilterText(getString("publicsearch.searchbreadcrumbtext"), searchText); } }; }
From source file:nl.knaw.dans.dccd.web.search.pages.SearchResultExplorePage.java
License:Apache License
protected IModel<String> getSearchCriteriumText(final String searchText) { return new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 3254972701101566016L; @Override/*from ww w .j av a2 s. com*/ public String getObject() { return CriteriumLabel.createFilterText(getString("publicsearch.searchbreadcrumbtext"), searchText); } }; }
From source file:nl.knaw.dans.dccd.web.search.PeriodSearchResultPanel.java
License:Apache License
public IModel<String> getResultMessageModel() { return new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = -3354392109873495635L; @Override//from w w w. j av a2 s . c o m public String getObject() { final SearchRequest request = getSearchRequest(); final SearchResult<?> result = getSearchResult(); String queryString = request.getQuery().getQueryString(); if (!StringUtils.isBlank(queryString)) { if (result.getTotalHits() == 1) { return new StringResourceModel(RI_RESULTMESSAGE_1, PeriodSearchResultPanel.this, null, new Object[] { Strings.escapeMarkup(queryString) }).getObject(); } else if (result.getTotalHits() > 1 && result.getTotalHits() <= request.getLimit()) { return new StringResourceModel(RI_RESULTMESSAGE_1PAGE, PeriodSearchResultPanel.this, null, new Object[] { result.getTotalHits(), Strings.escapeMarkup(queryString) }) .getObject(); } else if (result.getTotalHits() > 1) { return new StringResourceModel(RI_RESULTMESSAGE, PeriodSearchResultPanel.this, null, new Object[] { request.getOffset() + 1, Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()), result.getTotalHits(), Strings.escapeMarkup(queryString) }).getObject(); } else { return new StringResourceModel(RI_NO_RESULTS, PeriodSearchResultPanel.this, null, new Object[] { Strings.escapeMarkup(queryString) }).getObject(); } } else { if (result.getTotalHits() == 1) { // One hit return new StringResourceModel(RI_RESULTMESSAGE_1_NIENTE, PeriodSearchResultPanel.this, null).getObject(); } else if (result.getTotalHits() <= request.getLimit()) { // All hits are shown return new StringResourceModel(RI_RESULTMESSAGE_1PAGE_NIENTE, PeriodSearchResultPanel.this, null, new Object[] { result.getTotalHits() }).getObject(); } else if (result.getTotalHits() > 1) { // Not all hits are shown return new StringResourceModel(RI_RESULTMESSAGE_NIENTE, PeriodSearchResultPanel.this, null, new Object[] { request.getOffset() + 1, Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()), result.getTotalHits() }).getObject(); } else { return new StringResourceModel(RI_NO_RESULTS_NIENTE, PeriodSearchResultPanel.this, null) .getObject(); } } } }; }
From source file:nl.knaw.dans.dccd.web.search.SearchResultMessagePanel.java
License:Apache License
public IModel<String> getResultMessageModel() { return new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = -3354392109873495635L; @Override/*from www . ja v a 2 s. com*/ public String getObject() { final SearchRequest request = getSearchRequest(); final SearchResult<?> result = getSearchResult(); String queryString = request.getQuery().getQueryString(); if (!StringUtils.isBlank(queryString)) { if (result.getTotalHits() == 1) { return new StringResourceModel(RI_RESULTMESSAGE_1, SearchResultMessagePanel.this, null, new Object[] { Strings.escapeMarkup(queryString) }).getObject(); } else if (result.getTotalHits() > 1 && result.getTotalHits() <= request.getLimit()) { return new StringResourceModel(RI_RESULTMESSAGE_1PAGE, SearchResultMessagePanel.this, null, new Object[] { result.getTotalHits(), Strings.escapeMarkup(queryString) }) .getObject(); } else if (result.getTotalHits() > 1) { return new StringResourceModel(RI_RESULTMESSAGE, SearchResultMessagePanel.this, null, new Object[] { request.getOffset() + 1, Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()), result.getTotalHits(), Strings.escapeMarkup(queryString) }).getObject(); } else { return new StringResourceModel(RI_NO_RESULTS, SearchResultMessagePanel.this, null, new Object[] { Strings.escapeMarkup(queryString) }).getObject(); } } else { if (result.getTotalHits() == 1) { // One hit return new StringResourceModel(RI_RESULTMESSAGE_1_NIENTE, SearchResultMessagePanel.this, null).getObject(); } else if (result.getTotalHits() <= request.getLimit()) { // All hits are shown return new StringResourceModel(RI_RESULTMESSAGE_1PAGE_NIENTE, SearchResultMessagePanel.this, null, new Object[] { result.getTotalHits() }).getObject(); } else if (result.getTotalHits() > 1) { // Not all hits are shown return new StringResourceModel(RI_RESULTMESSAGE_NIENTE, SearchResultMessagePanel.this, null, new Object[] { request.getOffset() + 1, Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()), result.getTotalHits() }).getObject(); } else { return new StringResourceModel(RI_NO_RESULTS_NIENTE, SearchResultMessagePanel.this, null) .getObject(); } } } }; }
From source file:nl.knaw.dans.dccd.web.upload.UploadFilesPage.java
License:Apache License
private void initPage() { redirectIfNotLoggedIn();//from ww w . j av a 2s . c o m logger.debug("Upload page constructor: " + Session.get().getId() + ", " + getId()); // just to be sure we have a clean CombinedUpload reset(); // Specify type of upload, so it can use this information when generating the status getCombinedUpload().setUploadType(uploadType); // get the system temp folder tempDir = System.getProperty("java.io.tmpdir"); logger.info("using temp dir for upload: " + tempDir); Form form = new Form("form") { private static final long serialVersionUID = -941132362346269544L; @Override protected void onSubmit() { // empty } }; add(form); // same configuration for both uploads EasyUploadConfig uploadConfig = new EasyUploadConfig(tempDir); uploadConfig.setAutoRemoveMessages(true); //uploadConfig.setAutoRemoveFiles(true); //--- Tridas // TODO put it in a Panel // // TRiDaS upload uploadTridas = new EasyUpload("tridas_upload_panel", uploadConfig) { private static final long serialVersionUID = 3910788086153129740L; @Override public void onReceivedFiles(Map<String, String> clientParams, String basePath, List<File> files) { // add to the original files getCombinedUpload().addOriginalFiles(files); // Always delete the temporary files FileUtil.deleteDirectory(new File(basePath)); logger.info("Temp File(s) deleted"); logger.debug("Tridas files upload done!"); } }; uploadTridas.registerPostProcess(TridasXMLUploadProcess.class); add(uploadTridas); tridasCombinedUploadHintsModel = new Model(""); tridasCombinedUploadHintslabel = new Label("tridas_combined_upload_hints", tridasCombinedUploadHintsModel); tridasCombinedUploadHintslabel.setEscapeModelStrings(false); add(tridasCombinedUploadHintslabel); tridasCombinedUploadWarningsModel = new Model(""); tridasCombinedUploadWarningslabel = new Label("tridas_combined_upload_warnings", tridasCombinedUploadWarningsModel); tridasCombinedUploadWarningslabel.setEscapeModelStrings(false); add(tridasCombinedUploadWarningslabel); tridasFilesUploadedMessageModel = new Model(""); tridasFilesUploadedMessageLabel = new Label("tridas_files_uploaded_message", tridasFilesUploadedMessageModel); tridasFilesUploadedMessageLabel.setEscapeModelStrings(false); add(tridasFilesUploadedMessageLabel); // --- Tree ring data // TODO put it in a Panel // // upload external measurement values // Note: The GUI design says "Values" and the code will use "TreeRingData") uploadTreeRingData = new EasyUpload("measurements_upload_panel", uploadConfig) { private static final long serialVersionUID = 6954709169671339342L; @Override public void onReceivedFiles(Map<String, String> clientParams, String basePath, List<File> files) { // add to the original files getCombinedUpload().addOriginalFiles(files); // Always delete the temporary files FileUtil.deleteDirectory(new File(basePath)); logger.info("Temp File(s) deleted"); logger.debug("Value files upload done!"); } }; // Unzip (when needed) first uploadTreeRingData.registerPostProcess(UnzipPostProcess.class); uploadTreeRingData.registerPostProcess(TreeRingDataUploadProcess.class); add(uploadTreeRingData); treeRingDataCombinedUploadWarningsModel = new Model(""); treeRingDataCombinedUploadWarningsLabel = new Label("values_combined_upload_warnings", treeRingDataCombinedUploadWarningsModel); treeRingDataCombinedUploadWarningsLabel.setEscapeModelStrings(false); add(treeRingDataCombinedUploadWarningsLabel); treeRingDataCombinedUploadErrorsModel = new Model(""); treeRingDataCombinedUploadErrorsLabel = new Label("values_combined_upload_errors", treeRingDataCombinedUploadErrorsModel); treeRingDataCombinedUploadErrorsLabel.setEscapeModelStrings(false); add(treeRingDataCombinedUploadErrorsLabel); treeRingDataFilesUploadedMessageModel = new Model(""); treeRingDataFilesUploadedMessageLabel = new Label("value_files_uploaded_message", treeRingDataFilesUploadedMessageModel); treeRingDataFilesUploadedMessageLabel.setEscapeModelStrings(false); add(treeRingDataFilesUploadedMessageLabel); //--- Associated files add(new AssociatedFilesUploadSectionPanel("associated_files_upload_section_panel")); //--- // TODO: should construct a selection box for the fileformats // based on the possible formats from the Status (A POJO) instead // of having it hardcoded in the html, as it is now! // The actual selection should then be set in the onBeforeRender. final CombinedUploadStatus status = getStatus(); // Start with the most important languages List<Locale> topLocales = LanguageProvider.getLocalesForAllOfficialEULanguages(); // then the complete list (excluding the top ones!) List<Locale> allLocales = LanguageProvider.getLocalesForAllLanguagesExcluding(topLocales); List<Locale> locales = new ArrayList<Locale>(); locales.addAll(topLocales); // How do we get a separator between the top and the rest? // we make Locale that display's a separator and handle that bogus selection locales.add(new Locale("---")); // Note: you now need to filter out this selection on he client, JavaScript code locales.addAll(allLocales); // Note: we could make a class like LocaleDropDown, // but one that follows the curent Locale for the display values etc. DropDownChoice tridasLanguageSelection = new DropDownChoice("tridas_language", new PropertyModel(status, "tridasLanguage"), locales, new ChoiceRenderer("displayName", "language")); add(tridasLanguageSelection); List<TreeRingDataFileTypeSelection> list = status.getTreeRingDataFileTypeSelection().getSelectionList(); // use the ChoiceRenderer // then the ajax get request also uses a 'readable' name instead of an index in the list ChoiceRenderer choiceRenderer = new ChoiceRenderer<TreeRingDataFileTypeSelection>("selection", "selection"); fileTypeSelection = new DropDownChoice("measurements_filetype", new PropertyModel(status, "treeRingDataFileTypeSelection"), list, choiceRenderer); add(fileTypeSelection); // add javascript libraries add(HeaderContributor.forJavaScript(new ResourceReference(EasyUpload.class, "js/lib/json2.js"))); add(HeaderContributor.forJavaScript(new ResourceReference(EasyUpload.class, "js/lib/jquery-1.3.2.min.js"))); // for getting at the upload event handlers add(HeaderContributor.forJavaScript(new ResourceReference(EasyUpload.class, "js/EasyUpload.js"))); // for the combined upload add(HeaderContributor.forJavaScript(new ResourceReference(UploadFilesPage.class, "CombinedUpload.js"))); IModel variablesModel = new AbstractReadOnlyModel() { private static final long serialVersionUID = -7833455309187754952L; public Map<String, CharSequence> getObject() { Map<String, CharSequence> variables = new HashMap<String, CharSequence>(1); ResourceReference uploadStatusRef = new ResourceReference( CombinedUploadStatusCommand.RESOURCE_NAME); variables.put("combinedUploadStatusRequestURL", getPage().urlFor(uploadStatusRef)); return variables; } }; add(TextTemplateHeaderContributor.forJavaScript(UploadFilesPage.class, "CombinedUploadConfig.js", variablesModel)); uploadHintsModel = new Model(""); uploadHintsLabel = new Label("upload_hints", uploadHintsModel); uploadHintsLabel.setEscapeModelStrings(false); add(uploadHintsLabel); // Actions (Buttons) /* backButton = new SubmitLink("back_button") { private static final long serialVersionUID = -8981750027400450695L; final String backMessage = "Do you really want to go back to the start of the upload procedure? " + "This will discard the files you uploaded."; @Override public void onSubmit() { // logger.debug("Back onSubmit is called"); back(); } @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); String onclick = tag.getAttributes().getString("onclick"); // Note when there is uploaded data to be discarded, we have readyToCancel==true final String jsString = "if(g_combinedUploadStatus.readyToCancel){" + "if(!confirm('" + backMessage + "')) return false;" + "else g_canBrowseaway=true;" + "}else g_canBrowseaway=true;"; onclick = jsString + onclick; tag.getAttributes().put("onclick", onclick); } }; form.add(backButton); */ //cancelButton = new Button("combined_cancel_button", new ResourceModel("combined_cancel_button")) cancelButton = new SubmitLink("combined_cancel_button") { private static final long serialVersionUID = 2646137560758648463L; final String cancelMessage = "Do you really want to restart this step of the the upload procedure? " + "This will discard the files you uploaded."; @Override public void onSubmit() { logger.debug("Cancel onSubmit is called"); cancel(); } @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); String onclick = tag.getAttributes().getString("onclick"); final String jsString = "if(g_combinedUploadStatus.readyToCancel){" + "if(!confirm('" + cancelMessage + "')) return false;" + "else g_canBrowseaway=true;" + "}else g_canBrowseaway=true;"; onclick = jsString + onclick; tag.getAttributes().put("onclick", onclick); } }; cancelButton.setOutputMarkupId(false); form.add(cancelButton); //finish_and_upload_button finishAndUploadButton = new SubmitLink("finish_and_upload_button") { private static final long serialVersionUID = -5706070001789062239L; @Override public void onSubmit() { //logger.debug("finishAndUploadButton onSubmit is called"); // don't browse away but reset and be ready to upload again! finish(); } @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); String onclick = tag.getAttributes().getString("onclick"); // disable the link when not ready to finish onclick = "if(g_combinedUploadStatus.readyToFinish)g_canBrowseaway=true;else return false; " + onclick; tag.getAttributes().put("onclick", onclick); } }; finishAndUploadButton.setOutputMarkupId(false); form.add(finishAndUploadButton); finishButton = new SubmitLink("finish_button") { private static final long serialVersionUID = -5706070001789062239L; @Override public void onSubmit() { // logger.debug("Finish onSubmit is called"); finish(); // Redirect to the projects view page... //setResponsePage(new ProjectsResultPage()); // My Projects // TODO go to the project // get Projects from CombinedUpload and then if there is only one, go to the view page? //setResponsePage(new MyProjectsPage()); setResponsePage(new MyProjectsSearchResultPage()); } @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); String onclick = tag.getAttributes().getString("onclick"); // disable the link when not ready to finish onclick = "if(g_combinedUploadStatus.readyToFinish)g_canBrowseaway=true;else return false; " + onclick; tag.getAttributes().put("onclick", onclick); } }; finishButton.setOutputMarkupId(false); form.add(finishButton); // Note: browsing/navigating away while there is uploaded data // is handled by a JavaScript window.onbeforeunload handler }
From source file:ontopoly.components.ConfirmDeletePanel.java
License:Apache License
public ConfirmDeletePanel(String id, final Component refreshComponent) { super(id);/*from w w w . j ava2s . co m*/ add(new Label("topic", new AbstractReadOnlyModel<String>() { @Override public String getObject() { Topic topic = topicModel.getTopic(); return topic == null ? null : topic.getName(); } })); add(new Label("dependent", new AbstractReadOnlyModel<Integer>() { @Override public Integer getObject() { Topic topic = topicModel.getTopic(); int size = topic == null ? 0 : topic.getDependentObjects().size(); return new Integer(size); } })); Button yesButton = new Button("yesButton", new ResourceModel("button.yes")); yesButton.add(new AjaxFormComponentUpdatingBehavior("onclick") { @Override public void onUpdate(AjaxRequestTarget target) { onDeleteTopic(target); target.addComponent(refreshComponent); } }); add(yesButton); Button noButton = new Button("noButton", new ResourceModel("button.no")); noButton.add(new AjaxFormComponentUpdatingBehavior("onclick") { @Override public void onUpdate(AjaxRequestTarget target) { setTopic(null); target.addComponent(refreshComponent); } }); add(noButton); }