List of usage examples for org.apache.wicket.markup.repeater RefreshingView RefreshingView
public RefreshingView(String id)
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);/*from w w w . j a v a 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.userweave.module.methoden.iconunderstandability.page.survey.IconMatchingTestUI.java
License:Open Source License
private Component createImagesView() { return new RefreshingView("img_content") { @Override/*from www .j a v a 2 s . com*/ protected Iterator getItemModels() { return new ModelIteratorAdapter(imagesV.iterator()) { @Override protected IModel model(Object object) { return new CompoundPropertyModel(object); } }; } @Override protected void populateItem(Item item) { final ITMImage image = (ITMImage) item.getModel().getObject(); WebMarkupContainer imageContainer = new WebMarkupContainer("tileCenterPart"); Dimension d = getConfiguration().getDimiensionOfIcons(); imageContainer.add(new AttributeAppender("style", new Model<String>("width:" + d.width + "px;" + "height:" + d.height + "px"), ";")); item.add(imageContainer); imageContainer.add(ImageResource.createImage("image", image)); // componentId == index // componentId wird bei matching an ajax callback bertragen item.add(new AttributeModifier(IMAGE_ID_PARAMETER, new Model<Integer>(item.getIndex()))); } }; }
From source file:com.userweave.module.methoden.iconunderstandability.page.survey.IconMatchingTestUI.java
License:Open Source License
private void addTermsView() { terms = getConfiguration().getTerms(); termsV = new ArrayList<ItmTerm>(); initTermsV();/*from w w w . j a v a2 s. c o m*/ RefreshingView rv; add(rv = new RefreshingView("term_content") { @Override protected Iterator getItemModels() { return new ModelIteratorAdapter(termsV.iterator()) { @Override protected IModel model(Object object) { return new CompoundPropertyModel(object); } }; } @Override protected void populateItem(Item item) { final String termValue = LocalizationUtils.getValue(getTermValue(item)); DropComponent dropComponent = new DropComponent("drop_component"); dropComponent.add(new AttributeAppender("style", new Model("width:" + Integer.toString(TILE_WIDTH + 4) + "px;"), " ")); dropComponent.add(new WebMarkupContainer("dropFieldCenter") { { add(new AttributeAppender("style", new Model("height:" + Integer.toString(TILE_HEIGHT - 13 - 6) + "px;"), " ")); } }); item.add(dropComponent); AbstractDefaultAjaxBehavior dropCallbackBehavior = new AbstractDefaultAjaxBehavior() { @Override protected void respond(AjaxRequestTarget target) { IRequestParameters parameters = RequestCycle.get().getRequest().getRequestParameters(); // ValueMap parameterMap = // new ValueMap(RequestCycle.get().getRequest().getParameterMap()); Iterator<String> i = parameters.getParameterNames().iterator(); boolean found = false; while (i.hasNext()) { if (i.next().equals(IMAGE_ID_PARAMETER)) { int imageIndex = parameters.getParameterValue(IMAGE_ID_PARAMETER).toInt(); if (imageIndex != -1) { ITMImage image = imagesV.get(imageIndex); String imageId = image.getId().toString(); matchingResult.put(termValue, imageId); } else { matchingResult.remove(termValue); } found = true; break; } } if (!found) { matchingResult.remove(termValue); } getSurveyStepTimer().setEndTimeNow(); } }; dropComponent.add(dropCallbackBehavior); String dropComponentId = createId(item.getIndex()); dropComponent.add(new AttributeModifier(DROP_COMPONENT_ID_PARAMETER, new Model(dropComponentId))); // um js-callbacks pro behaviour und dispatch anhand componentId zu erzeugen id2Behaviour.put(dropComponentId, dropCallbackBehavior); WebMarkupContainer wmc; item.add(wmc = new WebMarkupContainer("table_content") { { add(new AttributeAppender("style", new Model<String>("height:" + Integer.toString(TILE_HEIGHT - 2 - 6) + "px;"), " ")); } }); wmc.add(new Label("text", termValue)); item.add(new WebMarkupContainer("drop_end_center") { { add(new AttributeAppender("style", new Model<String>("height:" + Integer.toString(TILE_HEIGHT - 8 - 6) + "px;"), " ")); } }); } private LocalizedString getTermValue(Item item) { return ((ItmTerm) item.getModel().getObject()).getValue(); } }); }
From source file:com.visural.stereotyped.ui.admin.MainAdminPage.java
License:Mozilla Public License
public MainAdminPage(PageParameters params) { super(params); add(new UserAccountListPanel("users")); add(new UserGroupListPanel("groups")); add(new FeedbackPanel("feedback")); RefreshingView<ComponentLibrary> libList = new RefreshingView<ComponentLibrary>("libRow") { @Override//from ww w. j a v a 2 s .c om protected Iterator<IModel<ComponentLibrary>> getItemModels() { return WrapCollectionToModelCollection.get(service.listAllLibraries()).iterator(); } @Override protected void populateItem(Item<ComponentLibrary> item) { ComponentLibrary cl = item.getModelObject(); item.add( new Label("libDesc", cl.getJarName() + "<br/>(" + cl.getComponents().size() + " components, " + cl.getTemplate().keySet().size() + " resources)") .setEscapeModelStrings(false)); item.add(new BookmarkablePageLink("libOpen", ComponentEditor.class, new PageParameters(StdParam.LOAD_ID + "=" + cl.getJarName()))); } }; add(libList); }
From source file:com.visural.stereotyped.ui.LandingPage.java
License:Mozilla Public License
public LandingPage(PageParameters params) { super(params); stereotypes = service.getStereotypes(); add(new FeedbackPanel("feedback")); IModel<UUID> selectedModel = new IModel<UUID>() { public UUID getObject() { if (selected != null && service.read(selected) != null) { return selected; } else { return null; }/*from ww w . j a va 2s .co m*/ } public void setObject(UUID object) { selected = object; } public void detach() { } }; final StereotypeManagePanel manage = new StereotypeManagePanel("recordDetails", selectedModel); add(manage); add(new StereotypeListPanel("recentlySaved", new Model("Recently Saved Files"), new AbstractReadOnlyModel<List<UUID>>() { @Override public List<UUID> getObject() { return userService.getUser(userService.getCurrentUser()).getUserLists() .get(UserListType.RECENTLY_SAVED); } }, manage)); add(new StereotypeListPanel("recentlyViewed", new Model("Recently Viewed Files"), new AbstractReadOnlyModel<List<UUID>>() { @Override public List<UUID> getObject() { return userService.getUser(userService.getCurrentUser()).getUserLists() .get(UserListType.RECENTLY_VIEWED); } }, manage)); add(new NewForm("newForm")); add(ignoreForm = new IgnoreForm("ignoreForm")); tagWrap = new WebMarkupContainer("tagWrap"); tagWrap.setOutputMarkupId(true); add(tagWrap); final RefreshingView<String> tags = new RefreshingView<String>("tag") { @Override protected Iterator<IModel<String>> getItemModels() { List<String> tags = new ArrayList<String>(); tags.addAll(service.listAllByTag(sessionService.getSessionBean().isShowFilesFromOtherUsers(), sessionService.getSessionBean().isShowArchived()).keySet()); Collections.sort(tags); return WrapCollectionToModelCollection.get(tags).iterator(); } @Override protected void populateItem(Item<String> item) { final String tag = item.getModelObject(); final boolean isIgnored = Sets .newHashSet(sessionService.getSessionBean().getIgnoreTags().split(" ")).contains(tag); item.setOutputMarkupId(true); item.add(new AjaxLink("title") { @Override public void onClick(AjaxRequestTarget target) { Set<String> tags = Sets .newHashSet(sessionService.getSessionBean().getIgnoreTags().split(" ")); if (isIgnored) { tags.remove(tag); } else { tags.add(tag); } sessionService.getSessionBean().setIgnoreTags(StringUtil.delimitObjectsToString(" ", tags)); target.addComponent(tagWrap); } @Override protected void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) { replaceComponentTagBody(markupStream, openTag, tag); } }); RefreshingView<UUID> loadList = new RefreshingView<UUID>("itemRow") { @Override protected Iterator<IModel<UUID>> getItemModels() { List<UUID> items = new ArrayList<UUID>(); items.addAll( service.listAllByTag(sessionService.getSessionBean().isShowFilesFromOtherUsers(), sessionService.getSessionBean().isShowArchived()).get(tag)); Collections.sort(items, new Comparator<UUID>() { public int compare(UUID o1, UUID o2) { return service.read(o1).getName().compareTo(service.read(o2).getName()); } }); return WrapCollectionToModelCollection.get(items).iterator(); } @Override protected void populateItem(final Item<UUID> item) { item.setOutputMarkupId(true); Stereotype st = service.read(item.getModelObject()); final String stName = st.getName(); final AjaxLink desc = new AjaxLink("itemOpen") { @Override public void onClick(AjaxRequestTarget target) { manage.select(target, item.getModelObject()); } }; desc.add(new Image("icon", new IconReference(Icon.PROPERTIES))); item.add(desc); StereotypeUIMetaData meta = service.readUIMeta(item.getModelObject()); String userDesc = meta.getOwner() .equals(sessionService.getSessionBean().getLoggedInUsername()) ? "" : "(" + meta.getOwner() + ")"; item.add(new Label("userDesc", userDesc)); WebMarkupContainer previewButton; if (service.read(item.getModelObject()).getPreviewStates().isEmpty()) { previewButton = new WebMarkupContainer("preview"); previewButton.add(new SimpleAttributeModifier("href", "preview/" + StringUtil.urlEncode(item.getModelObject().toString()) + "/")); item.add(previewButton); } else { item.add(previewButton = new AjaxLink("preview") { @Override public void onClick(AjaxRequestTarget target) { previewStateDialog.open(target, item.getModelObject()); } }); } previewButton.add(new Image("icon", new IconReference(Icon.PREVIEW))); item.add(new BookmarkablePageLink("itemDesc", PrototypeEditor.class, new PageParameters(StdParam.LOAD_ID + "=" + item.getModelObject())) { @Override protected void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) { replaceComponentTagBody(markupStream, openTag, StringUtil.htmlEscape(stName)); } }); } }; if (!isIgnored) { item.add(loadList); } else { item.add(new WebMarkupContainer("itemRow").setVisible(false)); } } }; tagWrap.add(tags); add(previewStateDialog = new PreviewStatePreviewDialog("previewStateDialog")); }
From source file:com.visural.stereotyped.ui.PreviewStatePreviewDialog.java
License:Mozilla Public License
public PreviewStatePreviewDialog(String id) { super(id);/*from w w w. j av a2 s . co m*/ previewStateDialog = new Dialog("previewStateDialog"); add(previewStateDialog); previewStateDialog.setOutputMarkupId(true); previewStateDialog.add(new WebMarkupContainer("default") { @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); tag.put("href", preview != null ? "preview/" + preview.toString() + "/" : "#"); tag.put("target", preview != null ? preview.toString() : ""); } }); previewStateDialog.add(new RefreshingView<PreviewState>("previewStates") { @Override protected Iterator<IModel<PreviewState>> getItemModels() { return WrapCollectionToModelCollection .get(preview != null ? service.read(preview).getPreviewStates() : new ArrayList()) .iterator(); } @Override protected void populateItem(Item<PreviewState> item) { item.add(new WebMarkupContainer("previewState") .add(new Label("previewStateName", item.getModelObject().getName())) .add(new SimpleAttributeModifier("href", "preview/" + preview.toString() + "/?state=" + StringUtil.urlEncode(item.getModelObject().getName()))) .add(new SimpleAttributeModifier("target", preview.toString()))); } }); previewStateDialog.add(new WebMarkupContainer("cancel").add(previewStateDialog.getClickToCloseBehaviour())); }
From source file:com.visural.stereotyped.ui.StereotypeManagePanel.java
License:Mozilla Public License
public StereotypeManagePanel(String id, IModel<UUID> st) { super(id);/*from w w w . j a v a 2s . c o m*/ this.stereotype = st; setOutputMarkupId(true); WebMarkupContainer wrap = new WebMarkupContainer("wrap") { @Override public boolean isVisible() { return stereotype.getObject() != null; } }; add(wrap); add(previewStateDialog = new PreviewStatePreviewDialog("previewStateDialog")); final Label desc = new Label("itemDesc", new AbstractReadOnlyModel() { @Override public Object getObject() { return service.read(stereotype.getObject()).getName(); } }); wrap.add(desc); wrap.add(new Label("userDesc", new AbstractReadOnlyModel() { @Override public Object getObject() { StereotypeUIMetaData meta = service.readUIMeta(stereotype.getObject()); return meta.getOwner().equals(userService.getCurrentUser()) ? "" : "(" + meta.getOwner() + ")"; } })); WebMarkupContainer previewSingle = new WebMarkupContainer("previewSingle") { @Override public boolean isVisible() { return false; //return service.read(stereotype.getObject()).getPreviewStates().isEmpty(); } @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); tag.put("href", "preview/" + StringUtil.urlEncode(stereotype.getObject().toString()) + "/"); tag.put("target", stereotype.getObject().toString()); } }; previewSingle.add(new Image("icon", new ResourceReference(BasePage.class, "eye--arrow.png"))); wrap.add(previewSingle); WebMarkupContainer previewMulti = new AjaxLink("previewMulti") { @Override public boolean isVisible() { return false; //return !service.read(stereotype.getObject()).getPreviewStates().isEmpty(); } @Override public void onClick(AjaxRequestTarget target) { previewStateDialog.open(target, stereotype.getObject()); } }; previewMulti.add(new Image("icon", new ResourceReference(BasePage.class, "eye--arrow.png"))); wrap.add(previewMulti); wrap.add(new WebMarkupContainer("itemOpen") { @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); tag.put("href", urlFor(PrototypeEditor.class, new PageParameters(StdParam.LOAD_ID + "=" + stereotype.getObject())).toString()); } }.setVisible(false)); wrap.add(new SecureWebMarkupContainer("itemAccess") { @Override public IPrivilege getRenderPrivilege() { return Privilege.currentUserHasWriteAccess(stereotype.getObject()); } @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); tag.put("href", urlFor(EditMetaPage.class, new PageParameters(StdParam.LOAD_ID + "=" + stereotype.getObject())).toString()); } }); wrap.add(new AjaxLink("itemCopy") { @Override public void onClick(AjaxRequestTarget target) { service.copy(stereotype.getObject()); setResponsePage(LandingPage.class); } }); final RenameForm renameForm = new RenameForm(); wrap.add(renameForm); wrap.add(new SecureAjaxLink("itemRename") { @Override public boolean isVisible() { return Privilege.currentUserHasWriteAccess(stereotype.getObject()) .isGrantedToClient(userService.getUser(userService.getCurrentUser())); } @Override public void onClick(AjaxRequestTarget target) { renameForm.show(stereotype.getObject(), service.read(stereotype.getObject()).getName()); desc.setVisible(false); target.addComponent(StereotypeManagePanel.this); } }); wrap.add(new ConfirmerLink("itemArchive") { @Override public boolean isVisible() { return Privilege.currentUserHasWriteAccess(stereotype.getObject()) .isGrantedToClient(userService.getUser(userService.getCurrentUser())); } @Override public String getMessageContentHTML() { return "Are you sure you want to archive '" + service.read(stereotype.getObject()).getName() + "'?"; } @Override public String getOkButtonLabel() { return "Yes"; } @Override public String getCancelButtonLabel() { return "No"; } @Override public void onClick() { StereotypeUIMetaData meta = service.readUIMeta(stereotype.getObject()); meta.getTags().add(StereotypeUIMetaData.ARCHIVE_TAG); service.writeUIMeta(stereotype.getObject(), meta); } }); wrap.add(new ConfirmerLink("itemDelete") { @Override public boolean isVisible() { return Privilege.currentUserHasWriteAccess(stereotype.getObject()) .isGrantedToClient(userService.getUser(userService.getCurrentUser())); } @Override public String getMessageContentHTML() { return "Are you sure you want to delete '" + service.read(stereotype.getObject()).getName() + "'?"; } @Override public String getOkButtonLabel() { return "Yes"; } @Override public String getCancelButtonLabel() { return "No"; } @Override public void onClick() { service.archive(stereotype.getObject()); } }); wrap.add(new RefreshingView<String>("groups") { @Override protected Iterator<IModel<String>> getItemModels() { List<String> all = new ArrayList<String>(); if (stereotype.getObject() != null) { StereotypeUIMetaData meta = service.readUIMeta(stereotype.getObject()); for (String g : meta.getEditGroups()) { all.add("Group - " + g + " (edit)"); } for (String g : meta.getEditUsers()) { all.add("User - " + g + " (edit)"); } for (String g : meta.getViewGroups()) { all.add("Group - " + g + " (view)"); } for (String g : meta.getViewUsers()) { all.add("User - " + g + " (view)"); } } if (all.isEmpty()) { all.add("Private (owner only)"); } return WrapCollectionToModelCollection.get(all).iterator(); } @Override protected void populateItem(final Item<String> item) { item.add(new Label("group", item.getModelObject())); } }); }
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 av a 2s . c o m*/ // 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:jdave.examples.wicket.DictionaryPanel.java
License:Apache License
public DictionaryPanel(String id) { super(id);// w w w.j a v a 2 s . c om add(new FeedbackPanel("feedback")); add(new Form<Void>("form") { { add(new TextField<String>("query", new PropertyModel<String>(DictionaryPanel.this, "query"))); } @Override protected void onSubmit() { hits = getService().lookup(query); if (hits.isEmpty()) { DictionaryPanel.this.info("No hits."); } } }); add(new RefreshingView<String>("words") { @Override protected Iterator<IModel<String>> getItemModels() { return new ModelIteratorAdapter<String>(hits.iterator()) { @Override protected IModel<String> model(String object) { return new Model<String>(object); } }; } @Override protected void populateItem(Item<String> item) { item.add(new Label("word", item.getDefaultModelObjectAsString())); } }); }
From source file:jdave.wicket.PageWithItems.java
License:Apache License
@SuppressWarnings({ "unchecked", "rawtypes" }) public PageWithItems(final IModel<List<Integer>> items) { add(new ListView<Integer>("listView", items) { @Override/* w ww .ja v a 2 s . co m*/ protected void populateItem(ListItem<Integer> item) { item.add(new Label("item", item.getModelObject().toString())); } }); add(new RefreshingView<Integer>("refreshingView") { @Override protected Iterator<IModel<Integer>> getItemModels() { return new ModelIteratorAdapter<Integer>(items.getObject().iterator()) { @Override protected IModel<Integer> model(Integer object) { return new Model<Integer>(object); } }; } @Override protected void populateItem(Item<Integer> item) { item.add(new Label("item", item.getModelObject().toString())); } }); add(new WebMarkupContainer("container", new CompoundPropertyModel(this)) .add(new WebMarkupContainer("innerContainer"))); }