List of usage examples for org.apache.wicket.model Model setObject
@Override public void setObject(final T object)
From source file:com.cubeia.games.poker.admin.wicket.pages.history.ShowHand.java
License:Open Source License
@SuppressWarnings("serial") private void addEvents(final HistoricHand hand) { DataView<HandHistoryEvent> events = new DataView<HandHistoryEvent>("events", new ListDataProvider<HandHistoryEvent>(hand.getEvents())) { @Override//w w w . j a v a 2 s . co m protected void populateItem(Item<HandHistoryEvent> item) { HandHistoryEvent event = item.getModelObject(); Model<String> action = new Model<String>(); Model<String> amount = new Model<String>(); Model<String> playerId = new Model<String>(); CardList kickers = new CardList("kickers"); CardList cards = new CardList("cards"); item.add(new Label("time", new Date(event.getTime()).toString())); item.add(new Label("action", action)); item.add(new Label("amount", amount)); item.add(cards); item.add(kickers); item.add(new Label("playerId", playerId)); if (event instanceof PlayerAction) { PlayerAction playerAction = (PlayerAction) event; action.setObject(playerAction.getAction().getName()); playerId.setObject(String.valueOf(playerAction.getPlayerId())); amount.setObject(formatAmount(playerAction.getAmount())); } else if (event instanceof PotUpdate) { PotUpdate potUpdate = (PotUpdate) event; action.setObject("Pot update"); amount.setObject(stringRepresentation(potUpdate)); } else if (event instanceof PlayerCardsDealt) { PlayerCardsDealt playerCards = (PlayerCardsDealt) event; action.setObject("Player cards dealt"); cards.setList(playerCards.getCards()); playerId.setObject(String.valueOf(playerCards.getPlayerId())); } else if (event instanceof TableCardsDealt) { TableCardsDealt playerCards = (TableCardsDealt) event; action.setObject("Table cards dealt"); cards.setList(playerCards.getCards()); } else if (event instanceof PlayerCardsExposed) { PlayerCardsExposed exposed = (PlayerCardsExposed) event; action.setObject("Players cards exposed"); playerId.setObject(String.valueOf(exposed.getPlayerId())); cards.setList(exposed.getCards()); } else if (event instanceof ShowDownSummary) { action.setObject("Show down summary"); } else if (event instanceof PlayerBestHand) { PlayerBestHand bestHand = (PlayerBestHand) event; playerId.setObject(String.valueOf(bestHand.getPlayerHand().getPlayerId())); HandStrengthCommon handInfo = null; if (bestHand.getHandInfoCommon() instanceof HandStrengthCommon) { handInfo = (HandStrengthCommon) bestHand.getHandInfoCommon(); } if (handInfo != null) { BigDecimal winAmount = hand.getResults().getResults() .get(bestHand.getPlayerHand().getPlayerId()).getTotalWin(); if (winAmount.compareTo(BigDecimal.ZERO) > 0) { amount.setObject("Win (" + formatAmount(winAmount) + ")"); } List<GameCard> kickerCards = handInfo.getKickerCards(); BestHandType handType = handInfo.getHandType(); action.setObject(handType.getName()); List<GameCard> list = new ArrayList<GameCard>(); switch (handType) { case HIGH_CARD: list.add(handInfo.getGroups().get(0).get(0)); kickerCards.remove(0); cards.setList(list); break; case TWO_PAIRS: list.addAll(handInfo.getCardsUsedInHand()); cards.setList(list.subList(0, 4)); break; case PAIR: case THREE_OF_A_KIND: case FOUR_OF_A_KIND: cards.setList(handInfo.getGroups().get(2)); break; case NOT_RANKED: case STRAIGHT: case FLUSH: case FULL_HOUSE: case STRAIGHT_FLUSH: case ROYAL_STRAIGHT_FLUSH: default: cards.setList(handInfo.getCardsUsedInHand()); break; } if (kickerCards != null && kickerCards.size() > 0) { kickers.setList(kickerCards); } } } } }; add(events); }
From source file:com.evolveum.midpoint.gui.api.component.autocomplete.AutoCompleteItemDefinitionPanel.java
License:Apache License
private void initLayout(final IModel<ItemDefinition<?>> model) { final Model<String> itemDefinitionAsStringModel = new Model<>(null); AutoCompleteTextField<String> input = new AutoCompleteTextField<String>(ID_INPUT, itemDefinitionAsStringModel, String.class, createAutoCompleteSettings()) { private static final long serialVersionUID = 1L; @Override// w ww . j a v a 2 s . c o m protected Iterator<String> getChoices(String input) { List<String> defsAsString = new ArrayList<>(); for (ItemDefinition<?> def : listChoices(input).values()) { defsAsString.add(def.getName().getLocalPart()); } return defsAsString.iterator(); } @Override protected void onConfigure() { super.onConfigure(); itemDefinitionAsStringModel.setObject(null); } }; input.add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { String newValue = itemDefinitionAsStringModel.getObject(); if (StringUtils.isNotBlank(newValue)) { ItemDefinition<?> def = listChoices("").get(newValue); if (def != null) { model.setObject(def); } } } }); add(input); }
From source file:com.evolveum.midpoint.web.component.assignment.SimpleParametricRoleSelector.java
License:Apache License
private void initLayout() { IModel<String> labelParamModel = new IModel<String>() { @Override//from ww w . ja v a 2 s . c o m public void detach() { } @Override public String getObject() { return getLabelParam(); } @Override public void setObject(String object) { } }; add(new Label(ID_LABEL_PARAM, labelParamModel) { @Override protected void onConfigure() { setVisible(getLabelParam() != null); super.onConfigure(); } }); IModel<String> labelRoleModel = new IModel<String>() { @Override public void detach() { } @Override public String getObject() { return getLabelRole(); } @Override public void setObject(String object) { } }; add(new Label(ID_LABEL_ROLE, labelRoleModel) { @Override protected void onConfigure() { setVisible(getLabelRole() != null); super.onConfigure(); } }); paramList = new ListView<String>(ID_LIST_PARAM, paramListModel) { @Override protected void populateItem(ListItem<String> item) { item.add(createParamLink(ID_ITEM_PARAM, item.getModel())); } }; paramList.setOutputMarkupId(true); add(paramList); final Model<String> addInputModel = new Model<String>(); TextField<String> addInput = new TextField<>(ID_ADD_INPUT, addInputModel); addInput.setOutputMarkupId(true); addInput.add(new AjaxFormComponentUpdatingBehavior("blur") { @Override protected void onUpdate(AjaxRequestTarget target) { // nothing to do, Ajax behavior is there only to get data to model } }); add(addInput); AjaxLink<String> addLink = new AjaxLink<String>(ID_ADD_LINK) { @Override public void onClick(AjaxRequestTarget target) { String newParam = addInputModel.getObject(); LOGGER.debug("ADD cliked, input field value: {}", newParam); if (!StringUtils.isBlank(newParam)) { addParam(newParam); } addInputModel.setObject(null); target.add(SimpleParametricRoleSelector.this); } }; add(addLink); AjaxLink<String> deleteLink = new AjaxLink<String>(ID_DELETE_LINK) { @Override public void onClick(AjaxRequestTarget target) { LOGGER.debug("DELETE cliked, selected param: {}", selectedParam); deleteParam(selectedParam); target.add(SimpleParametricRoleSelector.this); } }; add(deleteLink); }
From source file:cz.zcu.kiv.eegdatabase.wui.ui.history.HistoryPage.java
License:Apache License
public void addComponents(final ChoiceHistory choice) { this.choice = choice; isGroupAdmin = securityFacade.userIsGroupAdmin(); Person loggedUser = EEGDataBaseSession.get().getLoggedUser(); ResearchGroup defaultGroup = loggedUser.getDefaultGroup(); groupId = defaultGroup == null ? 0 : loggedUser.getDefaultGroup().getResearchGroupId(); final boolean admin = securityFacade.isAdmin(); if (!admin && !isGroupAdmin) { throw new RestartResponseAtInterceptPageException(HomePage.class); }//ww w .j a v a2 s .co m if (admin) { groupId = 0; isGroupAdmin = false; } setPageTitle(ResourceUtils.getModel("title.page.history")); add(new ButtonPageMenu("leftMenu", HistoryLeftPageMenu.values())); final WebMarkupContainer container = new WebMarkupContainer("container"); container.setOutputMarkupId(true); final HistoryTopDownloadsDataProvider topDownloadsDataProvider = new HistoryTopDownloadsDataProvider( historyFacade); topDownloadsDataProvider.setData(choice, isGroupAdmin, groupId); topDownloadsDataProvider.setSort("count", SortOrder.DESCENDING); final HistoryLastDownloadedDataProvider lastDownloadedDataProvider = new HistoryLastDownloadedDataProvider( historyFacade); lastDownloadedDataProvider.setData(choice, isGroupAdmin, groupId); lastDownloadedDataProvider.setSort("dateOfDownload", SortOrder.DESCENDING); final HistoryAllTimeRangeRecordsDataProvider allTimeRangeDataProvider = new HistoryAllTimeRangeRecordsDataProvider( historyFacade); allTimeRangeDataProvider.setData(choice, isGroupAdmin, groupId); allTimeRangeDataProvider.setSort("dateOfDownload", SortOrder.DESCENDING); if (choice == ChoiceHistory.DAILY) { container.add(new Label("title", ResourceUtils.getModel("pageTitle.dailyDownloadHistory"))); container.add(new Label("timePeriodStatistic", ResourceUtils.getModel("title.dailyStatistic"))); container.add(new Label("allTimePeriodRecords", ResourceUtils.getModel("title.allDailyRecords"))); } else if (choice == ChoiceHistory.WEEKLY) { container.add(new Label("title", ResourceUtils.getModel("pageTitle.weeklyDownloadHistory"))); container.add(new Label("timePeriodStatistic", ResourceUtils.getModel("title.weeklyStatistic"))); container.add(new Label("allTimePeriodRecords", ResourceUtils.getModel("title.allWeeklyRecords"))); } else if (choice == ChoiceHistory.MONTHLY) { container.add(new Label("title", ResourceUtils.getModel("pageTitle.monthlyDownloadHistory"))); container.add(new Label("timePeriodStatistic", ResourceUtils.getModel("title.monthlyStatistic"))); container.add(new Label("allTimePeriodRecords", ResourceUtils.getModel("title.allMonthlyRecords"))); } else { throw new RestartResponseAtInterceptPageException(HistoryPage.class); } container.add( new Label("downloadFiles", ResourceUtils.getModel("text.downloadFiles")).setRenderBodyOnly(true)); final Model<String> countModel = new Model<String>("" + allTimeRangeDataProvider.getCountOfHistory()); container.add(new Label("count", countModel).setRenderBodyOnly(true)); container.add(new Label("topDownloads", ResourceUtils.getModel("title.topDownloads"))); DefaultDataTable<DownloadStatistic, String> topDownloadedFilelist = new DefaultDataTable<DownloadStatistic, String>( "topDownloadedFilelist", createListColumnsTopDownloads(), topDownloadsDataProvider, ITEMS_PER_PAGE); container.add(topDownloadedFilelist); getChartImage(); container.add(chartImage); container.add(new Label("lastDownloaded", ResourceUtils.getModel("title.lastDownloaded"))); DefaultDataTable<History, String> lastDownloadedFilesHistoryList = new DefaultDataTable<History, String>( "lastDownloadedFilesHistoryList", createListColumnsLastDownloaded(), lastDownloadedDataProvider, ITEMS_PER_PAGE); container.add(lastDownloadedFilesHistoryList); DefaultDataTable<History, String> historyList = new DefaultDataTable<History, String>("historyList", createListColumnsAllTimeRangeRecords(), allTimeRangeDataProvider, ITEMS_PER_PAGE); container.add(historyList); Form<Void> groupForm = new Form<Void>("form"); ChoiceRenderer<ResearchGroup> renderer = new ChoiceRenderer<ResearchGroup>("title", "researchGroupId"); List<ResearchGroup> choices = researchGroupFacade.getResearchGroupsWhereUserIsGroupAdmin(loggedUser); final DropDownChoice<ResearchGroup> researchGroupChoice = new DropDownChoice<ResearchGroup>("researchGroup", new Model<ResearchGroup>(), choices, renderer); if (defaultGroup != null) researchGroupChoice.setModelObject(defaultGroup); if (admin) { ResearchGroup showAll = new ResearchGroup(); showAll.setResearchGroupId(0); showAll.setTitle(ResourceUtils.getString("select.option.allGroups")); choices.add(0, showAll); researchGroupChoice.setModelObject(showAll); } researchGroupChoice.setRequired(true); researchGroupChoice.setLabel(ResourceUtils.getModel("label.group")); researchGroupChoice.add(new AjaxFormComponentUpdatingBehavior("onChange") { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { isGroupAdmin = securityFacade.userIsGroupAdmin(); ResearchGroup group = researchGroupChoice.getModelObject(); groupId = group == null ? -1 : group.getResearchGroupId(); if (groupId == 0 && admin) { isGroupAdmin = false; } topDownloadsDataProvider.setData(choice, isGroupAdmin, groupId); lastDownloadedDataProvider.setData(choice, isGroupAdmin, groupId); allTimeRangeDataProvider.setData(choice, isGroupAdmin, groupId); countModel.setObject("" + allTimeRangeDataProvider.getCountOfHistory()); getChartImage(); target.add(container); } }); groupForm.add(researchGroupChoice); container.add(groupForm); add(container); }
From source file:de.flapdoodle.wicket.model.TestModelTransformations.java
License:Apache License
private void checkModelModifications(Model<Integer> source, IModel<String> model) { Assert.assertEquals("1", model.getObject()); source.setObject(2); Assert.assertEquals("1", model.getObject()); model.detach();// www .java2 s.c om Assert.assertEquals("2", model.getObject()); }
From source file:de.flapdoodle.wicket.model.TestModelTransformations.java
License:Apache License
private void checkModelModifications(Model<Integer> a, Model<Integer> b, IModel<Integer> model) { Assert.assertEquals(Integer.valueOf(3), model.getObject()); a.setObject(2); Assert.assertEquals(Integer.valueOf(3), model.getObject()); model.detach();/*from w w w.j a v a2s . c om*/ Assert.assertEquals(Integer.valueOf(4), model.getObject()); b.setObject(3); Assert.assertEquals(Integer.valueOf(4), model.getObject()); model.detach(); Assert.assertEquals(Integer.valueOf(5), model.getObject()); }
From source file:de.flapdoodle.wicket.model.TestModelTransformations.java
License:Apache License
private void checkModelModifications(Model<Integer> a, Model<Integer> b, Model<String> postfix, IModel<String> model) { Assert.assertEquals("3 Kinder", model.getObject()); a.setObject(2); Assert.assertEquals("3 Kinder", model.getObject()); model.detach();/* w ww. jav a2s . c o m*/ Assert.assertEquals("4 Kinder", model.getObject()); b.setObject(3); Assert.assertEquals("4 Kinder", model.getObject()); model.detach(); Assert.assertEquals("5 Kinder", model.getObject()); postfix.setObject("pfel"); Assert.assertEquals("5 Kinder", model.getObject()); model.detach(); Assert.assertEquals("5 pfel", model.getObject()); }
From source file:hsa.awp.admingui.usermanagement.MandatorPanel.java
License:Open Source License
private void addMandatorCreation() { final Form form = new Form("form"); final Model<String> nameModel = new Model<String>(); final TextField<String> textField = new TextField<String>("name", nameModel); textField.setOutputMarkupId(true);//from w ww . j a v a 2s .com AjaxButton button = new AjaxButton("button", new Model<String>("anlegen")) { @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { Mandator mandator = controller.getMandatorByName(nameModel.getObject()); if (mandator == null) { controller.createMandator(nameModel.getObject()); textField.clearInput(); nameModel.setObject(""); } else { feedbackPanel.error("Mandant mit dem Namen '" + nameModel.getObject() + "' existiert bereits."); } target.addComponent(textField); target.addComponent(container); target.addComponent(feedbackPanel); } }; form.add(textField); form.add(button); add(form); }
From source file:nl.knaw.dans.common.wicket.components.explorer.ExplorerPanel.java
License:Apache License
@SuppressWarnings("serial") public ExplorerPanel(String name, IModel model, final ITreeProvider<ITreeItem> treeProvider) { super(name, model); this.treeProvider = treeProvider; treeState = new ProviderSubset<ITreeItem>(treeProvider); content = new SelectableFolderContent(treeProvider) { @Override/*w w w . j a v a2 s . com*/ protected void selectEvent(final AjaxRequestTarget target) { IModel<ITreeItem> selected = content.getSelected(); if (selected != null) { tree.expand(selected.getObject()); List<ITreeItem> list = selected.getObject().getChildrenWithFiles(); tableProvider.setList(list); selectedFolderChanged(selected); breadcrumbPanel.update(target, selected.getObject()); target.addComponent(table); } } }; tree = createTree(treeProvider, newStateModel()); tree.add(new AbstractBehavior() { @Override public void renderHead(IHeaderResponse response) { response.renderCSSReference(theme); response.renderCSSReference(style); } }); initialExpand(treeProvider.getRoots().next()); add(tree); final Model<IndicatingAjaxLink<Void>> expandModel = new Model<IndicatingAjaxLink<Void>>(); final Model<IndicatingAjaxLink<Void>> collapseModel = new Model<IndicatingAjaxLink<Void>>(); // expand all button final IndicatingAjaxLink<Void> expand = new IndicatingAjaxLink<Void>("expandAll") { @Override public void onClick(AjaxRequestTarget target) { ((IDetachable) treeState).detach(); treeState = new InverseSet<ITreeItem>(new ProviderSubset<ITreeItem>(treeProvider)); this.setVisible(false); collapseModel.getObject().setVisible(true); target.addComponent(this.getParent()); } }; expandModel.setObject(expand); add(expand); // collapse all button final IndicatingAjaxLink<Void> collapse = new IndicatingAjaxLink<Void>("collapseAll") { @Override public void onClick(AjaxRequestTarget target) { ((IDetachable) treeState).detach(); treeState = new ProviderSubset<ITreeItem>(treeProvider); this.setVisible(false); expandModel.getObject().setVisible(true); target.addComponent(this.getParent()); } }; collapse.setVisible(false); collapseModel.setObject(collapse); add(collapse); // up button add(new IndicatingAjaxLink<Void>("up") { @Override public void onClick(AjaxRequestTarget target) { ITreeItem parentItem = content.getSelected().getObject().getParent(); if (parentItem != null) { IModel<ITreeItem> parentModel = treeProvider.model(parentItem); tree.expand(parentItem); List<ITreeItem> list = parentItem.getChildrenWithFiles(); tableProvider.setList(list); target.addComponent(table); content.setSelectedAndUpdate(parentModel, tree, target); selectedFolderChanged(parentModel); } } }); final Model<IndicatingAjaxLink<Void>> selectAllModel = new Model<IndicatingAjaxLink<Void>>(); final Model<IndicatingAjaxLink<Void>> selectNoneModel = new Model<IndicatingAjaxLink<Void>>(); // select all button IndicatingAjaxLink<Void> selectAll = new IndicatingAjaxLink<Void>("selectAll") { @Override public void onClick(AjaxRequestTarget target) { selectAllClicked(target); this.setVisible(false); target.addComponent(this); selectNoneModel.getObject().setVisible(true); target.addComponent(selectNoneModel.getObject()); } }; selectAllModel.setObject(selectAll); add(selectAll); // select none button IndicatingAjaxLink<Void> selectNone = new IndicatingAjaxLink<Void>("selectNone") { @Override public void onClick(AjaxRequestTarget target) { selectNoneClicked(target); this.setVisible(false); target.addComponent(this); selectAllModel.getObject().setVisible(true); target.addComponent(selectAllModel.getObject()); } }; selectNone.setVisible(false); selectNoneModel.setObject(selectNone); add(selectNone); breadcrumbPanel = new BreadcrumbPanel("breadcrumbPanel", content.getSelected().getObject()); add(breadcrumbPanel); IColumn[] columns = new IColumn[1]; columns[0] = new PropertyColumn(new Model("name"), "name", "name"); // GK: note: couldn't find a function to disable paging therefor the Integer.MAX_VALUE as a workaround table = new DefaultDataTable("datatable", columns, tableProvider, Integer.MAX_VALUE); table.setOutputMarkupId(true); add(table); }
From source file:ontopoly.pages.ModalFindPage.java
License:Apache License
private WebMarkupContainer createBrowseTab() { final WebMarkupContainer browseTab = new WebMarkupContainer("browseTab"); browseTab.setOutputMarkupId(true);//ww w. j a v a 2 s . c o m this.playerTypesChoicesModel = new LoadableDetachableModel<List<TopicType>>() { @Override protected List<TopicType> load() { // TODO: should merge with PlayerTypesModel.java (extend to filter my large instance types) FieldInstance fieldInstance = fieldInstanceModel.getFieldInstance(); RoleField associationField = (RoleField) fieldInstance.getFieldAssignment().getFieldDefinition(); // FIXME: this doesn't work for n+ary fields RoleField otherField = (RoleField) associationField.getFieldsForOtherRoles().iterator().next(); TopicMap tm = associationField.getTopicMap(); // include all topic types except those with large instance sets Collection<TopicType> allowedValueTypes = otherField.getDeclaredPlayerTypes(); Collection<TopicType> largeInstanceSets = tm.getTopicTypesWithLargeInstanceSets(); List<TopicType> topicTypes = new ArrayList<TopicType>(allowedValueTypes.size()); Iterator<TopicType> iter = allowedValueTypes.iterator(); while (iter.hasNext()) { TopicType topicType = iter.next(); if (!largeInstanceSets.contains(topicType)) topicTypes.add(topicType); } return topicTypes; } }; List<TopicType> playerTypes = playerTypesChoicesModel.getObject(); TopicType selectedType = playerTypes.size() == 1 ? playerTypes.get(0) : null; this.selectedTypeModel = new TopicModel<TopicType>(selectedType, TopicModel.TYPE_TOPIC_TYPE); final WebMarkupContainer resultsContainer = new WebMarkupContainer("resultsContainer"); resultsContainer.setOutputMarkupId(true); browseTab.add(resultsContainer); final FormComponent checkGroup; final Model<String> radioGroupModel = new Model<String>(); final Collection<String> checkGroupModel = new HashSet<String>(); final boolean maxOneCardinality = isMaxOneCardinality(); if (maxOneCardinality) { checkGroup = new RadioGroup<String>("checkGroup", radioGroupModel); } else { checkGroup = new CheckGroup<String>("checkGroup", checkGroupModel); } final AjaxParentFormChoiceComponentUpdatingBehavior apfc = new AjaxParentFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { // notify server when selection is made } }; checkGroup.add(apfc); resultsContainer.add(checkGroup); // create a tree final TreePanel treePanel = new TreePanel("results", getTreeModel(null)) { @Override protected Component populateNode(String id, TreeNode treeNode) { DefaultMutableTreeNode mTreeNode = (DefaultMutableTreeNode) treeNode; final TopicNode node = (TopicNode) mTreeNode.getUserObject(); Topic selectedType = selectedTypeModel.getTopic(); final boolean selectable = node.getTopic().isInstanceOf(selectedType); // create link with label return new CheckLabelPanel(id) { @Override protected Component newCheck(String id) { if (maxOneCardinality) { return new AjaxParentRadioChild<String>(id, new Model<String>(node.getTopicId()), apfc) { @Override public boolean isVisible() { return selectable; } @Override protected void onComponentTag(final ComponentTag tag) { tag.put("type", "radio"); super.onComponentTag(tag); } }; } else { return new AjaxParentCheckChild(id, new Model<String>(node.getTopicId()), apfc) { @Override public boolean isVisible() { return selectable; } @Override protected void onComponentTag(final ComponentTag tag) { tag.put("type", "checkbox"); super.onComponentTag(tag); } }; } } @Override protected Label newLabel(String id) { Label label = new Label(id, new Model<String>(node.getName())); label.setRenderBodyOnly(false); return label; } }; } }; treePanel.setOutputMarkupId(true); checkGroup.add(treePanel); // NOTE: need to readd model here because page, which we depend on // in the construction of the tree model, is not available in // TreePanel constructor if (this.selectedTypeModel != null) treePanel.setDefaultModel(getTreeModel(selectedType)); final TopicDropDownChoice<TopicType> playerTypesDropDown = new TopicDropDownChoice<TopicType>("playerTypes", this.selectedTypeModel, playerTypesChoicesModel); playerTypesDropDown.add(new AjaxFormComponentUpdatingBehavior("onchange") { protected void onUpdate(AjaxRequestTarget target) { // replace tree model TopicType topicType = (TopicType) playerTypesDropDown.getDefaultModelObject(); treePanel.setDefaultModel(getTreeModel(topicType)); target.addComponent(resultsContainer); } }); browseTab.add(playerTypesDropDown); Button closeOkButton = new Button("closeOK"); closeOkButton.add(new AjaxFormComponentUpdatingBehavior("onclick") { @Override protected void onUpdate(AjaxRequestTarget target) { Object modelObject = checkGroup.getModelObject(); Collection selected; if (modelObject instanceof String) selected = Collections.singleton(modelObject); else selected = (Collection) modelObject; if (selected == null) selected = Collections.EMPTY_LIST; // add associations for selected topics onSelectionConfirmed(target, selected); onCloseOk(target); // reset selected topic type, choice group and tree model selectedTypeModel.setObject(null); treePanel.setDefaultModel(getTreeModel(null)); radioGroupModel.setObject(null); checkGroupModel.clear(); } }); browseTab.add(closeOkButton); Button closeCancelButton = new Button("closeCancel"); closeCancelButton.add(new AjaxFormComponentUpdatingBehavior("onclick") { @Override protected void onUpdate(AjaxRequestTarget target) { onCloseCancel(target); // reset selected topic type, choice group and tree model selectedTypeModel.setObject(null); treePanel.setDefaultModel(getTreeModel(null)); radioGroupModel.setObject(null); checkGroupModel.clear(); } }); browseTab.add(closeCancelButton); return browseTab; }