Example usage for org.apache.wicket.extensions.markup.html.basic SmartLinkLabel SmartLinkLabel

List of usage examples for org.apache.wicket.extensions.markup.html.basic SmartLinkLabel SmartLinkLabel

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.markup.html.basic SmartLinkLabel SmartLinkLabel.

Prototype

public SmartLinkLabel(final String name, final IModel<String> model) 

Source Link

Usage

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);
}