List of usage examples for org.apache.wicket.extensions.markup.html.basic SmartLinkLabel SmartLinkLabel
public SmartLinkLabel(final String name, final IModel<String> model)
From source file:it.av.youeat.web.page.IndexRistoPage.java
License:Apache License
public IndexRistoPage(PageParameters pageParameters) { super();/*w w w.jav a 2s. co m*/ appendToPageTile(" Index :: "); if (pageParameters.getNamedKeys().contains(YoueatHttpParams.COUNTRY_ID)) { countrySelected = countryService.getByID(pageParameters.get(YoueatHttpParams.COUNTRY_ID).toString()); appendToPageTile(" " + countrySelected.getName()); } if (pageParameters.getNamedKeys().contains(YoueatHttpParams.CITY_FL) && pageParameters.getNamedKeys().contains(YoueatHttpParams.COUNTRY_ID)) { cityFirstLetterSelected = pageParameters.get(YoueatHttpParams.CITY_FL).toString(""); countrySelected = countryService.getByID(pageParameters.get(YoueatHttpParams.COUNTRY_ID).toString()); appendToPageTile(" " + countrySelected.getName()); } if (pageParameters.getNamedKeys().contains(YoueatHttpParams.CITY_ID) && StringUtils.isNotBlank(pageParameters.get(YoueatHttpParams.CITY_ID).toString())) { citySelected = cityService.getByID(pageParameters.get(YoueatHttpParams.CITY_ID).toString()); countrySelected = citySelected.getCountry(); appendToPageTile(" " + countrySelected.getName() + " -> " + citySelected.getName()); } if (pageParameters.getNamedKeys().contains(YoueatHttpParams.PAGE)) { pageSelected = pageParameters.get(YoueatHttpParams.PAGE).toInt(); } add(new Label("instructions", new LoadableDetachableModel<String>() { @Override protected String load() { if (countrySelected == null) { return getString("indexPage.chooseCountry"); } else if (citySelected == null) { return getString("indexPage.chooseCity"); } else { return ""; } } }).setOutputMarkupId(true)); add(getFeedbackPanel()); WebMarkupContainer countriesContainer = new WebMarkupContainer("countryListContainer"); countriesContainer.setOutputMarkupId(true); add(countriesContainer); PropertyListView<Country> countryListView = new PropertyListView<Country>("countryList", new CountriesModel()) { @Override protected void populateItem(ListItem<Country> item) { BookmarkablePageLink<Country> link = new BookmarkablePageLink<Country>("country", IndexRistoPage.class, new PageParameters(YoueatHttpParams.COUNTRY_ID + "=" + item.getModelObject().getId())); link.add(new Label("countryTitle", item.getModelObject().getName())); if (item.getModelObject().equals(countrySelected)) { link.add(new SimpleAttributeModifier("class", "cityOrCountrySelected")); } item.add(link); } }; countriesContainer.add(countryListView); WebMarkupContainer cityContainer = new WebMarkupContainer("cityListContainer"); cityContainer.setOutputMarkupId(true); add(cityContainer); PropertyListView<String> cityListAZView = new PropertyListView<String>("cityListAZ", new CitiesAZModel()) { @Override protected void populateItem(ListItem<String> item) { // IF not logged user, use params, better for search engigne BookmarkablePageLink<Country> link = new BookmarkablePageLink<Country>("city", IndexRistoPage.class, new PageParameters(YoueatHttpParams.CITY_FL + "=" + item.getModelObject() + "," + YoueatHttpParams.COUNTRY_ID + "=" + ((countrySelected != null) ? countrySelected.getId() : ""))); if (item.getModelObject().equals(cityFirstLetterSelected)) { link.add(new SimpleAttributeModifier("class", "cityOrCountrySelected")); } link.add(new Label("cityFirstLetter", item.getModelObject())); item.add(link); } }; cityContainer.add(cityListAZView); PageableListView<City> listview = new PageableListView<City>("cityList", new CitiesModel(), citiesPerPage) { @Override protected void populateItem(ListItem<City> item) { // IF not logged user, use params, better for search engigne BookmarkablePageLink<Country> link = new BookmarkablePageLink<Country>("city", IndexRistoPage.class, new PageParameters(YoueatHttpParams.CITY_ID + "=" + item.getModelObject().getId() + "," + YoueatHttpParams.CITY_FL + "=" + cityFirstLetterSelected)); if (item.getModelObject().equals(citySelected)) { link.add(new SimpleAttributeModifier("class", "cityOrCountrySelected")); } link.add(new Label("cityTitle", item.getModelObject().getName())); item.add(link); } }; cityContainer.add(listview); cityContainer.add(new PagingNavigator("navigator", listview) { @Override protected AbstractLink newPagingNavigationIncrementLink(String id, IPageable pageable, int increment) { // TODO Auto-generated method stub return super.newPagingNavigationIncrementLink(id, pageable, increment); } @Override protected AbstractLink newPagingNavigationLink(String id, IPageable pageable, int pageNumber) { super.newPagingNavigationLink(id, pageable, pageNumber); return new BookmarkablePageLink<Country>(id, IndexRistoPage.class, new PageParameters(YoueatHttpParams.CITY_FL + "=" + cityFirstLetterSelected + "," + YoueatHttpParams.COUNTRY_ID + "=" + ((countrySelected != null) ? countrySelected.getId() : ""))); } }); cityContainer.setVersioned(false); WebMarkupContainer ristoContainer = new WebMarkupContainer("ristoListContainer"); ristoContainer.setOutputMarkupId(true); add(ristoContainer); PropertyListView<Ristorante> ristoListView = new PropertyListView<Ristorante>("ristoList", new RistoModel()) { @Override protected void populateItem(ListItem<Ristorante> item) { BookmarkablePageLink link = new BookmarkablePageLink("risto", RistoranteViewPage.class, RistoranteUtil.createParamsForRisto(item.getModelObject())); link.add(new Label("ristoTitle", item.getModelObject().getName())); item.add(link); item.add(new Label("ristoAddress", item.getModelObject().getAddress())); item.add(new Label("ristoPhoneNumber", item.getModelObject().getPhoneNumber() != null ? item.getModelObject().getPhoneNumber() : "")); item.add(new Label("ristoMobilePhoneNumber", item.getModelObject().getMobilePhoneNumber() != null ? item.getModelObject().getMobilePhoneNumber() : "")); item.add(new SmartLinkLabel("ristoWWW", item.getModelObject().getWww() != null ? item.getModelObject().getWww() : "")); item.add(new Label("ristoCity", item.getModelObject().getCity().getName())); item.add( ImageRisto.getRandomThumbnailImage("picture", item.getModelObject(), this.getPage(), true)); } }; ristoContainer.add(ristoListView); }
From source file:org.artifactory.webapp.wicket.page.security.acl.PermissionTargetCreateUpdatePanel.java
License:Open Source License
public SortableTable getPermissionsTable(final boolean isGroup) { List<IColumn<AceInfoRow>> columns = Lists.newArrayList(); columns.add(new PropertyColumn<AceInfoRow>(Model.of("Principal"), "principal", "principal") { @Override/*from w w w . jav a2s.co m*/ public void populateItem(Item<ICellPopulator<AceInfoRow>> item, String componentId, IModel<AceInfoRow> model) { //If the item is an anonymous user and the access is disabled, warn String username = model.getObject().getPrincipal(); if (UserInfo.ANONYMOUS.equals(username) && !authService.isAnonAccessEnabled()) { CharSequence pageUrl = urlFor(SecurityGeneralConfigPage.class, new PageParameters()); StringBuilder usernameLabelBuilder = new StringBuilder(username).append(" ("); if (authService.isAdmin()) { usernameLabelBuilder.append("<a href=\"").append(pageUrl).append("\">"); } usernameLabelBuilder.append("disabled"); if (authService.isAdmin()) { usernameLabelBuilder.append("</a>"); } usernameLabelBuilder.append(")"); item.add(new SmartLinkLabel(componentId, usernameLabelBuilder.toString()) .setEscapeModelStrings(false)); } else { super.populateItem(item, componentId, model); } if (isGroup) { item.add(new CssClass("group")); } else { item.add(new CssClass("user")); } } }); columns.add(new RoleCheckboxColumn("Manage", "manage") { @Override protected void onUpdate(FormComponent checkbox, AceInfoRow row, boolean value, AjaxRequestTarget target) { super.onUpdate(checkbox, row, value, target); if (sanityCheckAdmin() && isEnabled(row)) { row.setManage(value); onCheckboxUpdate(checkbox, target); } } @Override protected boolean isEnabled(AceInfoRow row) { if (!super.isEnabled(row)) { return false; } String currentUsername = authService.currentUsername(); String username = row.getPrincipal(); //Do not allow admin user to change (revoke) his admin bit return !username.equals(currentUsername); } }); columns.add(new RoleCheckboxColumn("Delete", "delete") { @Override protected void onUpdate(FormComponent checkbox, AceInfoRow row, boolean value, AjaxRequestTarget target) { super.onUpdate(checkbox, row, value, target); if (sanityCheckAdmin()) { row.setDelete(value); AccessLogger.deleted("Permission target" + row.getPrincipal() + " was successfully deleted"); onCheckboxUpdate(checkbox, target); } } }); columns.add(new RoleCheckboxColumn("Deploy", "deploy") { @Override protected void onUpdate(FormComponent checkbox, AceInfoRow row, boolean value, AjaxRequestTarget target) { super.onUpdate(checkbox, row, value, target); if (sanityCheckAdmin()) { row.setDeploy(value); onCheckboxUpdate(checkbox, target); } } }); columns.add(new RoleCheckboxColumn("Annotate", "annotate") { @Override protected void onUpdate(FormComponent checkbox, AceInfoRow row, boolean value, AjaxRequestTarget target) { super.onUpdate(checkbox, row, value, target); if (sanityCheckAdmin()) { row.setAnnotate(value); onCheckboxUpdate(checkbox, target); } } }); columns.add(new RoleCheckboxColumn("Read", "read") { @Override protected void onUpdate(FormComponent checkbox, AceInfoRow row, boolean value, AjaxRequestTarget target) { super.onUpdate(checkbox, row, value, target); if (sanityCheckAdmin()) { row.setRead(value); onCheckboxUpdate(checkbox, target); } } }); PermissionTargetAceInfoRowDataProvider dataProvider = isGroup ? groupsDataProvider : usersDataProvider; SortableTable table = new SortableTable<>("recipients", columns, dataProvider, 15); //Recipients header Label recipientsHeader = new Label("recipientsHeader"); recipientsHeader.setDefaultModel(Model.of("Permissions for \"" + permissionTarget.getName() + "\"")); return table; }
From source file:org.artifactory.webapp.wicket.page.security.user.column.UsernamePanel.java
License:Open Source License
public UsernamePanel(String id, IModel<UserModel> model) { super(id);//from ww w. j a v a 2 s . co m add(new AttributeModifier("class", "UserColumn")); final UserModel userModel = model.getObject(); final String username = userModel.getUsername(); if (UserInfo.ANONYMOUS.equals(username) && !authorizationService.isAnonAccessEnabled()) { CharSequence pageUrl = getRequestCycle().urlFor(SecurityGeneralConfigPage.class, new PageParameters()); add(new SmartLinkLabel("username", username + " (<a href=\"" + pageUrl + "\">disabled</a>)") .setEscapeModelStrings(false)); } else { add(new Label("username", username)); } Set<UserGroupInfo> userGroups = userModel.getGroups(); DeletableLabelGroup<UserGroupInfo> groups = new DeletableLabelGroup<UserGroupInfo>("groups", userGroups) { @Override public void onDelete(UserGroupInfo value, AjaxRequestTarget target) { super.onDelete(value, target); //Save the group changes on each delete userGroupService.removeUsersFromGroup(value.getGroupName(), Lists.newArrayList(username)); userModel.removeGroup(value); } }; // set the final merged set of groups to the user model. userModel.addGroups(userGroups); groups.setItemsPerPage(3); groups.setLabelClickable(false); groups.setLabelDeletable(false); add(groups); }
From source file:org.hippoecm.frontend.plugins.cms.admin.users.ListUsersPanel.java
License:Apache License
/** * Constructs a new ListUsersPanel./*from w w w .j a va2 s. c o m*/ * * @param id the id * @param context the context * @param breadCrumbModel the breadCrumbModel * @param userDataProvider the userDataProvider */ public ListUsersPanel(final String id, final IPluginContext context, final IPluginConfig config, final IBreadCrumbModel breadCrumbModel, final UserDataProvider userDataProvider) { super(id, breadCrumbModel); setOutputMarkupId(true); this.config = config; this.context = context; this.userDataProvider = userDataProvider; final PanelPluginBreadCrumbLink createUserLink = new PanelPluginBreadCrumbLink("create-user-link", breadCrumbModel) { @Override protected IBreadCrumbParticipant getParticipant(final String componentId) { return new CreateUserPanel(componentId, breadCrumbModel, context, config); } @Override public boolean isVisible() { return isUserCreationEnabled(); } }; final WebMarkupContainer createButtonContainer = new WebMarkupContainer("create-user-button-container") { @Override public boolean isVisible() { return isUserCreationEnabled(); } }; createButtonContainer.add(createUserLink); add(createButtonContainer); final List<IColumn> columns = new ArrayList<>(); columns.add(new AbstractColumn<User, String>(new ResourceModel("user-username"), "username") { @Override public void populateItem(final Item<ICellPopulator<User>> cellItem, final String componentId, final IModel<User> rowModel) { cellItem.add(new ViewUserLinkLabel(componentId, rowModel, ListUsersPanel.this, context)); } }); columns.add(new PropertyColumn<>(new ResourceModel("user-firstname"), "frontend:firstname", "firstName")); columns.add(new PropertyColumn<>(new ResourceModel("user-lastname"), "frontend:lastname", "lastName")); columns.add(new AbstractColumn(new ResourceModel("user-email")) { @Override public void populateItem(final Item cellItem, final String componentId, final IModel rowModel) { cellItem.add(new SmartLinkLabel(componentId, new PropertyModel<>(rowModel, "email"))); } }); columns.add(new AbstractColumn<User, String>(new ResourceModel("user-group")) { @Override public void populateItem(final Item<ICellPopulator<User>> cellItem, final String componentId, final IModel<User> rowModel) { final User user = rowModel.getObject(); final List<Group> groups = user.getLocalMembershipsAsListOfGroups(true); final GroupsLinkListPanel groupsLinkListPanel = new GroupsLinkListPanel(componentId, groups, context, ListUsersPanel.this); cellItem.add(groupsLinkListPanel); } }); columns.add(new AbstractColumn<User, String>(new ResourceModel("user-type")) { @Override public void populateItem(final Item<ICellPopulator<User>> cellItem, final String componentId, final IModel<User> rowModel) { final User user = rowModel.getObject(); if (user.isExternal()) { cellItem.add(new Label(componentId, new ResourceModel("user-type-external"))); } else { cellItem.add(new Label(componentId, new ResourceModel("user-type-repository"))); } } }); columns.add(new AbstractColumn<User, String>(new ResourceModel("user-view-actions-title")) { @Override public void populateItem(final Item<ICellPopulator<User>> cellItem, final String componentId, final IModel<User> rowModel) { cellItem.add( new DeleteUserActionLink(componentId, new ResourceModel("user-remove-action"), rowModel)); } }); final Form form = new Form("search-form"); form.setOutputMarkupId(true); add(form); final TextField<String> search = new TextField<>("search-query", new PropertyModel<String>(userDataProvider, "searchTerm")); search.add(StringValidator.minimumLength(1)); search.setRequired(false); search.add(new DefaultFocusBehavior()); form.add(search); form.add(new AjaxButton("search-button", form) { @Override protected void onSubmit(final AjaxRequestTarget target, final Form form) { target.add(table); } }); table = new AdminDataTable("table", columns, userDataProvider, NUMBER_OF_ITEMS_PER_PAGE); table.setOutputMarkupId(true); add(table); }