Example usage for org.apache.wicket.markup.repeater OddEvenItem OddEvenItem

List of usage examples for org.apache.wicket.markup.repeater OddEvenItem OddEvenItem

Introduction

In this page you can find the example usage for org.apache.wicket.markup.repeater OddEvenItem OddEvenItem.

Prototype

public OddEvenItem(String id, int index, IModel<T> model) 

Source Link

Document

Constructor

Usage

From source file:an.dpr.manteniket.components.ManteniketDataTable.java

License:Apache License

@Override
protected Item<T> newRowItem(final String id, final int index, final IModel<T> model) {
    return new OddEvenItem<T>(id, index, model);
}

From source file:com.gitblit.wicket.panels.RegistrantPermissionsPanel.java

License:Apache License

public RegistrantPermissionsPanel(String wicketId, RegistrantType registrantType, List<String> allRegistrants,
        final List<RegistrantAccessPermission> permissions, final Map<AccessPermission, String> translations) {
    super(wicketId);
    setOutputMarkupId(true);//w  w w. j  a va 2  s.  c o m

    /*
     * Permission view toggle buttons
     */
    Form<Void> permissionToggleForm = new Form<Void>("permissionToggleForm");
    permissionToggleForm.add(new ShowStateButton("showSpecified", Show.specified));
    permissionToggleForm.add(new ShowStateButton("showMutable", Show.mutable));
    permissionToggleForm.add(new ShowStateButton("showEffective", Show.effective));
    add(permissionToggleForm);

    /*
     * Permission repeating display
     */
    RefreshingView<RegistrantAccessPermission> dataView = new RefreshingView<RegistrantAccessPermission>(
            "permissionRow") {
        private static final long serialVersionUID = 1L;

        @Override
        protected Iterator<IModel<RegistrantAccessPermission>> getItemModels() {
            // the iterator returns RepositoryPermission objects, but we need it to
            // return models
            return new ModelIteratorAdapter<RegistrantAccessPermission>(permissions.iterator()) {
                @Override
                protected IModel<RegistrantAccessPermission> model(RegistrantAccessPermission permission) {
                    return new CompoundPropertyModel<RegistrantAccessPermission>(permission);
                }
            };
        }

        @Override
        protected Item<RegistrantAccessPermission> newItem(String id, int index,
                IModel<RegistrantAccessPermission> model) {
            // this item sets markup class attribute to either 'odd' or
            // 'even' for decoration
            return new OddEvenItem<RegistrantAccessPermission>(id, index, model);
        }

        @Override
        public void populateItem(final Item<RegistrantAccessPermission> item) {
            final RegistrantAccessPermission entry = item.getModelObject();
            if (RegistrantType.REPOSITORY.equals(entry.registrantType)) {
                String repoName = StringUtils.stripDotGit(entry.registrant);
                if (!entry.isMissing() && StringUtils.findInvalidCharacter(repoName) == null) {
                    // repository, strip .git and show swatch
                    Fragment repositoryFragment = new Fragment("registrant", "repositoryRegistrant",
                            RegistrantPermissionsPanel.this);
                    Component swatch = new Label("repositorySwatch", "&nbsp;").setEscapeModelStrings(false);
                    WicketUtils.setCssBackground(swatch, entry.toString());
                    repositoryFragment.add(swatch);
                    Label registrant = new Label("repositoryName", repoName);
                    repositoryFragment.add(registrant);
                    item.add(repositoryFragment);
                } else {
                    // regex or missing
                    Label label = new Label("registrant", entry.registrant);
                    WicketUtils.setCssStyle(label, "font-weight: bold;");
                    item.add(label);
                }
            } else if (RegistrantType.USER.equals(entry.registrantType)) {
                // user
                PersonIdent ident = new PersonIdent(entry.registrant, "");
                UserModel user = app().users().getUserModel(entry.registrant);
                if (user != null) {
                    ident = new PersonIdent(user.getDisplayName(),
                            user.emailAddress == null ? user.getDisplayName() : user.emailAddress);
                }

                Fragment userFragment = new Fragment("registrant", "userRegistrant",
                        RegistrantPermissionsPanel.this);
                userFragment.add(new AvatarImage("userAvatar", ident, 20));
                userFragment.add(new Label("userName", entry.registrant));
                item.add(userFragment);
            } else {
                // team
                Fragment teamFragment = new Fragment("registrant", "teamRegistrant",
                        RegistrantPermissionsPanel.this);
                teamFragment.add(new Label("teamName", entry.registrant));
                item.add(teamFragment);
            }
            switch (entry.permissionType) {
            case ADMINISTRATOR:
                Label administrator = new Label("pType",
                        entry.source == null ? getString("gb.administrator") : entry.source);
                WicketUtils.setHtmlTooltip(administrator, getString("gb.administratorPermission"));
                WicketUtils.setCssClass(administrator, "label label-inverse");
                item.add(administrator);
                break;
            case OWNER:
                Label owner = new Label("pType", getString("gb.owner"));
                WicketUtils.setHtmlTooltip(owner, getString("gb.ownerPermission"));
                WicketUtils.setCssClass(owner, "label label-info");
                item.add(owner);
                break;
            case TEAM:
                Label team = new Label("pType", entry.source == null ? getString("gb.team") : entry.source);
                WicketUtils.setHtmlTooltip(team,
                        MessageFormat.format(getString("gb.teamPermission"), entry.source));
                WicketUtils.setCssClass(team, "label label-success");
                item.add(team);
                break;
            case REGEX:
                Label regex = new Label("pType", "regex");
                if (!StringUtils.isEmpty(entry.source)) {
                    WicketUtils.setHtmlTooltip(regex,
                            MessageFormat.format(getString("gb.regexPermission"), entry.source));
                }
                WicketUtils.setCssClass(regex, "label");
                item.add(regex);
                break;
            default:
                if (entry.isMissing()) {
                    // repository is missing, this permission will be removed on save
                    Label missing = new Label("pType", getString("gb.missing"));
                    WicketUtils.setCssClass(missing, "label label-important");
                    WicketUtils.setHtmlTooltip(missing, getString("gb.missingPermission"));
                    item.add(missing);
                } else {
                    // standard permission
                    item.add(new Label("pType", "").setVisible(false));
                }
                break;
            }

            item.setVisible(activeState.show(entry));

            // use ajax to get immediate update of permission level change
            // otherwise we can lose it if they change levels and then add
            // a new repository permission
            final DropDownChoice<AccessPermission> permissionChoice = new DropDownChoice<AccessPermission>(
                    "permission", Arrays.asList(AccessPermission.values()),
                    new AccessPermissionRenderer(translations));
            // only allow changing an explicitly defined permission
            // this is designed to prevent changing a regex permission in
            // a repository
            permissionChoice.setEnabled(entry.mutable);
            permissionChoice.setOutputMarkupId(true);
            if (entry.mutable) {
                permissionChoice.add(new AjaxFormComponentUpdatingBehavior("change") {

                    private static final long serialVersionUID = 1L;

                    @Override
                    protected void onUpdate(AjaxRequestTarget target) {
                        target.add(permissionChoice);
                    }
                });
            }

            item.add(permissionChoice);
        }
    };
    add(dataView);
    setOutputMarkupId(true);

    // filter out registrants we already have permissions for
    final List<String> registrants = new ArrayList<String>(allRegistrants);
    for (RegistrantAccessPermission rp : permissions) {
        if (rp.mutable) {
            // remove editable duplicates
            // this allows for specifying an explicit permission
            registrants.remove(rp.registrant);
        } else if (rp.isAdmin()) {
            // administrators can not have their permission changed
            registrants.remove(rp.registrant);
        } else if (rp.isOwner()) {
            // owners can not have their permission changed
            registrants.remove(rp.registrant);
        }
    }

    /*
     * Add permission form
     */
    IModel<RegistrantAccessPermission> addPermissionModel = new CompoundPropertyModel<RegistrantAccessPermission>(
            new RegistrantAccessPermission(registrantType));
    Form<RegistrantAccessPermission> addPermissionForm = new Form<RegistrantAccessPermission>(
            "addPermissionForm", addPermissionModel);
    addPermissionForm.add(new DropDownChoice<String>("registrant", registrants));
    addPermissionForm.add(new DropDownChoice<AccessPermission>("permission",
            Arrays.asList(AccessPermission.NEWPERMISSIONS), new AccessPermissionRenderer(translations)));
    AjaxButton button = new AjaxButton("addPermissionButton", addPermissionForm) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            // add permission to our list
            RegistrantAccessPermission rp = (RegistrantAccessPermission) getForm().getModel().getObject();
            if (rp.permission == null) {
                return;
            }
            if (rp.registrant == null) {
                return;
            }
            RegistrantAccessPermission copy = DeepCopier.copy(rp);
            if (StringUtils.findInvalidCharacter(copy.registrant) != null) {
                copy.permissionType = PermissionType.REGEX;
                copy.source = copy.registrant;
            }
            permissions.add(copy);

            // resort permissions after insert to convey idea of eval order
            Collections.sort(permissions);

            // remove registrant from available choices
            registrants.remove(rp.registrant);

            // force the panel to refresh
            target.add(RegistrantPermissionsPanel.this);
        }
    };
    addPermissionForm.add(button);

    // only show add permission form if we have a registrant choice
    add(addPermissionForm.setVisible(registrants.size() > 0));
}

From source file:com.googlecode.wicketwebbeans.containers.BeanDataTable.java

License:Apache License

/**
 *
 * @param id//from   w  ww.  j  a  va 2  s.c  o m
 * @param index
 * @param model
 * @return
 */
protected Item<T> newRowItem(String id, int index, IModel<T> model) {
    Item<T> item = new OddEvenItem<T>(id, index, model);
    beanMetaData.applyCss(model.getObject(), beanMetaData, item);
    return item;
}

From source file:com.zh.snmp.snmpweb.components.ZhDataDable.java

License:Open Source License

@Override
protected Item<T> newRowItem(String id, int index, IModel<T> model) {
    return new OddEvenItem<T>(id, index, model);
}

From source file:de.alpharogroup.wicket.data.provider.examples.refreshingview.RefreshingViewPanel.java

License:Apache License

public RefreshingViewPanel(final String id, final IModel<?> model) {
    super(id, model);

    form = new Form<Person>("form");
    add(form);/*from  w  w w .j  a va  2  s. c om*/

    // create a repeater that will display the list of contacts.
    final RefreshingView<Person> refreshingView = new RefreshingView<Person>("simple") {
        /**
         * The serialVersionUID.
         */
        private static final long serialVersionUID = 1L;

        @Override
        protected Iterator<IModel<Person>> getItemModels() {
            // for simplicity we only show the first 10 contacts
            // SortParam<String> sort = new SortParam<String>("firstname",
            // true);
            final Iterator<Person> contacts = PersonDatabaseManager.getInstance().getPersons().iterator();

            // the iterator returns contact objects, but we need it to
            // return models, we use this handy adapter class to perform
            // on-the-fly conversion.
            return new ModelIteratorAdapter<Person>(contacts) {
                @Override
                protected IModel<Person> model(final Person object) {
                    return new CompoundPropertyModel<Person>(object);
                }
            };
        }

        @Override
        protected Item<Person> newItem(final String id, final int index, final IModel<Person> model) {
            // this item sets markup class attribute to either 'odd' or
            // 'even' for decoration
            return new OddEvenItem<Person>(id, index, model);
        }

        @Override
        protected void populateItem(final Item<Person> item) {
            // populate the row of the repeater
            final IModel<Person> contact = item.getModel();
            item.add(new ActionPanel("actions", contact));
            item.add(new TextField<String>("firstname"));
            item.add(new TextField<String>("lastname"));
        }
    };

    // because we are in a form we need to preserve state of the component
    // hierarchy (because it might contain things like form errors that
    // would be lost if the hierarchy for each item was recreated every
    // request by default), so we use an item reuse strategy.
    refreshingView.setItemReuseStrategy(ReuseIfModelsEqualStrategy.getInstance());

    form.add(refreshingView);
}

From source file:net.rrm.ehour.ui.admin.audit.AuditReportDataPanel.java

License:Open Source License

/**
 * @param model/*  ww w  .  ja v a  2s .  c o m*/
 * @return
 */
@SuppressWarnings("unchecked")
private WebMarkupContainer getPagingDataView(IModel<ReportCriteria> model) {
    final WebMarkupContainer dataContainer = new WebMarkupContainer("dataContainer");
    dataContainer.setOutputMarkupId(true);
    final EhourConfig config = EhourWebSession.getEhourConfig();

    List<IColumn<Audit, Date>> columns = new ArrayList<>();
    columns.add(new DateColumn(new ResourceModel("audit.report.column.date"), config));
    columns.add(
            new PropertyColumn<Audit, Date>(new ResourceModel("audit.report.column.lastName"), "userFullName"));
    columns.add(new PropertyColumn<Audit, Date>(new ResourceModel("audit.report.column.action"), "action"));
    columns.add(new PropertyColumn<Audit, Date>(new ResourceModel("audit.report.column.type"),
            "auditActionType.value"));

    AuditReportDataProvider dataProvider = new AuditReportDataProvider(getReportRequest(model));
    DataTable<Audit, Date> table = new DataTable<Audit, Date>("data", columns, dataProvider, 20) {
        @Override
        protected Item<Audit> newRowItem(String id, int index, IModel<Audit> model) {
            return new OddEvenItem<>(id, index, model);
        }
    };

    table.setOutputMarkupId(true);

    dataContainer.add(table);
    table.addTopToolbar(new AjaxFallbackHeadersToolbar(table, dataProvider));

    dataContainer.add(new HoverPagingNavigator("navigator", table));

    return dataContainer;
}

From source file:net.tirasa.hct.editor.widgets.AdminDataTable.java

License:Apache License

@Override
protected Item newRowItem(final String id, final int index, final IModel model) {
    return new OddEvenItem(id, index, model);
}

From source file:nl.mpi.lamus.web.components.UnlinkedNodesPanel.java

License:Open Source License

private AbstractTree<WorkspaceTreeNode> createTree(String id, UnlinkedNodesModelProvider provider,
        IModel<Set<WorkspaceTreeNode>> state) {

    List<IColumn<WorkspaceTreeNode, String>> columns = createColumns();

    final TableTree<WorkspaceTreeNode, String> tree = new DefaultTableTree<WorkspaceTreeNode, String>(id,
            columns, provider, Integer.MAX_VALUE, state) {

        @Override/*from w  ww.ja  v  a  2  s . co  m*/
        protected Component newContentComponent(String id, IModel<WorkspaceTreeNode> model) {

            if (model.getObject().getParent() != null) {
                return new Folder<>(id, unlinkedNodesTree, model);
            } else {
                return new CheckedFolder<WorkspaceTreeNode>(id, unlinkedNodesTree, model) {

                    private static final long serialVersionUID = 1L;

                    @Override
                    protected IModel<Boolean> newCheckBoxModel(final IModel<WorkspaceTreeNode> model) {

                        return new IModel<Boolean>() {
                            private static final long serialVersionUID = 1L;

                            @Override
                            public Boolean getObject() {
                                return isChecked(model.getObject());
                            }

                            @Override
                            public void setObject(Boolean object) {
                                check(model.getObject(), object);
                            }

                            @Override
                            public void detach() {
                            }
                        };
                    }
                };
            }
        }

        @Override
        protected Item<WorkspaceTreeNode> newRowItem(String id, int index, IModel<WorkspaceTreeNode> model) {
            return new OddEvenItem<>(id, index, model);
        }
    };

    return tree;
}

From source file:nl.mpi.lamus.web.pages.management.ManageWorkspacesPage.java

License:Open Source License

private DataTable<Workspace, String> createDataTable(List<IColumn<Workspace, String>> columns,
        SortableWorkspaceDataProvider provider) {

    DataTable<Workspace, String> dataTable = new AjaxFallbackDefaultDataTable<Workspace, String>("table",
            columns, provider, 13) {// w w  w .j av  a  2  s. co  m

        @Override
        protected Item<Workspace> newRowItem(String id, int index, IModel<Workspace> model) {
            return new OddEvenItem<>(id, index, model);
        }
    };
    dataTable.setOutputMarkupId(true);

    return dataTable;
}

From source file:org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.IsisAjaxFallbackDataTable.java

License:Apache License

@Override
protected Item<T> newRowItem(final String id, final int index, final IModel<T> model) {
    return new OddEvenItem<T>(id, index, model) {
        @Override/*ww w. j a  v  a  2  s .  co m*/
        protected void onComponentTag(ComponentTag tag) {
            super.onComponentTag(tag);

            if (model instanceof EntityModel) {
                EntityModel entityModel = (EntityModel) model;
                final ObjectAdapter objectAdapter = entityModel.getObject();
                final ObjectSpecification typeOfSpecification = entityModel.getTypeOfSpecification();
                String cssClass = typeOfSpecification.getCssClass(objectAdapter);
                CssClassAppender.appendCssClassTo(tag, cssClass);
            }
        }
    };
}