List of usage examples for org.apache.wicket.markup.repeater.data IDataProvider IDataProvider
IDataProvider
From source file:de.inren.frontend.health.BmiDefinitionPanel.java
License:Apache License
private IDataProvider<BmiMeaning> getDataProvider() { return new IDataProvider<BmiMeaning>() { @Override/* w ww . j a v a 2 s. c o m*/ public void detach() { } @Override public Iterator<? extends BmiMeaning> iterator(long first, long count) { List<BmiMeaning> l = Arrays.asList(BmiMeaning.values()).subList((int) first, (int) (first + count)); Collections.reverse(l); return l.iterator(); } @Override public long size() { return BmiMeaning.values().length; } @Override public IModel<BmiMeaning> model(BmiMeaning object) { return new Model<BmiMeaning>(object); } }; }
From source file:eu.uqasar.web.pages.admin.meta.MetaDataEditPanel.java
License:Apache License
private IDataProvider<T> getMetaDataProvider(final Class<T> clazz) { return new IDataProvider<T>() { @Override/*ww w . j a va 2 s . c om*/ public Iterator<T> iterator(long first, long count) { return service.getAllAscendingByName(clazz, first, count).iterator(); } @Override public long size() { return service.countAll(clazz); } @Override public IModel<T> model(T object) { return Model.of(object); } @Override public void detach() { } }; }
From source file:eu.uqasar.web.pages.admin.teams.panels.EditTeamPanel.java
License:Apache License
private IDataProvider<TeamMembership> getMembershipProvider(final Team team) { return new IDataProvider<TeamMembership>() { @Override/* w w w . j a va2s .c o m*/ public Iterator<? extends TeamMembership> iterator(long first, long count) { return team.getMembers().iterator(); } @Override public long size() { return team.getMembers().size(); } @Override public IModel<TeamMembership> model(TeamMembership object) { return Model.of(object); } @Override public void detach() { } }; }
From source file:eu.uqasar.web.pages.admin.teams.TeamEditPage.java
License:Apache License
private IDataProvider<TeamMembership> getMembershipProvider(final Team team) { return new IDataProvider<TeamMembership>() { @Override//from ww w . j a va 2 s . c o m public Iterator<? extends TeamMembership> iterator(long first, long count) { // TODO take into account first and count return team.getMembers().iterator(); } @Override public long size() { return team.getMembers().size(); } @Override public IModel<TeamMembership> model(TeamMembership object) { return Model.of(object); } @Override public void detach() { } }; }
From source file:net.databinder.components.hib.QueryPanel.java
License:Open Source License
/** * Creates a result table for the current query. * @return a result table, or an empty label if there is no current query *//* w w w.j a v a2 s . c o m*/ private Component getResultsTable() { if (Strings.isEmpty(query.getQuery())) { return new Label("results", ""); } else { IDataProvider dataProvider = new IDataProvider() { private static final long serialVersionUID = 1L; public void detach() { } public int size() { Session sess = Databinder.getHibernateSession(); Query query = sess.createQuery(getQuery()); return query.list().size(); } public String getQuery() { return QueryPanel.this.query.getQuery(); } public IModel model(Object object) { return new BoundCompoundPropertyModel(new HibernateObjectModel(object)); } public Iterator iterator(int first, int count) { Session sess = Databinder.getHibernateSession(); long start = System.nanoTime(); try { Query q = sess.createQuery(getQuery()); q.setFirstResult(first); q.setMaxResults(count); return q.iterate(); } finally { float nanoTime = ((System.nanoTime() - start) / 1000) / 1000.0f; setExecutionInfo("query executed in " + nanoTime + " ms: " + getQuery()); } } }; IColumn[] columns; Session sess = Databinder.getHibernateSession(); Query q = sess.createQuery(query.getQuery()); String[] aliases; Type[] returnTypes; try { aliases = q.getReturnAliases(); returnTypes = q.getReturnTypes(); } catch (NullPointerException e) { // thrown on updates return new Label("results", ""); } if (returnTypes.length != 1) { columns = new IColumn[returnTypes.length]; for (int i = 0; i < returnTypes.length; i++) { String alias = aliases == null || aliases.length <= i ? returnTypes[i].getName() : aliases[i]; final int index = i; columns[i] = new AbstractColumn(new Model(alias)) { private static final long serialVersionUID = 1L; public void populateItem(Item cellItem, String componentId, IModel rowModel) { Object[] objects = (Object[]) rowModel.getObject(); cellItem.add(new Label(componentId, new Model(objects[index] == null ? "" : objects[index].toString()))); } }; } } else { Type returnType = returnTypes[0]; if (returnType.isEntityType()) { Class clss = returnType.getReturnedClass(); ClassMetadata metadata = Databinder.getHibernateSessionFactory().getClassMetadata(clss); List<IColumn> cols = new ArrayList<IColumn>(); String idProp = metadata.getIdentifierPropertyName(); cols.add(new PropertyColumn(new Model(idProp), idProp)); String[] properties = metadata.getPropertyNames(); for (String prop : properties) { Type type = metadata.getPropertyType(prop); if (type.isCollectionType()) { // TODO: see if we could provide a link to the collection value } else { cols.add(new PropertyColumn(new Model(prop), prop)); } } columns = (IColumn[]) cols.toArray(new IColumn[cols.size()]); } else { String alias = aliases == null || aliases.length == 0 ? returnType.getName() : aliases[0]; columns = new IColumn[] { new AbstractColumn(new Model(alias)) { private static final long serialVersionUID = 1L; public void populateItem(Item cellItem, String componentId, IModel rowModel) { cellItem.add(new Label(componentId, rowModel)); } } }; } } DataTable dataTable = new DataTable("results", columns, dataProvider, 10); dataTable.addTopToolbar(new HeadersToolbar(dataTable, null)); dataTable.addBottomToolbar(new NavigationToolbar(dataTable)); dataTable.setOutputMarkupId(true); return dataTable; } }
From source file:org.apache.openmeetings.web.user.profile.MessagesContactsPanel.java
License:Apache License
public MessagesContactsPanel(String id) { super(id);/*from w w w . j a v a 2 s. co m*/ NOT_MOVE_FOLDER.setId(MOVE_CHOOSE); NOT_MOVE_FOLDER.setFolderName(Application.getString(1243)); foldersModel.setObject(getBean(PrivateMessageFolderDao.class).get(0, Integer.MAX_VALUE)); updateMoveModel(); final AddFolderDialog addFolder = new AddFolderDialog("addFolder") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target) { super.onSubmit(target); PrivateMessageFolderDao fDao = getBean(PrivateMessageFolderDao.class); fDao.addPrivateMessageFolder(getModelObject(), getUserId()); foldersModel.setObject(fDao.get(0, Integer.MAX_VALUE)); updateMoveModel(); target.add(folders, moveDropDown); } }; add(addFolder); add(new JQueryBehavior(".email.new", "button")); folders.add(inbox.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { selectFolder(inbox, INBOX_FOLDER_ID, target); } })); folders.add(sent.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { selectFolder(sent, SENT_FOLDER_ID, target); } })); folders.add(trash.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { selectFolder(trash, TRASH_FOLDER_ID, target); } })); folders.add(new WebMarkupContainer("newdir").add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { addFolder.open(target); } }).add(new JQueryBehavior(".email.newdir", "button"))); add(folders.add(new ListView<PrivateMessageFolder>("folder", foldersModel) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<PrivateMessageFolder> item) { item.add(new Label("name", item.getModelObject().getFolderName())); item.add(new ConfirmableAjaxBorder("delete", getString("80"), getString("833")) { private static final long serialVersionUID = 1L; @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { attributes.setEventPropagation(EventPropagation.STOP_IMMEDIATE); } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { PrivateMessageFolderDao fDao = getBean(PrivateMessageFolderDao.class); fDao.delete(item.getModelObject(), getUserId()); foldersModel.setObject(fDao.get(0, Integer.MAX_VALUE)); updateMoveModel(); target.add(folders, moveDropDown); } }); item.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { selectFolder(item, item.getModelObject().getId(), target); } }); setFolderClass(item); } }).setOutputMarkupId(true)); SearchableDataProvider<PrivateMessage> sdp = new SearchableDataProvider<PrivateMessage>( PrivateMessageDao.class) { private static final long serialVersionUID = 1L; @Override protected PrivateMessageDao getDao() { return (PrivateMessageDao) super.getDao(); } @Override public Iterator<? extends PrivateMessage> iterator(long first, long count) { allMessages.clear(); readMessages.clear(); unreadMessages.clear(); String sort = getSort() == null ? "" : "m." + getSort().getProperty(); boolean isAsc = getSort() == null ? true : getSort().isAscending(); return getDao().get(getUserId(), selectedFolderModel.getObject(), search, sort, isAsc, (int) first, (int) count).iterator(); } @Override public long size() { return getDao().count(getUserId(), selectedFolderModel.getObject(), search); } }; final SearchableDataView<PrivateMessage> dv = new SearchableDataView<PrivateMessage>("messages", sdp) { private static final long serialVersionUID = 1L; @Override protected void populateItem(Item<PrivateMessage> item) { PrivateMessage m = item.getModelObject(); final Long id = m.getId(); allMessages.add(id); if (m.getIsRead()) { readMessages.add(id); } else { unreadMessages.add(id); } item.add(new Label("id", id)); item.add(new Label("from", getDisplayName(m.getFrom()))); item.add(new Label("subject", m.getSubject())); item.add(new Label("send", getDateFormat().format(m.getInserted()))); item.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { long selected = id; if (selectedMessages.contains(id)) { selectedMessages.remove(id); selected = selectedMessages.isEmpty() ? -1 : selectedMessages.iterator().next(); } else { selectedMessages.add(id); } selectMessage(selected, target); target.add(container); } }); StringBuilder cssClass = new StringBuilder(m.getIsRead() ? "" : "unread"); if (selectedMessages.contains(id)) { if (cssClass.length() > 0) { cssClass.append(" "); } cssClass.append("ui-state-active"); } item.add(AttributeModifier.replace("class", cssClass.toString())); } }; PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dv) { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { emptySelection(target); target.add(container); } }; dataContainer = new DataViewContainer<PrivateMessage>(container, dv, navigator); dataContainer.addLink(new OmOrderByBorder<PrivateMessage>("orderById", "id", dataContainer)) .addLink(new OmOrderByBorder<PrivateMessage>("orderByFrom", "from.lastname", dataContainer)) .addLink(new OmOrderByBorder<PrivateMessage>("orderBySubject", "subject", dataContainer)) .addLink(new OmOrderByBorder<PrivateMessage>("orderBySend", "inserted", dataContainer)); add(dataContainer.getLinks()); add(navigator); add(unread.setOutputMarkupId(true)); add(buttons.setOutputMarkupId(true)); buttons.add(toInboxBtn.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { getBean(PrivateMessageDao.class).moveMailsToFolder(selectedMessages, INBOX_FOLDER_ID); selectFolder(selectedFolder, selectedFolderModel.getObject(), target); } })); buttons.add(deleteBtn.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { if (TRASH_FOLDER_ID.equals(selectedFolderModel.getObject())) { getBean(PrivateMessageDao.class).delete(selectedMessages); } else { getBean(PrivateMessageDao.class).moveMailsToFolder(selectedMessages, TRASH_FOLDER_ID); } emptySelection(target); target.add(container); } })); buttons.add(readBtn.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { getBean(PrivateMessageDao.class).updateReadStatus(selectedMessages, true); emptySelection(target); target.add(container, unread); } })); buttons.add(unreadBtn.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { getBean(PrivateMessageDao.class).updateReadStatus(selectedMessages, false); emptySelection(target); target.add(container); } })); buttons.add(selectDropDown.setOutputMarkupId(true).add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { switch (selectDropDown.getModelObject()) { case SELECT_CHOOSE: break; case SELECT_ALL: selectedMessages.clear(); selectedMessages.addAll(allMessages); break; case SELECT_NONE: selectedMessages.clear(); break; case SELECT_UNREAD: selectedMessages.clear(); selectedMessages.addAll(unreadMessages); break; case SELECT_READ: selectedMessages.clear(); selectedMessages.addAll(readMessages); break; } target.add(container); } })); buttons.add(moveDropDown.setOutputMarkupId(true).add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { Long folderId = moveDropDown.getModelObject().getId(); if (!MOVE_CHOOSE.equals(folderId)) { getBean(PrivateMessageDao.class).moveMailsToFolder(selectedMessages, folderId); } selectFolder(selectedFolder, selectedFolderModel.getObject(), target); } })); selectMessage(-1, null); add(container.add(dv).setOutputMarkupId(true)); //TODO add valid autoupdate add(new AjaxSelfUpdatingTimerBehavior(seconds(15))); add(selectedMessage.add(roomContainer.setVisible(false)).setOutputMarkupId(true)); IDataProvider<UserContact> dp = new IDataProvider<UserContact>() { private static final long serialVersionUID = 1L; @Override public void detach() { } @Override public Iterator<? extends UserContact> iterator(long first, long count) { return getBean(UserContactDao.class).get(getUserId(), (int) first, (int) count).iterator(); } @Override public long size() { return getBean(UserContactDao.class).count(getUserId()); } @Override public IModel<UserContact> model(UserContact object) { return Model.of(object); } }; final DataView<UserContact> dw = new DataView<UserContact>("users", dp) { private static final long serialVersionUID = 1L; private String getName(UserContact uc) { return uc.getOwner().getFirstname() + " " + uc.getOwner().getLastname(); //FIXME salutation } @Override protected void populateItem(Item<UserContact> item) { UserContact uc = item.getModelObject(); final Long contactId = uc.getId(); final Long userId = uc.getOwner().getId(); if (uc.isPending()) { item.add(AttributeModifier.append("class", "unread")); } item.add(new Label("name", getName(uc))); item.add(new WebMarkupContainer("accept").add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { ContactsHelper.acceptUserContact(contactId); updateContacts(target); } }).setVisible(uc.isPending())); item.add(new WebMarkupContainer("decline").add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { getBean(UserContactDao.class).delete(contactId); updateContacts(target); } }).setVisible(uc.isPending())); item.add(new WebMarkupContainer("view") .add(AttributeAppender.append("onclick", String.format("showUserInfo(%s);", userId)))); item.add(new WebMarkupContainer("message") .add(AttributeAppender.append("onclick", String.format("privateMessage(%s);", userId))) .setVisible(!uc.isPending())); item.add(new ConfirmableAjaxBorder("delete", getString("80"), getString("833")) { private static final long serialVersionUID = 1L; @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { attributes.setEventPropagation(EventPropagation.STOP_IMMEDIATE); } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { getBean(UserContactDao.class).delete(contactId); updateContacts(target); } }.setVisible(!uc.isPending())); } }; updateContacts(null); add(contacts.add(dw, pendingContacts, allContacts).setOutputMarkupId(true));//TODO update //hack to add FixedHeaderTable after Tabs. add(new AbstractDefaultAjaxBehavior() { private static final long serialVersionUID = 1L; @Override protected void respond(AjaxRequestTarget target) { selectFolder(inbox, INBOX_FOLDER_ID, target); selectMessage(-1, target); } @Override public void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); response.render(OnDomReadyHeaderItem.forScript(getCallbackScript())); } }); }
From source file:org.apache.openmeetings.web.user.profile.UserSearchPanel.java
License:Apache License
public UserSearchPanel(String id) { super(id);/*from www . j a v a 2s . com*/ add(new Form<Void>("form") { private static final long serialVersionUID = 1L; { add(new TextField<String>("text", new PropertyModel<String>(UserSearchPanel.this, "text"))); add(new TextField<String>("offer", new PropertyModel<String>(UserSearchPanel.this, "offer"))); add(new TextField<String>("search", new PropertyModel<String>(UserSearchPanel.this, "search"))); add(new AjaxButton("submit") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { searched = true; refresh(target); } }); } }); IDataProvider<User> dp = new IDataProvider<User>() { private static final long serialVersionUID = 1L; @Override public void detach() { } @Override public Iterator<? extends User> iterator(long first, long count) { return searched ? getBean(UserDao.class).searchUserProfile(getUserId(), text, offer, search, orderBy, (int) first, (int) count, asc).iterator() : new ArrayList<User>().iterator(); } @Override public long size() { return searched ? getBean(UserDao.class).searchCountUserProfile(getUserId(), text, offer, search) : 0; } @Override public IModel<User> model(User object) { return new CompoundPropertyModel<User>(object); } }; final DataView<User> dw = new DataView<User>("users", dp) { private static final long serialVersionUID = 1L; @Override protected void populateItem(Item<User> item) { final UserContactDao contactsDao = getBean(UserContactDao.class); User u = item.getModelObject(); final long userId = u.getId(); item.add(new WebMarkupContainer("status") .add(AttributeModifier.append("class", isUserOnline(userId) ? "online" : "offline"))); item.add(new Label("name", getName(u))); item.add(new Label("tz", getBean(TimezoneUtil.class).getTimeZone(u).getID())); item.add(new Label("offer", u.getUserOffers())); item.add(new Label("search", u.getUserSearchs())); item.add(new WebMarkupContainer("view") .add(AttributeAppender.append("onclick", String.format("showUserInfo(%s);", userId)))); item.add(new WebMarkupContainer("add") .setVisible(userId != getUserId() && !contactsDao.isContact(userId, getUserId())) .add(AttributeAppender.append("onclick", String.format("addContact(%s);", userId)))); item.add(new WebMarkupContainer("message").setVisible(userId != getUserId()) .add(AttributeAppender.append("onclick", String.format("privateMessage(%s);", userId)))); item.add(new WebMarkupContainer("invite").setVisible(userId != getUserId()) .add(AttributeAppender.append("onclick", String.format("inviteUser(%s);", userId)))); //item.add(new TooltipBehavior(new Options("content", "TODO:: Picture will be displayed"))); //FIXME } }; add(container.add(dw, new PagingNavigatorPanel("navigator", dw, itemsPerPage, 100) { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { refresh(target); } }).setOutputMarkupId(true)); }
From source file:org.hippoecm.frontend.editor.plugins.linkpicker.FacetSelectTemplatePlugin.java
License:Apache License
public FacetSelectTemplatePlugin(final IPluginContext context, IPluginConfig config) { super(context, config); Node node = getModelObject(); try {/*from ww w .j ava 2s.c o m*/ if (!node.hasProperty("hippo:docbase")) { node.setProperty("hippo:docbase", node.getSession().getRootNode().getUUID()); } if (!node.hasProperty("hippo:facets")) { node.setProperty("hippo:facets", new String[0]); } if (!node.hasProperty("hippo:values")) { node.setProperty("hippo:values", new String[0]); } if (!node.hasProperty("hippo:modes")) { node.setProperty("hippo:modes", new String[0]); } } catch (ValueFormatException e) { log.error(e.getMessage()); } catch (PathNotFoundException e) { log.error(e.getMessage()); } catch (RepositoryException e) { log.error(e.getMessage()); } final IModel<String> displayModel = new LoadableDetachableModel<String>() { private static final long serialVersionUID = 1L; @Override protected String load() { Node node = FacetSelectTemplatePlugin.this.getModelObject(); try { if (node != null && node.hasProperty("hippo:docbase")) { String docbaseUUID = node.getProperty("hippo:docbase").getString(); if (docbaseUUID == null || docbaseUUID.equals("") || docbaseUUID.startsWith("cafebabe-")) { return EMPTY_LINK_TEXT; } return node.getSession().getNodeByUUID(docbaseUUID).getPath(); } } catch (ValueFormatException e) { log.warn("Invalid value format for docbase " + e.getMessage()); log.debug("Invalid value format for docbase ", e); } catch (PathNotFoundException e) { log.warn("Docbase not found " + e.getMessage()); log.debug("Docbase not found ", e); } catch (RepositoryException e) { log.error("Invalid docbase" + e.getMessage(), e); } return EMPTY_LINK_TEXT; } }; mode = IEditor.Mode.fromString(config.getString("mode"), IEditor.Mode.VIEW); try { IDataProvider<Integer> provider = new IDataProvider<Integer>() { private static final long serialVersionUID = 1L; @Override public Iterator<Integer> iterator(long first, long count) { return new Iterator<Integer>() { int current = 0; public boolean hasNext() { try { Node node = ((JcrNodeModel) FacetSelectTemplatePlugin.this.getDefaultModel()) .getNode(); return current < node.getProperty("hippo:facets").getValues().length; } catch (RepositoryException ex) { return false; } } public Integer next() { if (hasNext()) { return Integer.valueOf(current++); } else { throw new NoSuchElementException(); } } public void remove() { throw new UnsupportedOperationException(); } }; } @Override public long size() { try { Node node = ((JcrNodeModel) FacetSelectTemplatePlugin.this.getDefaultModel()).getNode(); return node.getProperty("hippo:facets").getValues().length; } catch (RepositoryException ex) { return 0; } } @Override public IModel<Integer> model(Integer object) { return new Model<Integer>(object); } @Override public void detach() { } }; if (IEditor.Mode.EDIT == mode) { final JcrPropertyValueModel<String> docbaseModel = new JcrPropertyValueModel<String>( new JcrPropertyModel<String>(node.getProperty("hippo:docbase"))); IDialogFactory dialogFactory = new IDialogFactory() { private static final long serialVersionUID = 1L; public AbstractDialog<String> createDialog() { final IPluginConfig dialogConfig = LinkPickerDialogConfig .fromPluginConfig(getPluginConfig(), docbaseModel); return new LinkPickerDialog(context, dialogConfig, new IChainingModel<String>() { private static final long serialVersionUID = 1L; public String getObject() { return docbaseModel.getObject(); } public void setObject(String object) { docbaseModel.setObject(object); redraw(); } public IModel<String> getChainedModel() { return docbaseModel; } public void setChainedModel(IModel<?> model) { throw new UnsupportedOperationException("Value model cannot be changed"); } public void detach() { docbaseModel.detach(); } }); } }; add(new ClearableDialogLink("docbase", displayModel, dialogFactory, getDialogService()) { private static final long serialVersionUID = 1L; @Override public void onClear() { Node node = ((JcrNodeModel) FacetSelectTemplatePlugin.this.getDefaultModel()).getNode(); try { node.setProperty("hippo:docbase", node.getSession().getRootNode().getUUID()); } catch (RepositoryException e) { log.error("Unable to reset docbase to rootnode uuid", e); } redraw(); } @Override public boolean isClearVisible() { // Checking for string literals ain't pretty. It's probably better to create a better display model. return !EMPTY_LINK_TEXT.equals((String) displayModel.getObject()); } }); add(new DataView<Integer>("arguments", provider) { private static final long serialVersionUID = 1L; @Override public void populateItem(final Item<Integer> item) { Node node = FacetSelectTemplatePlugin.this.getModelObject(); final int index = item.getModelObject().intValue(); try { item.add(new TextFieldWidget("facet", new JcrPropertyValueModel<String>(index, new JcrPropertyModel<String>(node.getProperty("hippo:facets"))))); item.add(new TextFieldWidget("mode", new JcrPropertyValueModel<String>(index, new JcrPropertyModel<String>(node.getProperty("hippo:modes"))))); item.add(new TextFieldWidget("value", new JcrPropertyValueModel<String>(index, new JcrPropertyModel<String>(node.getProperty("hippo:values"))))); AjaxLink<Void> removeButton; item.add(removeButton = new AjaxLink<Void>("remove") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { Node node = ((JcrNodeModel) FacetSelectTemplatePlugin.this.getDefaultModel()) .getNode(); for (String property : new String[] { "hippo:facets", "hippo:modes", "hippo:values" }) { try { Value[] oldValues = node.getProperty(property).getValues(); Value[] newValues = new Value[oldValues.length - 1]; System.arraycopy(oldValues, 0, newValues, 0, index); System.arraycopy(oldValues, index + 1, newValues, 0, oldValues.length - index - 1); node.setProperty(property, newValues); } catch (RepositoryException ex) { log.error("cannot add new facet select line", ex); } } FacetSelectTemplatePlugin.this.redraw(); } }); removeButton.setOutputMarkupId(true); } catch (RepositoryException ex) { log.error("cannot read facet select line", ex); } } }); AjaxLink<Void> addButton; add(addButton = new AjaxLink<Void>("add") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { Node node = ((JcrNodeModel) FacetSelectTemplatePlugin.this.getDefaultModel()).getNode(); for (String property : new String[] { "hippo:facets", "hippo:modes", "hippo:values" }) { try { Value[] oldValues = node.getProperty(property).getValues(); Value[] newValues = new Value[oldValues.length + 1]; System.arraycopy(oldValues, 0, newValues, 0, oldValues.length); newValues[newValues.length - 1] = node.getSession().getValueFactory() .createValue(""); node.setProperty(property, newValues); } catch (RepositoryException ex) { log.error("cannot add new facet select line", ex); } } FacetSelectTemplatePlugin.this.redraw(); } }); addButton.setOutputMarkupId(true); } else { add(new Label("docbase", displayModel)); add(new DataView<Integer>("arguments", provider) { private static final long serialVersionUID = 1L; @Override public void populateItem(final Item<Integer> item) { try { Node node = FacetSelectTemplatePlugin.this.getModelObject(); int index = item.getModelObject().intValue(); item.add(new Label("facet", node.getProperty("hippo:facets").getValues()[index].getString())); item.add(new Label("mode", node.getProperty("hippo:modes").getValues()[index].getString())); item.add(new Label("value", node.getProperty("hippo:values").getValues()[index].getString())); Label removeButton; item.add(removeButton = new Label("remove")); removeButton.setVisible(false); } catch (RepositoryException ex) { log.error("cannot read facet select line", ex); } } }); Label addButton; add(addButton = new Label("add")); addButton.setVisible(false); } } catch (PathNotFoundException ex) { log.error("failed to read existing facet select", ex); } catch (ValueFormatException ex) { log.error("failed to read existing facet select", ex); } catch (RepositoryException ex) { log.error("failed to read existing facet select", ex); } setOutputMarkupId(true); }
From source file:org.hippoecm.frontend.editor.workflow.MenuTester.java
License:Apache License
static IDataProvider getProvider(final MarkupContainer container) { return new IDataProvider() { private static final long serialVersionUID = 1L; private List<WorkflowAction> list; @Override/*from w w w . j a v a 2 s . c om*/ public Iterator iterator(final long first, final long count) { attach(); long toIndex = first + count; if (toIndex > list.size()) { toIndex = list.size(); } return list.subList((int) first, (int) toIndex).listIterator(); } @Override public IModel model(Object object) { return new Model((Serializable) object); } @Override public long size() { attach(); return list.size(); } @SuppressWarnings({ "unchecked", "deprecation" }) void attach() { if (list == null) { list = new LinkedList<WorkflowAction>(); container.visitChildren(WorkflowAction.class, new IVisitor<WorkflowAction, Void>() { @Override public void component(WorkflowAction component, IVisit<Void> visit) { list.add(component); } }); } } @Override public void detach() { list = null; } }; }
From source file:org.hippoecm.frontend.plugins.cms.browse.SectionViewer.java
License:Apache License
public SectionViewer(final String id, final BrowserSections sections, IRenderService parentRenderService) { super(id, new Model<String>(null)); setOutputMarkupId(true);//from w w w. java2 s.c o m add(new AttributeAppender("class", Model.of("section-viewer"), " ")); this.parentService = parentRenderService; this.sections = sections; IDataProvider<String> sectionProvider = new IDataProvider<String>() { private transient List<String> names; private void load() { if (names == null) { names = new ArrayList<>(sections.getSections()); } } @Override public Iterator<String> iterator(long first, long count) { load(); return names.subList((int) first, (int) (first + count)).iterator(); } @Override public IModel<String> model(String object) { return new Model<>(object); } @Override public long size() { return sections.getSections().size(); } @Override public void detach() { names = null; } }; add(new AbstractView<String>("list", sectionProvider) { @Override protected void populateItem(final Item<String> item) { final IBrowserSection section = sections.getSection(item.getModelObject()); section.bind(parentService, "section-view"); final Component component = section.getComponent(); component.setOutputMarkupId(true); component.setOutputMarkupPlaceholderTag(true); item.add(component); item.add(new AttributeAppender("class", new AbstractReadOnlyModel<String>() { @Override public String getObject() { return sections.isActive(section) ? "selected" : "unselected"; } }, " ")); } @Override protected void destroyItem(Item<String> item) { IBrowserSection section = sections.getSection(item.getModelObject()); section.unbind(); } }); String selectedBrowserSection = (String) getDefaultModelObject(); if (selectedBrowserSection != null) { select(selectedBrowserSection); } final Form form = new Form("selection-form"); add(form); final SectionNamesModel sectionNamesModel = new SectionNamesModel(); this.sections.addListener(sectionNamesModel); final IModel<String> selectModel = new SelectedSectionModel(); select = new DropDownChoice<>("select", selectModel, sectionNamesModel, new IChoiceRenderer<String>() { @Override public Object getDisplayValue(final String sectionId) { final IBrowserSection section = sections.getSection(sectionId); return section.getTitle().getObject(); } @Override public String getIdValue(final String sectionId, final int index) { return sectionId; } }); select.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(final AjaxRequestTarget target) { onSelect(selectModel.getObject()); } }); form.add(select); this.sections.addListener(new IChangeListener() { public void onChange() { select(sections.getActiveSectionName()); } }); }