List of usage examples for org.apache.wicket.markup.repeater OddEvenItem OddEvenItem
public OddEvenItem(String id, int index, IModel<T> model)
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", " ").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); } } }; }