List of usage examples for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel
AbstractReadOnlyModel
From source file:de.javakaffee.msm.bench.ListLightPage.java
License:Apache License
/** * Constructor that is invoked when page is invoked without a session. * /*from ww w . ja v a2 s .com*/ * @param parameters * Page parameters */ public ListLightPage(final PageParameters parameters) { setStatelessHint(true); // Add the simplest type of label add(new Label("message", "Just a list of lightweight items. They're not stored directly in the session, but only their ids.")); final int page = parameters.getInt("page", 1) - 1; final String sortProperty = parameters.getString("orderby", "firstName"); final boolean ascending = parameters.getAsBoolean("asc", true); final SortableContactDataProvider dp = new SortableContactDataProvider(sortProperty, ascending); final DataView<Contact> dataView = new DataView<Contact>("sorting", dp) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final Item<Contact> item) { final Contact contact = item.getModelObject(); item.add(new ActionPanel("actions", item.getModel())); item.add(new Label("contactid", String.valueOf(contact.getId()))); item.add(new Label("firstname", contact.getFirstName())); item.add(new Label("lastname", contact.getLastName())); item.add(new Label("homephone", contact.getHomePhone())); item.add(new Label("cellphone", contact.getCellPhone())); item.add(new AttributeModifier("class", true, new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { return (item.getIndex() % 2 == 1) ? "even" : "odd"; } })); } }; dataView.setItemsPerPage(8); dataView.setCurrentPage(page); add(new MyOrderByBorder("orderById", "id", dp)); add(new MyOrderByBorder("orderByFirstName", "firstName", dp)); add(new MyOrderByBorder("orderByLastName", "lastName", dp)); add(dataView); add(new PagingNavigator("navigator", dataView) { private static final long serialVersionUID = 1L; /* * (non-Javadoc) * * @see * org.apache.wicket.markup.html.navigation.paging.PagingNavigator * #newPagingNavigationIncrementLink(java.lang.String, * org.apache.wicket.markup.html.navigation.paging.IPageable, int) */ @Override protected AbstractLink newPagingNavigationIncrementLink(final String id, final IPageable pageable, final int increment) { return new PagingNavigationIncrementLink<Void>(id, pageable, increment) { private static final long serialVersionUID = 1L; /* * (non-Javadoc) * * @seeorg.apache.wicket.markup.html.navigation.paging. * PagingNavigationIncrementLink#onClick() */ @Override public void onClick() { throw new UnsupportedOperationException("OnClick not supported by bookmarkable link"); } /* * (non-Javadoc) * * @see org.apache.wicket.markup.html.link.Link#getURL() */ @Override protected CharSequence getURL() { final PageParameters params = new PageParameters(); final SortParam sort = dp.getSort(); params.add("page", String.valueOf(getPageNumber() + 1)); params.add("orderby", sort.getProperty()); params.add("asc", String.valueOf(sort.isAscending())); return urlFor(ListLightPage.class, params); } /* * (non-Javadoc) * * @see * org.apache.wicket.markup.html.link.Link#getStatelessHint * () */ @Override protected boolean getStatelessHint() { return true; } }; } /* * (non-Javadoc) * * @see * org.apache.wicket.markup.html.navigation.paging.PagingNavigator * #newPagingNavigationLink(java.lang.String, * org.apache.wicket.markup.html.navigation.paging.IPageable, int) */ @Override protected AbstractLink newPagingNavigationLink(final String id, final IPageable pageable, final int pageNumber) { return new MyPagingNavigationLink<Void>(id, pageable, pageNumber, dp); } /* * (non-Javadoc) * * @see * org.apache.wicket.markup.html.navigation.paging.PagingNavigator * #newNavigation * (org.apache.wicket.markup.html.navigation.paging.IPageable, * org.apache * .wicket.markup.html.navigation.paging.IPagingLabelProvider) */ @Override protected PagingNavigation newNavigation(final IPageable pageable, final IPagingLabelProvider labelProvider) { return new PagingNavigation("navigation", pageable, labelProvider) { private static final long serialVersionUID = 1L; /* * (non-Javadoc) * * @seeorg.apache.wicket.markup.html.navigation.paging. * PagingNavigation * #newPagingNavigationLink(java.lang.String, * org.apache.wicket * .markup.html.navigation.paging.IPageable, int) */ @Override protected AbstractLink newPagingNavigationLink(final String id, final IPageable pageable, final int pageIndex) { return new MyPagingNavigationLink<Void>(id, pageable, pageIndex, dp); } }; } }); }
From source file:de.tudarmstadt.ukp.clarin.webanno.monitoring.page.AgreementTable.java
License:Apache License
public AgreementTable(String aId, IModel<AgreementFormModel> aSettings, IModel<PairwiseAnnotationResult> aModel) { super(aId, aModel); settings = aSettings;/*from w ww . j a v a 2 s. c o m*/ setOutputMarkupId(true); // This model makes sure we add a "null" dummy rater which accounts for the header columns // of the table. final IModel<List<String>> ratersAdapter = new AbstractReadOnlyModel<List<String>>() { private static final long serialVersionUID = 1L; @Override public List<String> getObject() { List<String> raters = new ArrayList<>(); if (getModelObject() != null) { raters.add(null); raters.addAll(getModelObject().getRaters()); } return raters; } }; rows = new DefaultRefreshingView<String>("rows", ratersAdapter) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final Item<String> aRowItem) { // Render regular row aRowItem.add(new DefaultRefreshingView<String>("cells", ratersAdapter) { private static final long serialVersionUID = 1L; @Override protected void populateItem(Item<String> aCellItem) { aCellItem.setRenderBodyOnly(true); Fragment cell; // Content cell if (aRowItem.getIndex() == 0 || aCellItem.getIndex() == 0) { cell = new Fragment("cell", "th", AgreementTable.this); } // Header cell else { cell = new Fragment("cell", "td", AgreementTable.this); } // Top-left cell if (aRowItem.getIndex() == 0 && aCellItem.getIndex() == 0) { cell.add(new Label("label", Model.of(""))); } // Raters header horizontally else if (aRowItem.getIndex() == 0 && aCellItem.getIndex() != 0) { cell.add(new Label("label", Model.of(aCellItem.getModelObject()))); } // Raters header vertically else if (aRowItem.getIndex() != 0 && aCellItem.getIndex() == 0) { cell.add(new Label("label", Model.of(aRowItem.getModelObject()))); } // Upper diagonal else if (aCellItem.getIndex() > aRowItem.getIndex()) { AgreementResult result = AgreementTable.this.getModelObject() .getStudy(aRowItem.getModelObject(), aCellItem.getModelObject()); boolean noDataRater0 = result.isAllNull(result.getCasGroupIds().get(0)); boolean noDataRater1 = result.isAllNull(result.getCasGroupIds().get(1)); String label; if (result.getStudy().getItemCount() == 0) { label = "no positions"; } else if (noDataRater0 && noDataRater1) { label = "no labels"; } else if (noDataRater0) { label = "no labels from " + result.getCasGroupIds().get(0); } else if (noDataRater1) { label = "no labels from " + result.getCasGroupIds().get(1); } else { label = String.format("%.2f", result.getAgreement()); } StringBuilder tooltipTitle = new StringBuilder(); tooltipTitle.append(result.getCasGroupIds().get(0)); tooltipTitle.append('/'); tooltipTitle.append(result.getCasGroupIds().get(1)); StringBuilder tooltipContent = new StringBuilder(); tooltipContent.append("Positions annotated:\n"); tooltipContent.append(String.format("- %s: %d/%d%n", result.getCasGroupIds().get(0), result.getNonNullCount(result.getCasGroupIds().get(0)), result.getStudy().getItemCount())); tooltipContent.append(String.format("- %s: %d/%d%n", result.getCasGroupIds().get(1), result.getNonNullCount(result.getCasGroupIds().get(1)), result.getStudy().getItemCount())); tooltipContent.append(String.format("Distinct labels used: %d%n", result.getStudy().getCategoryCount())); Label l = new Label("label", Model.of(label)); cell.add(l); l.add(makeDownloadBehavior(aRowItem.getModelObject(), aCellItem.getModelObject())); DescriptionTooltipBehavior tooltip = new DescriptionTooltipBehavior( tooltipTitle.toString(), tooltipContent.toString()); tooltip.setOption("position", (Object) null); l.add(tooltip); l.add(new AttributeAppender("style", "cursor: pointer", ";")); } // Lower diagonal else if (aCellItem.getIndex() < aRowItem.getIndex()) { AgreementResult result = AgreementTable.this.getModelObject() .getStudy(aRowItem.getModelObject(), aCellItem.getModelObject()); String label = String.format("%d/%d", result.getCompleteSetCount(), result.getRelevantSetCount()); String tooltipTitle = "Details about annotations excluded from " + "agreement calculation"; StringBuilder tooltipContent = new StringBuilder(); if (result.isExcludeIncomplete()) { tooltipContent.append(String.format("- Incomplete (missing): %d%n", result.getIncompleteSetsByPosition().size())); tooltipContent.append(String.format("- Incomplete (not labeled): %d%n", result.getIncompleteSetsByLabel().size())); } tooltipContent .append(String.format("- Plurality: %d", result.getPluralitySets().size())); Label l = new Label("label", Model.of(label)); DescriptionTooltipBehavior tooltip = new DescriptionTooltipBehavior( tooltipTitle.toString(), tooltipContent.toString()); tooltip.setOption("position", (Object) null); l.add(tooltip); l.add(new AttributeAppender("style", "cursor: help", ";")); cell.add(l); } // Rest else { cell.add(new Label("label", Model.of("-"))); } aCellItem.add(cell); } }); // Odd/even coloring is reversed here to account for the header row at index 0 aRowItem.add(new AttributeAppender("class", (aRowItem.getIndex() % 2 == 0) ? "odd" : "even")); } }; add(rows); }
From source file:de.tudarmstadt.ukp.clarin.webanno.monitoring.support.DynamicColumnMetaData.java
License:Apache License
public DynamicColumnMetaData(final TableDataProvider prov, final int colNumber) { super(new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override/* w w w . j av a 2 s .co m*/ public String getObject() { return prov.getColNames().get(colNumber); } }); columnNumber = colNumber; }
From source file:de.tudarmstadt.ukp.csniper.webapp.support.wicket.RepeatingItem.java
License:Apache License
public RepeatingItem(String id, int index) { super(id, index); setModel(new AbstractReadOnlyModel<T>() { private static final long serialVersionUID = 1L; @SuppressWarnings("unchecked") @Override/* www. j a v a2 s .c o m*/ public T getObject() { return ((RepeatingEditor<T>) RepeatingItem.this.getParent()).items.get(getIndex()); } }); }
From source file:dk.frankbille.scoreboard.BasePage.java
License:Open Source License
public BasePage() { MenuPanel menuPanel = new MenuPanel("menu", new PropertyModel<MenuItemType>(this, "menuItemType")); menuPanel.setRenderBodyOnly(true);// www.j a v a2 s. co m add(menuPanel); add(new Label("copyrightDate", new AbstractReadOnlyModel<CharSequence>() { private static final long serialVersionUID = 1L; @Override public CharSequence getObject() { int inceptionYear = 2012; int thisYear = new DateMidnight().getYear(); StringBuilder sb = new StringBuilder(); sb.append(inceptionYear); if (inceptionYear != thisYear) { sb.append("-"); sb.append(thisYear); } return sb; } })); }
From source file:dk.frankbille.scoreboard.components.FormatModel.java
License:Open Source License
@SuppressWarnings("unchecked") public FormatModel(Format format, final Object object) { this.format = format; if (object instanceof IModel<?>) { objectModel = (IModel<Object>) object; } else {//from w w w. j ava 2 s . c om this.objectModel = new AbstractReadOnlyModel<Object>() { private static final long serialVersionUID = 1L; @Override public Object getObject() { return object; } }; } }
From source file:dk.frankbille.scoreboard.components.GameTeamPanel.java
License:Open Source License
public GameTeamPanel(String id, final IModel<GameTeam> model, final IModel<Player> selectedPlayerModel, final RatingCalculator rating) { super(id, model); final IModel<List<Player>> playersModel = new LoadableDetachableModel<List<Player>>() { private static final long serialVersionUID = 1L; @Override//from w w w. ja v a2 s . c o m protected List<Player> load() { GameTeam gameTeam = model.getObject(); Team team = gameTeam.getTeam(); List<Player> players = new ArrayList<Player>(team.getPlayers()); Collections.sort(players, new PlayerComparator()); return players; } }; WebMarkupContainer gameTeamPanel = new WebMarkupContainer("gameTeamPanel"); add(gameTeamPanel); // Popover - Only show if RatingCalculator is available if (rating != null) { gameTeamPanel.add(new PopoverBehavior(new StringResourceModel("rating", null), new AbstractReadOnlyModel<CharSequence>() { private static final long serialVersionUID = 1L; @Override public CharSequence getObject() { StringBuilder b = new StringBuilder(); b.append("<small>"); GameTeam gameTeam = model.getObject(); List<Player> players = playersModel.getObject(); Localizer localizer = Application.get().getResourceSettings().getLocalizer(); // Player ratings for (Player player : players) { b.append(player.getName()).append(": "); GamePlayerRatingInterface playerRating = rating .getGamePlayerRating(gameTeam.getGame().getId(), player.getId()); b.append(RATING_VALUE.format(playerRating.getRating())); b.append(" <sup>"); b.append(RATING_CHANGE.format(playerRating.getChange())); b.append("</sup><br>"); } // Team rating GameRatingInterface gameRatingChange = rating .getGameRatingChange(gameTeam.getGame().getId()); b.append("<strong>"); b.append(localizer.getString("team", GameTeamPanel.this)).append(": "); b.append(RATING_VALUE.format(gameRatingChange.getRating(gameTeam.getId()))); b.append(" "); double change = gameRatingChange.getChange(gameTeam.getId()); int playerCount = players.size(); if (playerCount > 0) { change /= playerCount; } b.append(" <sup>"); b.append(RATING_CHANGE.format(change)); b.append("</sup></strong></small>"); return b; } })); } // Players gameTeamPanel.add(new ListView<Player>("players", playersModel) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<Player> item) { final Player player = item.getModelObject(); PageParameters pp = new PageParameters(); pp.set(0, player.getId()); BookmarkablePageLink<Void> playerLink = new BookmarkablePageLink<Void>("playerLink", PlayerPage.class, pp); item.add(playerLink); playerLink.add(new Label("name", new PropertyModel<String>(item.getModel(), "name"))); item.add(new Label("plus", "+") { private static final long serialVersionUID = 1L; @Override public boolean isVisible() { return item.getIndex() < getViewSize() - 1; } }); } }); }
From source file:dk.frankbille.scoreboard.components.LeagueSelector.java
License:Open Source License
public LeagueSelector(String id, IModel<League> model) { super(id, model); setRenderBodyOnly(true);//from ww w.j av a2 s.c om final IModel<SortedMap<Boolean, Set<League>>> allLeaguesModel = new LoadableDetachableModel<SortedMap<Boolean, Set<League>>>() { @Override protected SortedMap<Boolean, Set<League>> load() { SortedMap<Boolean, Set<League>> groupedLeagues = new TreeMap<Boolean, Set<League>>( Ordering.natural().reverse()); List<League> allLeagues = scoreBoardService.getAllLeagues(); for (League league : allLeagues) { Set<League> leaguesByState = groupedLeagues.get(league.isActive()); if (leaguesByState == null) { leaguesByState = new HashSet<League>(); groupedLeagues.put(league.isActive(), leaguesByState); } leaguesByState.add(league); } return groupedLeagues; } }; IModel<List<Boolean>> leagueStatesModel = new LoadableDetachableModel<List<Boolean>>() { @Override protected List<Boolean> load() { return new ArrayList<Boolean>(allLeaguesModel.getObject().keySet()); } }; Select<League> select = new Select<League>("select", model) { }; select.add(new Select2Enabler()); select.add(AttributeAppender.replace("class", new AbstractReadOnlyModel<String>() { @Override public String getObject() { return LeagueSelector.this.getMarkupAttributes().getString("class", ""); } })); add(select); select.add(new ListView<Boolean>("leagueGroups", leagueStatesModel) { @Override protected void populateItem(ListItem<Boolean> item) { item.add(AttributeAppender.replace("label", new StringResourceModel("active.${modelObject}", new Model<Serializable>(item)))); List<League> leagueList = Ordering.usingToString() .sortedCopy(allLeaguesModel.getObject().get(item.getModelObject())); item.add(new SelectOptions<League>("leagues", leagueList, new IOptionRenderer<League>() { @Override public String getDisplayValue(League league) { return league.getName(); } @Override public IModel<League> getModel(League league) { return new Model<League>(league); } })); } }); }
From source file:dk.frankbille.scoreboard.components.menu.MenuItemsPanel.java
License:Open Source License
public MenuItemsPanel(String id, IModel<List<MenuItem>> itemsModel, final IModel<MenuItemType> activeMenuItemModel) { super(id, itemsModel); add(new ListView<MenuItem>("menuItems", itemsModel) { private static final long serialVersionUID = 1L; @Override/* w w w . j av a2 s .c om*/ protected void populateItem(final ListItem<MenuItem> listItem) { listItem.add(new AttributeAppender("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { MenuItemType activeMenuType = activeMenuItemModel.getObject(); MenuItemType menuItemType = listItem.getModelObject().getMenuItemType(); return activeMenuType == menuItemType ? "active" : null; } })); final WebMarkupContainer link; final MenuItem menuItem = listItem.getModelObject(); if (menuItem instanceof MenuItemPageLink) { final MenuItemPageLink menuItemLink = (MenuItemPageLink) menuItem; link = new BookmarkablePageLink<Void>("menuLink", menuItemLink.getPageClass(), menuItemLink.getPageParameters()); listItem.add(link); link.add(new Label("menuLabel", menuItemLink.getLabel()).setRenderBodyOnly(true)); link.add(new WebMarkupContainer("downIcon").setVisible(false)); listItem.add(new WebComponent("subMenu").setVisible(false)); } else if (menuItem instanceof MenuItemContainer) { MenuItemContainer menuItemContainer = (MenuItemContainer) menuItem; listItem.add(AttributeModifier.append("class", "dropdown")); link = new WebMarkupContainer("menuLink"); link.setOutputMarkupId(true); link.add(AttributeModifier.replace("href", "#")); link.add(AttributeModifier.replace("class", "dropdown-toggle")); link.add(AttributeModifier.replace("data-toggle", "dropdown")); link.add(AttributeModifier.replace("role", "button")); listItem.add(link); link.add(new Label("menuLabel", menuItemContainer.getLabel()).setRenderBodyOnly(true)); link.add(new WebMarkupContainer("downIcon").setRenderBodyOnly(true)); MenuItemsPanel subMenu = new MenuItemsPanel("subMenu", new PropertyModel<List<MenuItem>>(menuItemContainer, "subMenuItems"), new Model<MenuItemType>()); subMenu.add(AttributeModifier.replace("class", "dropdown-menu")); subMenu.add(AttributeModifier.replace("role", "menu")); subMenu.add(AttributeModifier.replace("aria-labelledby", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { return link.getMarkupId(); } })); listItem.add(subMenu); } else { throw new IllegalStateException("Unknown menuItem type: " + menuItem); } // Icon WebComponent icon = new WebComponent("icon") { private static final long serialVersionUID = 1L; @Override public boolean isVisible() { return menuItem.getIconName() != null; } }; icon.add(AttributeModifier.replace("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { return "icon-" + menuItem.getIconName(); } })); link.add(icon); } }); }
From source file:dk.frankbille.scoreboard.components.NavigationPanel.java
License:Open Source License
public NavigationPanel(String id, final PaginationModel<T> paginationModel) { super(id);/*from w w w . j av a 2 s . c om*/ setOutputMarkupId(true); AjaxLink<Void> previousLink = new AjaxLink<Void>("previousLink") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { pageChanged(target, paginationModel.previousPage()); } @Override public boolean isEnabled() { return paginationModel.isPreviousPossible(); } }; previousLink.add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { if (paginationModel.isPreviousPossible()) { return null; } return "disabled"; } })); add(previousLink); IModel<List<Integer>> pagesModel = new LoadableDetachableModel<List<Integer>>() { private static final long serialVersionUID = 1L; @Override protected List<Integer> load() { List<Integer> pages = new ArrayList<Integer>(); for (int page = 1; page <= paginationModel.getMaxPage(); page++) { pages.add(page); } return pages; } }; add(new ListView<Integer>("pageLinks", pagesModel) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<Integer> item) { AjaxLink<Void> pageLink = new AjaxLink<Void>("pageLink") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { paginationModel.setPage(item.getModelObject()); pageChanged(target, paginationModel.getPage()); } @Override public boolean isEnabled() { return paginationModel.getPage() != item.getModelObject(); } }; pageLink.add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { if (paginationModel.getPage() == item.getModelObject()) { return "btn-primary disabled"; } return null; } })); item.add(pageLink); pageLink.add(new Label("pageLabel", item.getModel())); } }); AjaxLink<Void> nextLink = new AjaxLink<Void>("nextLink") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { pageChanged(target, paginationModel.nextPage()); } @Override public boolean isEnabled() { return paginationModel.isNextPossible(); } }; nextLink.add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { if (paginationModel.isNextPossible()) { return null; } return "disabled"; } })); add(nextLink); }