From: <die...@us...> - 2013-06-14 15:14:09
|
Revision: 4260 http://openutils.svn.sourceforge.net/openutils/?rev=4260&view=rev Author: diego_schivo Date: 2013-06-14 15:14:06 +0000 (Fri, 14 Jun 2013) Log Message: ----------- CONTROLS-54 RadioOptions Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogRadioGroup.java magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/samples/SampleRadioOptionsProvider.java magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/samples/SampleRadioOptionsProvider2.java magnoliamodules/trunk/openutils-mgnlcontrols/src/main/resources/mgnl-files/templates/samples-controls/paragraph-dependentSelectList.jsp Modified: magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogRadioGroup.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogRadioGroup.java 2013-06-14 14:47:15 UTC (rev 4259) +++ magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogRadioGroup.java 2013-06-14 15:14:06 UTC (rev 4260) @@ -30,9 +30,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import net.sourceforge.openutils.mgnlcontrols.dialog.ConfigurableFreemarkerDialog; - import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.math.NumberUtils; /** @@ -43,7 +42,7 @@ private RadioOptionsProvider radioOptionsProvider; - private Map<String, String> radioOptions; + private RadioOptions radioOptions; /** * Returns the radioOptionsProvider. @@ -77,11 +76,14 @@ * Returns the radioOptions. * @return the radioOptions */ - public Map<String, String> getRadioOptions() + public RadioOptions getRadioOptions() { if (radioOptions == null) { - radioOptions = getRadioOptionsProvider().getRadioOptions(getThisDialogControl()); + radioOptions = getRadioOptionsProvider().getRadioOptions( + NumberUtils.toInt(getConfigValue("itemsPerPage")), + NumberUtils.toInt(getRequest().getParameter("radioGroupPage"), 1), + getThisDialogControl()); } return radioOptions; } @@ -123,6 +125,51 @@ public interface RadioOptionsProvider { - public Map<String, String> getRadioOptions(DialogControl dialogControl); + public RadioOptions getRadioOptions(int itemsPerPage, int pageNumberStartingFromOne, DialogControl dialogControl); } + + public static class RadioOptions + { + + Map<String, String> items; + + boolean more; + + /** + * Returns the items. + * @return the items + */ + public Map<String, String> getItems() + { + return items; + } + + /** + * Sets the items. + * @param items the items to set + */ + public void setItems(Map<String, String> items) + { + this.items = items; + } + + /** + * Returns the more. + * @return the more + */ + public boolean isMore() + { + return more; + } + + /** + * Sets the more. + * @param more the more to set + */ + public void setMore(boolean more) + { + this.more = more; + } + + } } Modified: magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/samples/SampleRadioOptionsProvider.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/samples/SampleRadioOptionsProvider.java 2013-06-14 14:47:15 UTC (rev 4259) +++ magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/samples/SampleRadioOptionsProvider.java 2013-06-14 15:14:06 UTC (rev 4260) @@ -6,9 +6,7 @@ import java.util.Iterator; import java.util.LinkedHashMap; -import java.util.Map; -import javax.jcr.LoginException; import javax.jcr.Node; import javax.jcr.RepositoryException; @@ -33,23 +31,31 @@ /** * {@inheritDoc} */ - public Map<String, String> getRadioOptions(DialogControl dialogControl) + public DialogRadioGroup.RadioOptions getRadioOptions(int itemsPerPage, int pageNumberStartingFromOne, + DialogControl dialogControl) { - Map<String, String> options = new LinkedHashMap<String, String>(); + DialogRadioGroup.RadioOptions options = new DialogRadioGroup.RadioOptions(); + options.setItems(new LinkedHashMap<String, String>()); + options.setMore(false); try { Node parent = MgnlContext.getJCRSession("website").getRootNode(); - for (Iterator<Node> iter = NodeUtil.getNodes(parent, "mgnl:page").iterator(); iter.hasNext();) + Iterator<Node> iter = NodeUtil.getNodes(parent, "mgnl:page").iterator(); + int start = itemsPerPage > 0 ? Math.max(pageNumberStartingFromOne - 1, 0) * itemsPerPage : 0; + int i = 0; + while (i < start && iter.hasNext()) { + iter.next(); + i++; + } + int end = itemsPerPage > 0 ? start + itemsPerPage : 0; + while ((end == 0 || i < end) && iter.hasNext()) + { Node node = iter.next(); - options.put(node.getIdentifier(), node.getName()); + options.getItems().put(node.getIdentifier(), node.getName()); } + options.setMore(iter.hasNext()); } - catch (LoginException e) - { - // TODO Auto-generated catch block - log.error(e.getMessage(), e); - } catch (RepositoryException e) { // TODO Auto-generated catch block Modified: magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/samples/SampleRadioOptionsProvider2.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/samples/SampleRadioOptionsProvider2.java 2013-06-14 14:47:15 UTC (rev 4259) +++ magnoliamodules/trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/samples/SampleRadioOptionsProvider2.java 2013-06-14 15:14:06 UTC (rev 4260) @@ -6,7 +6,6 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import javax.jcr.Node; import javax.jcr.RepositoryException; @@ -33,9 +32,12 @@ /** * {@inheritDoc} */ - public Map<String, String> getRadioOptions(DialogControl dialogControl) + public DialogRadioGroup.RadioOptions getRadioOptions(int itemsPerPage, int pageNumberStartingFromOne, + DialogControl dialogControl) { - Map<String, String> options = new LinkedHashMap<String, String>(); + DialogRadioGroup.RadioOptions options = new DialogRadioGroup.RadioOptions(); + options.setItems(new LinkedHashMap<String, String>()); + options.setMore(false); List<String> treePathValues = ((DialogDependentSelectListAndRadioGroup) dialogControl) .getDependentSelectList() .getTreePathValues(); @@ -44,11 +46,21 @@ try { Node parent = NodeUtil.getNodeByIdentifier("config", treePathValues.get(treePathValues.size() - 1)); - for (Iterator<Node> iter = NodeUtil.getNodes(parent, "mgnl:contentNode").iterator(); iter.hasNext();) + Iterator<Node> iter = NodeUtil.getNodes(parent, "mgnl:contentNode").iterator(); + int start = itemsPerPage > 0 ? Math.max(pageNumberStartingFromOne - 1, 0) * itemsPerPage : 0; + int i = 0; + while (i < start && iter.hasNext()) { + iter.next(); + i++; + } + int end = itemsPerPage > 0 ? start + itemsPerPage : 0; + while ((end == 0 || i < end) && iter.hasNext()) + { Node node = iter.next(); - options.put(node.getIdentifier(), node.getName()); + options.getItems().put(node.getIdentifier(), node.getName()); } + options.setMore(iter.hasNext()); } catch (RepositoryException e) { Modified: magnoliamodules/trunk/openutils-mgnlcontrols/src/main/resources/mgnl-files/templates/samples-controls/paragraph-dependentSelectList.jsp =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontrols/src/main/resources/mgnl-files/templates/samples-controls/paragraph-dependentSelectList.jsp 2013-06-14 14:47:15 UTC (rev 4259) +++ magnoliamodules/trunk/openutils-mgnlcontrols/src/main/resources/mgnl-files/templates/samples-controls/paragraph-dependentSelectList.jsp 2013-06-14 15:14:06 UTC (rev 4260) @@ -3,5 +3,7 @@ xmlns:cmsfn="http://magnolia-cms.com/taglib/templating-components/cmsfn" xmlns:media="http://net.sourceforge.openutils/mgnlMedia" xmlns:mu="mgnlutils"> <jsp:directive.page contentType="text/html; charset=UTF-8" session="false" /> - ${cmsfn:contentByIdentifier(content.foo, "config")} + ${cmsfn:contentByIdentifier(content.foo, "config")}<br /> + ${cmsfn:contentByIdentifier(content.bar, "website")}<br /> + ${cmsfn:contentByIdentifier(content.baz, "config")}<br /> </jsp:root> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |