Author: abelevich
Date: 2010-05-03 06:22:46 -0400 (Mon, 03 May 2010)
New Revision: 16867
Modified:
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerEvent.java
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerListener.java
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerSource.java
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/DataScrollerUtils.java
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/component/UIDataScroller.java
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/event/DataTablePreRenderListener.java
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/renderkit/ControlsState.java
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/renderkit/DataScrollerBaseRenderer.java
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/taglib/DatascrollerTagHandler.java
Log:
apply checkstyles
Modified:
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerEvent.java
===================================================================
---
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerEvent.java 2010-05-03
09:58:02 UTC (rev 16866)
+++
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerEvent.java 2010-05-03
10:22:46 UTC (rev 16867)
@@ -34,17 +34,20 @@
*
*/
private static final long serialVersionUID = 2657353903701932561L;
- private String oldScrolVal;
- private String newScrolVal;
+ private String oldScrolVal;
+ private String newScrolVal;
private int page;
/**
- * Creates a new ScrollerEvent.
- *
- * @param component the source of the event
- * @param thisOldScrolVal the previously showing item identifier
- * @param thisNewScrolVal the currently showing item identifier
- */
+ * Creates a new ScrollerEvent.
+ *
+ * @param component
+ * the source of the event
+ * @param thisOldScrolVal
+ * the previously showing item identifier
+ * @param thisNewScrolVal
+ * the currently showing item identifier
+ */
public DataScrollerEvent(UIComponent component, String thisOldScrolVal, String
thisNewScrolVal, int page) {
super(component);
oldScrolVal = thisOldScrolVal;
@@ -65,26 +68,27 @@
* @return new page or <code>-1</code> if not applicable
*/
public int getPage() {
- return page;
+ return page;
}
-
- public boolean isAppropriateListener(FacesListener listener){
+
+ public boolean isAppropriateListener(FacesListener listener) {
return super.isAppropriateListener(listener) || (listener instanceof
DataScrollerListener);
}
/**
- * Delivers this event to the SliderListener.
- *
- * @param listener the slider listener
- */
- public void processListener(FacesListener listener){
+ * Delivers this event to the SliderListener.
+ *
+ * @param listener
+ * the slider listener
+ */
+ public void processListener(FacesListener listener) {
if (listener instanceof DataScrollerListener) {
- DataScrollerListener dataScrollerListener = (DataScrollerListener) listener;
- dataScrollerListener.processScroller(this);
- }
-
+ DataScrollerListener dataScrollerListener = (DataScrollerListener) listener;
+ dataScrollerListener.processScroller(this);
+ }
+
if (super.isAppropriateListener(listener)) {
- super.processListener(listener);
+ super.processListener(listener);
}
}
}
Modified:
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerListener.java
===================================================================
---
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerListener.java 2010-05-03
09:58:02 UTC (rev 16866)
+++
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerListener.java 2010-05-03
10:22:46 UTC (rev 16867)
@@ -23,7 +23,6 @@
import javax.faces.event.FacesListener;
-
public interface DataScrollerListener extends FacesListener {
public void processScroller(org.richfaces.event.DataScrollerEvent event);
Modified:
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerSource.java
===================================================================
---
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerSource.java 2010-05-03
09:58:02 UTC (rev 16866)
+++
root/ui-sandbox/trunk/components/datascroller/api/src/main/java/org/richfaces/event/DataScrollerSource.java 2010-05-03
10:22:46 UTC (rev 16867)
@@ -24,24 +24,25 @@
public interface DataScrollerSource {
/**
- * Adds a DataScrollerListener to this DataScrollerSource.
- *
- * @param listener the Scroler listener to be added
- */
+ * Adds a DataScrollerListener to this DataScrollerSource.
+ *
+ * @param listener
+ * the Scroler listener to be added
+ */
public void addScrollerListener(org.richfaces.event.DataScrollerListener listener);
/**
- * Removes a DataFilterSliderListener from this DataScrollerSourceSource.
- *
- * @param listener the Scroler listener to be removed
- */
+ * Removes a DataFilterSliderListener from this DataScrollerSourceSource.
+ *
+ * @param listener the Scroler listener to be removed
+ */
public void removeScrollerListener(DataScrollerListener listener);
/**
- * Returns all ScrollerListeners for this DataScrollerSource.
- *
- * @return the Scroler listener array
- */
+ * Returns all ScrollerListeners for this DataScrollerSource.
+ *
+ * @return the Scroler listener array
+ */
public DataScrollerListener[] getScrollerListeners();
}
Modified:
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/DataScrollerUtils.java
===================================================================
---
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/DataScrollerUtils.java 2010-05-03
09:58:02 UTC (rev 16866)
+++
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/DataScrollerUtils.java 2010-05-03
10:22:46 UTC (rev 16867)
@@ -12,14 +12,16 @@
import org.richfaces.component.UIDataScroller;
+public final class DataScrollerUtils {
-
-public class DataScrollerUtils {
-
protected enum PropertyKeys {
rowCount, rows
}
+ private DataScrollerUtils(){
+ }
+
+
public static int getPageCount(UIComponent data, int rowCount, int rows) {
int pageCount;
if (rows > 0) {
@@ -35,64 +37,63 @@
pageCount = 1;
}
return pageCount;
- }
-
+ }
+
public static int getRows(UIComponent component) {
- int row = (Integer)component.getAttributes().get("rows");
+ int row = (Integer) component.getAttributes().get("rows");
if (row == 0) {
row = getRowCount(component);
}
return row;
}
-
+
public static int getRowCount(UIComponent component) {
- return (Integer)eval(PropertyKeys.rowCount, component, 0);
+ return (Integer) eval(PropertyKeys.rowCount, component, 0);
}
-
+
protected static Object eval(Serializable key, UIComponent component, Object
defaultValue) {
String name = key.toString();
- Object retObject = component.getAttributes().get(name);
- return retObject != null ? retObject : defaultValue;
+ Object retObject = component.getAttributes().get(name);
+ return retObject != null ? retObject : defaultValue;
}
-
+
public static UIComponent findParentContainer(UIComponent component) {
UIComponent parent = component.getParent();
- if(!(component instanceof NamingContainer)) {
+ if (!(component instanceof NamingContainer)) {
findParentContainer(parent);
}
return parent;
}
-
+
public static List<UIDataScroller> findDataScrollers(UIComponent dataTable) {
- List <UIDataScroller> datascrollers = new
ArrayList<UIDataScroller>();
+ List<UIDataScroller> datascrollers = new
ArrayList<UIDataScroller>();
Map<String, UIComponent> facets = dataTable.getFacets();
Set<Entry<String, UIComponent>> entries = facets.entrySet();
-
- for (Entry<String, UIComponent> entry: entries) {
+
+ for (Entry<String, UIComponent> entry : entries) {
findBelow(entry.getValue(), datascrollers);
}
-
+
UIComponent parent = findParentContainer(dataTable);
- if(parent != null) {
+ if (parent != null) {
findBelow(parent, datascrollers);
}
-
+
return datascrollers;
- }
-
-
+ }
+
protected static void findBelow(UIComponent component, List<UIDataScroller>
result) {
- if((component instanceof UIDataScroller) && component.isRendered()) {
- result.add((UIDataScroller)component);
-
+ if ((component instanceof UIDataScroller) && component.isRendered()) {
+ result.add((UIDataScroller) component);
+
} else {
- for(UIComponent child: component.getChildren()) {
- if(!(child instanceof NamingContainer)) {
- findBelow(child, result);
+ for (UIComponent child : component.getChildren()) {
+ if (!(child instanceof NamingContainer)) {
+ findBelow(child, result);
}
}
}
-
+
}
}
Modified:
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/component/UIDataScroller.java
===================================================================
---
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/component/UIDataScroller.java 2010-05-03
09:58:02 UTC (rev 16866)
+++
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/component/UIDataScroller.java 2010-05-03
10:22:46 UTC (rev 16867)
@@ -24,15 +24,14 @@
import org.richfaces.event.DataScrollerListener;
import org.richfaces.event.DataScrollerSource;
+public class UIDataScroller extends UIComponentBase implements DataScrollerSource,
IterationStateHolder {
-public class UIDataScroller extends UIComponentBase implements DataScrollerSource,
IterationStateHolder {
-
public static final String COMPONENT_TYPE = "org.richfaces.DataScroller";
-
- public static final String COMPONENT_FAMILY = "org.richfaces.DataScroller";
+ public static final String COMPONENT_FAMILY =
"org.richfaces.DataScroller";
+
public static final String SCROLLER_STATE_ATTRIBUTE = COMPONENT_TYPE +
":page";
-
+
public static final String FIRST_FACET_NAME = "first";
public static final String LAST_FACET_NAME = "last";
@@ -44,363 +43,349 @@
public static final String FIRST_DISABLED_FACET_NAME = "first_disabled";
public static final String LAST_DISABLED_FACET_NAME = "last_disabled";
-
+
public static final String PAGEMODE_FULL = "full";
-
+
public static final String PAGEMODE_SHORT = "short";
-
+
private Integer page;
-
+
protected enum PropertyKeys {
- boundaryControls, fastControls, fastStep, forComponent, inactiveStyle,
selectStyle, inactiveStyleClass, selectStyleClass, scrollerListener, lastPageMode,
maxPages, pageIndexVar, pagesVar, renderIfSinglePage,
- style, styleClass, stepControls
+ boundaryControls, fastControls, fastStep, forComponent, inactiveStyle,
selectStyle, inactiveStyleClass, selectStyleClass, scrollerListener, lastPageMode,
maxPages, pageIndexVar, pagesVar, renderIfSinglePage, style, styleClass, stepControls
}
-
-
+
public String getLastPageMode() {
- return (String)getStateHelper().eval(PropertyKeys.lastPageMode);
+ return (String) getStateHelper().eval(PropertyKeys.lastPageMode);
}
-
+
public void setLastPageMode(String lastPageMode) {
getStateHelper().put(PropertyKeys.lastPageMode, lastPageMode);
}
-
+
public int getFastStep() {
- return (Integer)getStateHelper().eval(PropertyKeys.fastStep, 0);
+ return (Integer) getStateHelper().eval(PropertyKeys.fastStep, 0);
}
-
+
public void setFastStep(int fastStep) {
getStateHelper().put(PropertyKeys.fastStep, fastStep);
}
-
+
public String getFor() {
- return (String)getStateHelper().eval(PropertyKeys.forComponent);
+ return (String) getStateHelper().eval(PropertyKeys.forComponent);
}
-
+
public void setFor(String f) {
getStateHelper().put(PropertyKeys.forComponent, f);
}
-
+
public int getMaxPages() {
- return (Integer)getStateHelper().eval(PropertyKeys.maxPages,0);
+ return (Integer) getStateHelper().eval(PropertyKeys.maxPages, 0);
}
-
+
public void setMaxPages(int maxPages) {
getStateHelper().put(PropertyKeys.maxPages, maxPages);
}
-
+
public String getBoundaryControls() {
- return (String)getStateHelper().eval(PropertyKeys.boundaryControls,
"show");
+ return (String) getStateHelper().eval(PropertyKeys.boundaryControls,
"show");
}
-
+
public void setBoundaryControls(String boundaryControls) {
getStateHelper().put(PropertyKeys.boundaryControls, boundaryControls);
}
public String getFastControls() {
- return (String)getStateHelper().eval(PropertyKeys.fastControls,
"show");
+ return (String) getStateHelper().eval(PropertyKeys.fastControls,
"show");
}
-
+
public void setFastControls(String fastControls) {
getStateHelper().put(PropertyKeys.fastControls, fastControls);
}
-
- public void addScrollerListener(DataScrollerListener listener) {
- addFacesListener(listener);
- }
- public DataScrollerListener[] getScrollerListeners() {
- return (DataScrollerListener[]) getFacesListeners(DataScrollerListener.class);
- }
+ public void addScrollerListener(DataScrollerListener listener) {
+ addFacesListener(listener);
+ }
- public void removeScrollerListener(DataScrollerListener listener) {
- removeFacesListener(listener);
- }
+ public DataScrollerListener[] getScrollerListeners() {
+ return (DataScrollerListener[]) getFacesListeners(DataScrollerListener.class);
+ }
-
- public void broadcast(FacesEvent event) throws AbortProcessingException {
- super.broadcast(event);
-
- if (event instanceof DataScrollerEvent) {
- DataScrollerEvent dataScrollerEvent = (DataScrollerEvent) event;
+ public void removeScrollerListener(DataScrollerListener listener) {
+ removeFacesListener(listener);
+ }
- updateModel(dataScrollerEvent.getPage());
+ public void broadcast(FacesEvent event) throws AbortProcessingException {
+ super.broadcast(event);
- FacesContext facesContext = getFacesContext();
-
- MethodExpression scrollerListener =
(MethodExpression)getStateHelper().eval(PropertyKeys.scrollerListener);
- if (scrollerListener != null) {
- scrollerListener.invoke(facesContext.getELContext(), new Object[]{event});
- }
-
- UIComponent dataTable = getDataTable();
-
- List <UIDataScroller> dataScrollers =
DataScrollerUtils.findDataScrollers(dataTable);
- for(UIDataScroller dataScroller: dataScrollers) {
-
facesContext.getPartialViewContext().getRenderIds().add(dataScroller.getClientId(facesContext));
- }
-
- String dataTableId = dataTable.getClientId(facesContext);
- if(dataTable instanceof PartiallyEncodedComponent) {
- dataTableId += "@body";
- }
-
- facesContext.getPartialViewContext().getRenderIds().add(dataTableId);
- }
- }
+ if (event instanceof DataScrollerEvent) {
+ DataScrollerEvent dataScrollerEvent = (DataScrollerEvent) event;
- /**
- * Finds the dataTable which id is mapped to the "for" property
- *
- * @return the dataTable component
- */
-
- public UIComponent getDataTable() {
- String forAttribute = (String)getStateHelper().get(PropertyKeys.forComponent);
- UIComponent forComp;
-
- if (forAttribute == null) {
- forComp = this;
-
- while ((forComp = forComp.getParent()) != null) {
- if (forComp instanceof UIData || forComp instanceof UIDataAdaptor) {
- getStateHelper().put(PropertyKeys.forComponent, forComp.getId());
- return forComp;
- }
- }
- throw new FacesException("could not find dataTable for datascroller " +
this.getId());
-
- } else {
- forComp = RendererUtils.getInstance().findComponentFor(this, forAttribute);
- }
-
- if (forComp == null) {
- throw new IllegalArgumentException("could not find dataTable with id
'" + forAttribute + "'");
- } else if (!((forComp instanceof UIData) || (forComp instanceof UIDataAdaptor))) {
-
- throw new IllegalArgumentException( "component with id '" +
forAttribute
- + "' must be of type " + UIData.class.getName() + " or " +
UIDataAdaptor.class
- + ", not type "
- + forComp.getClass().getName());
- }
-
- return forComp;
- }
-
- private int getFastStepOrDefault() {
- return (Integer)getStateHelper().eval(PropertyKeys.fastStep,1);
- }
+ updateModel(dataScrollerEvent.getPage());
- public int getPageForFacet(String facetName) {
- if (facetName == null) {
- throw new NullPointerException();
- }
+ FacesContext facesContext = getFacesContext();
- int newPage = 1;
- int pageCount = getPageCount();
-
- if (FIRST_FACET_NAME.equals(facetName)) {
- newPage = 1;
- } else if (LAST_FACET_NAME.equals(facetName)) {
- newPage = pageCount > 0 ? pageCount : 1;
- } else if (FAST_FORWARD_FACET_NAME.equals(facetName)) {
- newPage = getPage() + getFastStepOrDefault();
- } else if (FAST_REWIND_FACET_NAME.equals(facetName)) {
- newPage = getPage() - getFastStepOrDefault();
- } else {
- try {
- newPage = Integer.parseInt(facetName.toString());
- } catch (NumberFormatException e) {
- throw new FacesException(e.getLocalizedMessage(), e);
- }
- }
+ MethodExpression scrollerListener = (MethodExpression)
getStateHelper().eval(PropertyKeys.scrollerListener);
+ if (scrollerListener != null) {
+ scrollerListener.invoke(facesContext.getELContext(), new Object[] { event
});
+ }
- if (newPage >= 1 && newPage <= pageCount) {
- return newPage;
- } else {
- return 0;
- }
- }
+ UIComponent dataTable = getDataTable();
- public int getPageCount(UIComponent data) {
- int rowCount = getRowCount(data);
- int rows = getRows(data);
- return getPageCount(data, rowCount, rows);
- }
-
- public int getPageCount(UIComponent data, int rowCount, int rows) {
- return DataScrollerUtils.getPageCount(data, rowCount, rows);
- }
+ List<UIDataScroller> dataScrollers =
DataScrollerUtils.findDataScrollers(dataTable);
+ for (UIDataScroller dataScroller : dataScrollers) {
+
facesContext.getPartialViewContext().getRenderIds().add(dataScroller.getClientId(facesContext));
+ }
- /** @return the page count of the uidata */
- public int getPageCount() {
- return getPageCount(getDataTable());
- }
+ String dataTableId = dataTable.getClientId(facesContext);
+ if (dataTable instanceof PartiallyEncodedComponent) {
+ dataTableId += "@body";
+ }
- public int getRowCount(UIComponent data) {
- return (Integer)data.getAttributes().get("rowCount");
- }
+ facesContext.getPartialViewContext().getRenderIds().add(dataTableId);
+ }
+ }
- /** @return int */
- public int getRowCount() {
- return getRowCount(getDataTable());
- }
+ /**
+ * Finds the dataTable which id is mapped to the "for" property
+ *
+ * @return the dataTable component
+ */
- public int getRows(UIComponent data) {
- return DataScrollerUtils.getRows(data);
- }
+ public UIComponent getDataTable() {
+ String forAttribute = (String) getStateHelper().get(PropertyKeys.forComponent);
+ UIComponent forComp;
- // facet getter methods
- public UIComponent getFirst() {
- return getFacet(FIRST_FACET_NAME);
- }
+ if (forAttribute == null) {
+ forComp = this;
- public UIComponent getLast() {
- return getFacetByKey(LAST_FACET_NAME);
- }
+ while ((forComp = forComp.getParent()) != null) {
+ if (forComp instanceof UIData || forComp instanceof UIDataAdaptor) {
+ getStateHelper().put(PropertyKeys.forComponent, forComp.getId());
+ return forComp;
+ }
+ }
+ throw new FacesException("could not find dataTable for datascroller
" + this.getId());
- public UIComponent getFastForward() {
- return getFacetByKey(FAST_FORWARD_FACET_NAME);
- }
+ } else {
+ forComp = RendererUtils.getInstance().findComponentFor(this, forAttribute);
+ }
- public UIComponent getFastRewind() {
- return getFacetByKey(FAST_REWIND_FACET_NAME);
- }
+ if (forComp == null) {
+ throw new IllegalArgumentException("could not find dataTable with id
'" + forAttribute + "'");
+ } else if (!((forComp instanceof UIData) || (forComp instanceof UIDataAdaptor)))
{
- private UIComponent getFacetByKey(String key) {
- return getFacet(key.toString());
- }
-
- private static boolean isRendered(UIComponent component) {
- UIComponent c = component;
- while (c != null) {
- if (!c.isRendered()) {
- return false;
- }
- c = c.getParent();
- }
+ throw new IllegalArgumentException("component with id '" +
forAttribute + "' must be of type "
+ + UIData.class.getName() + " or " + UIDataAdaptor.class +
", not type " + forComp.getClass().getName());
+ }
- return true;
- }
-
- public void setPage(int newPage) {
- this.page = newPage;
- }
+ return forComp;
+ }
- public int getPage() {
-
- UIComponent dataTable = getDataTable();
- Map<String, Object> attributes = dataTable.getAttributes();
-
- FacesContext facesContext = getFacesContext();
- Integer state = (Integer) attributes.get(dataTable.getClientId(facesContext)+
SCROLLER_STATE_ATTRIBUTE);
+ private int getFastStepOrDefault() {
+ return (Integer) getStateHelper().eval(PropertyKeys.fastStep, 1);
+ }
- if (state != null) {
- return state;
- }
-
- if (this.page != null) {
- return page;
- }
-
- ValueExpression ve = getValueExpression("page");
- if (ve != null) {
- try {
- Integer pageObject = (Integer) ve.getValue(getFacesContext().getELContext());
+ public int getPageForFacet(String facetName) {
+ if (facetName == null) {
+ throw new NullPointerException();
+ }
- if (pageObject != null) {
- return pageObject;
- }
- } catch (ELException e) {
- throw new FacesException(e);
- }
- }
-
- return 1;
- }
-
- private void updateModel(int newPage) {
-
- FacesContext facesContext = getFacesContext();
- UIComponent dataTable = getDataTable();
+ int newPage = 1;
+ int pageCount = getPageCount();
- if (isRendered(dataTable)) {
- dataTable.getAttributes().put("first", (newPage - 1) *
getRows(dataTable));
- }
-
- Map<String, Object> attributes = dataTable.getAttributes();
- attributes.put(dataTable.getClientId(facesContext) + SCROLLER_STATE_ATTRIBUTE,
newPage);
-
- ValueExpression ve = getValueExpression("page");
- if (ve != null) {
- try {
- ve.setValue(facesContext.getELContext(), newPage);
- attributes.remove(dataTable.getClientId(facesContext) + SCROLLER_STATE_ATTRIBUTE);
- } catch (ELException e) {
- String messageStr = e.getMessage();
- Throwable result = e.getCause();
- while (null != result &&
- result.getClass().isAssignableFrom(ELException.class)) {
- messageStr = result.getMessage();
- result = result.getCause();
- }
- FacesMessage message;
- if (null == messageStr) {
- message =
- MessageUtil.getMessage(facesContext, UIInput.UPDATE_MESSAGE_ID,
- new Object[] { MessageUtil.getLabel(
- facesContext, this) });
- } else {
- message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
- messageStr,
- messageStr);
- }
- facesContext.getExternalContext().log(message.getSummary(), result);
- facesContext.addMessage(getClientId(facesContext), message);
- facesContext.renderResponse();
- } catch (IllegalArgumentException e) {
- FacesMessage message =
- MessageUtil.getMessage(facesContext, UIInput.UPDATE_MESSAGE_ID,
- new Object[] { MessageUtil.getLabel(
- facesContext, this) });
- facesContext.getExternalContext().log(message.getSummary(), e);
- facesContext.addMessage(getClientId(facesContext), message);
- facesContext.renderResponse();
- } catch (Exception e) {
- FacesMessage message =
- MessageUtil.getMessage(facesContext, UIInput.UPDATE_MESSAGE_ID,
- new Object[] { MessageUtil.getLabel(
- facesContext, this) });
- facesContext.getExternalContext().log(message.getSummary(), e);
- facesContext.addMessage(getClientId(facesContext), message);
- facesContext.renderResponse();
- }
- }
- }
+ if (FIRST_FACET_NAME.equals(facetName)) {
+ newPage = 1;
+ } else if (LAST_FACET_NAME.equals(facetName)) {
+ newPage = pageCount > 0 ? pageCount : 1;
+ } else if (FAST_FORWARD_FACET_NAME.equals(facetName)) {
+ newPage = getPage() + getFastStepOrDefault();
+ } else if (FAST_REWIND_FACET_NAME.equals(facetName)) {
+ newPage = getPage() - getFastStepOrDefault();
+ } else {
+ try {
+ newPage = Integer.parseInt(facetName.toString());
+ } catch (NumberFormatException e) {
+ throw new FacesException(e.getLocalizedMessage(), e);
+ }
+ }
- public boolean isLocalPageSet() {
- return page != null;
- }
+ if (newPage >= 1 && newPage <= pageCount) {
+ return newPage;
+ } else {
+ return 0;
+ }
+ }
- public void resetLocalPage() {
- page = null;
- }
-
- @Override
- public String getFamily() {
- return COMPONENT_FAMILY;
- }
-
- @Override
+ public int getPageCount(UIComponent data) {
+ int rowCount = getRowCount(data);
+ int rows = getRows(data);
+ return getPageCount(data, rowCount, rows);
+ }
+
+ public int getPageCount(UIComponent data, int rowCount, int rows) {
+ return DataScrollerUtils.getPageCount(data, rowCount, rows);
+ }
+
+ /** @return the page count of the uidata */
+ public int getPageCount() {
+ return getPageCount(getDataTable());
+ }
+
+ public int getRowCount(UIComponent data) {
+ return (Integer) data.getAttributes().get("rowCount");
+ }
+
+ /** @return int */
+ public int getRowCount() {
+ return getRowCount(getDataTable());
+ }
+
+ public int getRows(UIComponent data) {
+ return DataScrollerUtils.getRows(data);
+ }
+
+ // facet getter methods
+ public UIComponent getFirst() {
+ return getFacet(FIRST_FACET_NAME);
+ }
+
+ public UIComponent getLast() {
+ return getFacetByKey(LAST_FACET_NAME);
+ }
+
+ public UIComponent getFastForward() {
+ return getFacetByKey(FAST_FORWARD_FACET_NAME);
+ }
+
+ public UIComponent getFastRewind() {
+ return getFacetByKey(FAST_REWIND_FACET_NAME);
+ }
+
+ private UIComponent getFacetByKey(String key) {
+ return getFacet(key.toString());
+ }
+
+ private static boolean isRendered(UIComponent component) {
+ UIComponent c = component;
+ while (c != null) {
+ if (!c.isRendered()) {
+ return false;
+ }
+ c = c.getParent();
+ }
+
+ return true;
+ }
+
+ public void setPage(int newPage) {
+ this.page = newPage;
+ }
+
+ public int getPage() {
+
+ UIComponent dataTable = getDataTable();
+ Map<String, Object> attributes = dataTable.getAttributes();
+
+ FacesContext facesContext = getFacesContext();
+ Integer state = (Integer) attributes.get(dataTable.getClientId(facesContext) +
SCROLLER_STATE_ATTRIBUTE);
+
+ if (state != null) {
+ return state;
+ }
+
+ if (this.page != null) {
+ return page;
+ }
+
+ ValueExpression ve = getValueExpression("page");
+ if (ve != null) {
+ try {
+ Integer pageObject = (Integer)
ve.getValue(getFacesContext().getELContext());
+
+ if (pageObject != null) {
+ return pageObject;
+ }
+ } catch (ELException e) {
+ throw new FacesException(e);
+ }
+ }
+
+ return 1;
+ }
+
+ private void updateModel(int newPage) {
+
+ FacesContext facesContext = getFacesContext();
+ UIComponent dataTable = getDataTable();
+
+ if (isRendered(dataTable)) {
+ dataTable.getAttributes().put("first", (newPage - 1) *
getRows(dataTable));
+ }
+
+ Map<String, Object> attributes = dataTable.getAttributes();
+ attributes.put(dataTable.getClientId(facesContext) + SCROLLER_STATE_ATTRIBUTE,
newPage);
+
+ ValueExpression ve = getValueExpression("page");
+ if (ve != null) {
+ try {
+ ve.setValue(facesContext.getELContext(), newPage);
+ attributes.remove(dataTable.getClientId(facesContext) +
SCROLLER_STATE_ATTRIBUTE);
+ } catch (ELException e) {
+ String messageStr = e.getMessage();
+ Throwable result = e.getCause();
+ while (null != result &&
result.getClass().isAssignableFrom(ELException.class)) {
+ messageStr = result.getMessage();
+ result = result.getCause();
+ }
+ FacesMessage message;
+ if (null == messageStr) {
+ message = MessageUtil.getMessage(facesContext,
UIInput.UPDATE_MESSAGE_ID,
+ new Object[] { MessageUtil.getLabel(facesContext, this) });
+ } else {
+ message = new FacesMessage(FacesMessage.SEVERITY_ERROR, messageStr,
messageStr);
+ }
+ facesContext.getExternalContext().log(message.getSummary(), result);
+ facesContext.addMessage(getClientId(facesContext), message);
+ facesContext.renderResponse();
+ } catch (IllegalArgumentException e) {
+ FacesMessage message = MessageUtil.getMessage(facesContext,
UIInput.UPDATE_MESSAGE_ID,
+ new Object[] { MessageUtil.getLabel(facesContext, this) });
+ facesContext.getExternalContext().log(message.getSummary(), e);
+ facesContext.addMessage(getClientId(facesContext), message);
+ facesContext.renderResponse();
+ } catch (Exception e) {
+ FacesMessage message = MessageUtil.getMessage(facesContext,
UIInput.UPDATE_MESSAGE_ID,
+ new Object[] { MessageUtil.getLabel(facesContext, this) });
+ facesContext.getExternalContext().log(message.getSummary(), e);
+ facesContext.addMessage(getClientId(facesContext), message);
+ facesContext.renderResponse();
+ }
+ }
+ }
+
+ public boolean isLocalPageSet() {
+ return page != null;
+ }
+
+ public void resetLocalPage() {
+ page = null;
+ }
+
+ @Override
+ public String getFamily() {
+ return COMPONENT_FAMILY;
+ }
+
+ @Override
public Object getIterationState(FacesContext context) {
- return new Object[] {this.page};
+ return new Object[] { this.page };
}
@Override
public void setIterationState(FacesContext context, Object state) {
- if(state != null) {
- Object [] stateObject = (Object[])state;
- this.page = (Integer)stateObject[0];
+ if (state != null) {
+ Object[] stateObject = (Object[]) state;
+ this.page = (Integer) stateObject[0];
} else {
this.page = null;
}
Modified:
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/event/DataTablePreRenderListener.java
===================================================================
---
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/event/DataTablePreRenderListener.java 2010-05-03
09:58:02 UTC (rev 16866)
+++
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/event/DataTablePreRenderListener.java 2010-05-03
10:22:46 UTC (rev 16867)
@@ -22,30 +22,30 @@
import org.slf4j.Logger;
public class DataTablePreRenderListener implements SystemEventListener {
-
- private static final Logger log = RichfacesLogger.COMPONENTS.getLogger();
-
-
+
+ private static final Logger LOG = RichfacesLogger.COMPONENTS.getLogger();
+
@Override
public boolean isListenerForSource(Object source) {
return ((source instanceof UIDataAdaptor) || (source instanceof UIData));
}
-
- public UIDataScroller processActiveDatascroller(FacesContext facesContext,
List<UIDataScroller> dataScrollers, UIComponent dataTable) {
+
+ public UIDataScroller processActiveDatascroller(FacesContext facesContext,
List<UIDataScroller> dataScrollers,
+ UIComponent dataTable) {
UIDataScroller activeComponent = null;
List<Object> values = new ArrayList<Object>(dataScrollers.size());
-
+
String stateKey = dataTable.getClientId(facesContext) +
UIDataScroller.SCROLLER_STATE_ATTRIBUTE;
Map<String, Object> attributes = dataTable.getAttributes();
Object pageValue = attributes.get(stateKey);
-
+
boolean valid = true;
-
- if(pageValue == null) {
-
+
+ if (pageValue == null) {
+
for (UIDataScroller datascroller : dataScrollers) {
Object nextPageValue = null;
-
+
if (datascroller.isLocalPageSet()) {
nextPageValue = datascroller.getPage();
attributes.put(stateKey, nextPageValue);
@@ -53,52 +53,52 @@
} else {
nextPageValue = datascroller.getValueExpression("page");
}
-
+
if (!values.isEmpty() && !same(values.get(values.size() - 1),
nextPageValue)) {
valid = false;
}
-
+
values.add(nextPageValue);
-
+
if (nextPageValue != null) {
activeComponent = datascroller;
- }
+ }
}
-
+
}
-
- if(activeComponent == null) {
- activeComponent = dataScrollers.get(dataScrollers.size()-1);
+
+ if (activeComponent == null) {
+ activeComponent = dataScrollers.get(dataScrollers.size() - 1);
}
-
+
if (!valid) {
String formattedMessage = getPageDifferentMessage(facesContext,
activeComponent, dataScrollers, values);
- log.error(formattedMessage);
-
+ LOG.error(formattedMessage);
+
}
-
+
return activeComponent;
}
-
+
@Override
public void processEvent(SystemEvent event) throws AbortProcessingException {
- UIComponent dataTable = (UIComponent)event.getSource();
+ UIComponent dataTable = (UIComponent) event.getSource();
List<UIDataScroller> dataScrollers =
DataScrollerUtils.findDataScrollers(dataTable);
-
- if(!dataScrollers.isEmpty()) {
+ if (!dataScrollers.isEmpty()) {
+
FacesContext facesContext = FacesContext.getCurrentInstance();
-
+
UIDataScroller activeComponent = processActiveDatascroller(facesContext,
dataScrollers, dataTable);
-
+
int rowCount = DataScrollerUtils.getRowCount(dataTable);
int rows = DataScrollerUtils.getRows(dataTable);
-
+
Integer pageCount = DataScrollerUtils.getPageCount(dataTable, rowCount,
rows);
-
+
int page = activeComponent.getPage();
int newPage = -1;
-
+
if (page < 1) {
newPage = 1;
} else if (page > pageCount) {
@@ -107,26 +107,27 @@
if (newPage != -1) {
Object label = MessageUtil.getLabel(facesContext, activeComponent);
- String formattedMessage =
Messages.getMessage(Messages.DATASCROLLER_PAGE_MISSING, new Object[] {label, page,
pageCount, newPage});
+ String formattedMessage =
Messages.getMessage(Messages.DATASCROLLER_PAGE_MISSING, new Object[] { label,
+ page, pageCount, newPage });
- log.warn(formattedMessage);
-
+ LOG.warn(formattedMessage);
+
page = newPage;
- dataTable.getAttributes().put(dataTable.getClientId(facesContext) +
UIDataScroller.SCROLLER_STATE_ATTRIBUTE, page);
+ dataTable.getAttributes().put(
+ dataTable.getClientId(facesContext) +
UIDataScroller.SCROLLER_STATE_ATTRIBUTE, page);
}
-
int first;
-
+
String lastPageMode = activeComponent.getLastPageMode();
-
+
if (lastPageMode == null) {
lastPageMode = UIDataScroller.PAGEMODE_SHORT;
- } else if (!UIDataScroller.PAGEMODE_SHORT.equals(lastPageMode)
- &&
!UIDataScroller.PAGEMODE_FULL.equals(lastPageMode)) {
+ } else if (!UIDataScroller.PAGEMODE_SHORT.equals(lastPageMode)
+ && !UIDataScroller.PAGEMODE_FULL.equals(lastPageMode)) {
throw new IllegalArgumentException("Illegal value of
'lastPageMode' attribute: '" + lastPageMode + "'");
}
-
+
if (page != pageCount || UIDataScroller.PAGEMODE_SHORT.equals(lastPageMode))
{
first = (page - 1) * rows;
} else {
@@ -138,41 +139,44 @@
dataTable.getAttributes().put("first", first);
}
}
-
- private String getPageDifferentMessage(FacesContext facesContext, UIDataScroller
activeComponent, List<UIDataScroller> dataScrollers, List<Object> values) {
+
+ private String getPageDifferentMessage(FacesContext facesContext, UIDataScroller
activeComponent,
+ List<UIDataScroller> dataScrollers, List<Object> values) {
StringBuilder builder = new StringBuilder("\n[");
Iterator<UIDataScroller> scrollerItr = dataScrollers.iterator();
Iterator<Object> valueItr = values.iterator();
-
+
while (scrollerItr.hasNext()) {
UIDataScroller next = scrollerItr.next();
builder.append(MessageUtil.getLabel(facesContext, next));
builder.append(": ");
-
+
Object value = valueItr.next();
if (value instanceof ValueExpression) {
builder.append(((ValueExpression) value).getExpressionString());
} else {
builder.append(value);
}
-
+
builder.append(scrollerItr.hasNext() ? ",\n" : "]");
}
-
- return Messages.getMessage(Messages.DATASCROLLER_PAGES_DIFFERENT, new Object[]
{MessageUtil.getLabel(facesContext, activeComponent), builder});
-
+
+ return Messages.getMessage(Messages.DATASCROLLER_PAGES_DIFFERENT, new Object[] {
+ MessageUtil.getLabel(facesContext, activeComponent), builder });
+
}
-
+
private static boolean same(Object o1, Object o2) {
if (o1 instanceof ValueExpression && o2 instanceof ValueExpression) {
ValueExpression ve1 = (ValueExpression) o1;
ValueExpression ve2 = (ValueExpression) o2;
-
- if (same(ve1.getExpressionString(), ve2.getExpressionString()) &&
same(ve1.getExpectedType(), ve2.getExpectedType())) {
+
+ if (same(ve1.getExpressionString(), ve2.getExpressionString())
+ && same(ve1.getExpectedType(), ve2.getExpectedType())) {
return true;
}
}
-
+
return (o1 != null && o1.equals(o2)) || (o1 == null && o2 ==
null);
}
}
Modified:
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/renderkit/ControlsState.java
===================================================================
---
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/renderkit/ControlsState.java 2010-05-03
09:58:02 UTC (rev 16866)
+++
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/renderkit/ControlsState.java 2010-05-03
10:22:46 UTC (rev 16867)
@@ -23,98 +23,97 @@
/**
* @author Nick Belaevski - nbelaevski(a)exadel.com
- *
+ *
*/
public class ControlsState {
-
+
private boolean firstRendered = true;
-
+
private boolean firstEnabled = true;
- private boolean lastRendered = true;
-
- private boolean lastEnabled = true;
+ private boolean lastRendered = true;
- private boolean fastRewindRendered = true;
+ private boolean lastEnabled = true;
- private boolean fastRewindEnabled = true;
+ private boolean fastRewindRendered = true;
- private boolean fastForwardRendered = true;
-
- private boolean fastForwardEnabled = true;
-
- private boolean controlsSeparatorRendered = false;
-
-
+ private boolean fastRewindEnabled = true;
+
+ private boolean fastForwardRendered = true;
+
+ private boolean fastForwardEnabled = true;
+
+ private boolean controlsSeparatorRendered = false;
+
public boolean getFirstRendered() {
- return firstRendered;
- }
-
- public void setFirstRendered(boolean firstRendered) {
- this.firstRendered = firstRendered;
- }
-
- public boolean getFirstEnabled() {
- return firstEnabled;
- }
-
- public void setFirstEnabled(boolean firstEnabled) {
- this.firstEnabled = firstEnabled;
- }
-
- public boolean getLastRendered() {
- return lastRendered;
- }
-
- public void setLastRendered(boolean lastRendered) {
- this.lastRendered = lastRendered;
- }
-
- public boolean getLastEnabled() {
- return lastEnabled;
- }
-
- public void setLastEnabled(boolean lastEnabled) {
- this.lastEnabled = lastEnabled;
- }
-
- public boolean getFastRewindRendered() {
- return fastRewindRendered;
- }
-
- public void setFastRewindRendered(boolean fastRewindRendered) {
- this.fastRewindRendered = fastRewindRendered;
- }
-
- public boolean getFastRewindEnabled() {
- return fastRewindEnabled;
- }
-
- public void setFastRewindEnabled(boolean fastRewindEnabled) {
- this.fastRewindEnabled = fastRewindEnabled;
- }
-
- public boolean getFastForwardRendered() {
- return fastForwardRendered;
- }
-
- public void setFastForwardRendered(boolean fastForwardRendered) {
- this.fastForwardRendered = fastForwardRendered;
- }
-
- public boolean getFastForwardEnabled() {
- return fastForwardEnabled;
- }
-
- public void setFastForwardEnabled(boolean fastForwardEnabled) {
- this.fastForwardEnabled = fastForwardEnabled;
- }
-
- public boolean isControlsSeparatorRendered() {
- return controlsSeparatorRendered;
- }
-
- public void setControlsSeparatorRendered(boolean controlsSeparatorRendered) {
- this.controlsSeparatorRendered = controlsSeparatorRendered;
- }
+ return firstRendered;
+ }
+
+ public void setFirstRendered(boolean firstRendered) {
+ this.firstRendered = firstRendered;
+ }
+
+ public boolean getFirstEnabled() {
+ return firstEnabled;
+ }
+
+ public void setFirstEnabled(boolean firstEnabled) {
+ this.firstEnabled = firstEnabled;
+ }
+
+ public boolean getLastRendered() {
+ return lastRendered;
+ }
+
+ public void setLastRendered(boolean lastRendered) {
+ this.lastRendered = lastRendered;
+ }
+
+ public boolean getLastEnabled() {
+ return lastEnabled;
+ }
+
+ public void setLastEnabled(boolean lastEnabled) {
+ this.lastEnabled = lastEnabled;
+ }
+
+ public boolean getFastRewindRendered() {
+ return fastRewindRendered;
+ }
+
+ public void setFastRewindRendered(boolean fastRewindRendered) {
+ this.fastRewindRendered = fastRewindRendered;
+ }
+
+ public boolean getFastRewindEnabled() {
+ return fastRewindEnabled;
+ }
+
+ public void setFastRewindEnabled(boolean fastRewindEnabled) {
+ this.fastRewindEnabled = fastRewindEnabled;
+ }
+
+ public boolean getFastForwardRendered() {
+ return fastForwardRendered;
+ }
+
+ public void setFastForwardRendered(boolean fastForwardRendered) {
+ this.fastForwardRendered = fastForwardRendered;
+ }
+
+ public boolean getFastForwardEnabled() {
+ return fastForwardEnabled;
+ }
+
+ public void setFastForwardEnabled(boolean fastForwardEnabled) {
+ this.fastForwardEnabled = fastForwardEnabled;
+ }
+
+ public boolean isControlsSeparatorRendered() {
+ return controlsSeparatorRendered;
+ }
+
+ public void setControlsSeparatorRendered(boolean controlsSeparatorRendered) {
+ this.controlsSeparatorRendered = controlsSeparatorRendered;
+ }
}
Modified:
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/renderkit/DataScrollerBaseRenderer.java
===================================================================
---
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/renderkit/DataScrollerBaseRenderer.java 2010-05-03
09:58:02 UTC (rev 16866)
+++
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/renderkit/DataScrollerBaseRenderer.java 2010-05-03
10:22:46 UTC (rev 16867)
@@ -42,47 +42,42 @@
import org.richfaces.component.UIDataScroller;
import org.richfaces.event.DataScrollerEvent;
-
-@ResourceDependencies( {@ResourceDependency(library = "javax.faces", name =
"jsf-uncompressed.js"),
- @ResourceDependency(name = "jquery.js"),
- @ResourceDependency(name = "richfaces.js"),
- @ResourceDependency(name= "richfaces-event.js"),
- @ResourceDependency(name = "richfaces-queue.js"),
- @ResourceDependency(name = "richfaces-base-component.js"),
- @ResourceDependency(name = "script/datascroller.js"),
+@ResourceDependencies( { @ResourceDependency(library = "javax.faces", name =
"jsf-uncompressed.js"),
+ @ResourceDependency(name = "jquery.js"), @ResourceDependency(name =
"richfaces.js"),
+ @ResourceDependency(name = "richfaces-event.js"), @ResourceDependency(name
= "richfaces-queue.js"),
+ @ResourceDependency(name = "richfaces-base-component.js"),
@ResourceDependency(name = "script/datascroller.js"),
@ResourceDependency(name = "css/datascroller.css")
-
-})
+})
public class DataScrollerBaseRenderer extends RendererBase {
public void doDecode(FacesContext context, UIComponent component) {
- Map <String, String> paramMap =
context.getExternalContext().getRequestParameterMap();
-
- String clientId = component.getClientId(context);
- String param = (String) paramMap.get(clientId + ":page");
-
- if (param != null) {
-
- UIDataScroller scroller = (UIDataScroller) component;
- int newPage = scroller.getPageForFacet(param);
- int page = scroller.getPage();
-
- if (newPage != 0 && newPage != page) {
- new DataScrollerEvent(scroller,String.valueOf(page), param, newPage).queue();
- }
- }
+ Map<String, String> paramMap =
context.getExternalContext().getRequestParameterMap();
+
+ String clientId = component.getClientId(context);
+ String param = (String) paramMap.get(clientId + ":page");
+
+ if (param != null) {
+
+ UIDataScroller scroller = (UIDataScroller) component;
+ int newPage = scroller.getPageForFacet(param);
+ int page = scroller.getPage();
+
+ if (newPage != 0 && newPage != page) {
+ new DataScrollerEvent(scroller, String.valueOf(page), param,
newPage).queue();
+ }
+ }
}
-
+
public ControlsState getControlsState(FacesContext context, UIComponent component) {
-
- int fastStep = (Integer)component.getAttributes().get("fastStep");
- int pageIndex = (Integer)component.getAttributes().get("page");
- int pageCount = (Integer)component.getAttributes().get("pageCount");
-
+
+ int fastStep = (Integer) component.getAttributes().get("fastStep");
+ int pageIndex = (Integer) component.getAttributes().get("page");
+ int pageCount = (Integer) component.getAttributes().get("pageCount");
+
int minPageIdx = 1;
int maxPageIdx = pageCount;
-
+
if (fastStep <= 1) {
fastStep = 1;
}
@@ -111,13 +106,11 @@
useForwFast = false;
}
- boolean isAuto;
+ String boundaryControls = (String)
component.getAttributes().get("boundaryControls");
+ String fastControls = (String)
component.getAttributes().get("fastControls");
- String boundaryControls =
(String)component.getAttributes().get("boundaryControls");
- String fastControls =
(String)component.getAttributes().get("fastControls");
-
- if ((isAuto = "auto".equals(boundaryControls)) ||
"show".equals(
- boundaryControls)) {
+ boolean isAuto = "auto".equals(boundaryControls);
+ if (isAuto || "show".equals(boundaryControls)) {
if (isAuto) {
controlsState.setFirstRendered(useFirst);
controlsState.setLastRendered(useLast);
@@ -130,8 +123,8 @@
controlsState.setLastRendered(false);
}
- if ((isAuto = "auto".equals(fastControls)) || "show".equals(
- fastControls)) {
+ isAuto = "auto".equals(fastControls);
+ if (isAuto || "show".equals(fastControls)) {
if (isAuto) {
controlsState.setFastForwardRendered(useForwFast);
controlsState.setFastRewindRendered(useBackFast);
@@ -146,33 +139,34 @@
UIComponent controlsSeparatorFacet =
component.getFacet("controlsSeparator");
if (controlsSeparatorFacet != null &&
controlsSeparatorFacet.isRendered()) {
- controlsState.setControlsSeparatorRendered(true);
+ controlsState.setControlsSeparatorRendered(true);
}
-
+
return controlsState;
}
- public Map<String,String> renderPager(ResponseWriter out, FacesContext context,
UIComponent component) throws IOException {
-
- int currentPage = (Integer)component.getAttributes().get("page");
- int maxPages = (Integer)component.getAttributes().get("maxPages");
- int pageCount = (Integer)component.getAttributes().get("pageCount");
+ public Map<String, String> renderPager(ResponseWriter out, FacesContext
context, UIComponent component)
+ throws IOException {
- Map<String,String> digital = new HashMap<String, String>();
+ int currentPage = (Integer) component.getAttributes().get("page");
+ int maxPages = (Integer) component.getAttributes().get("maxPages");
+ int pageCount = (Integer) component.getAttributes().get("pageCount");
+ Map<String, String> digital = new HashMap<String, String>();
+
if (pageCount <= 1) {
return digital;
}
-
+
if (maxPages <= 1) {
maxPages = 1;
}
-
+
int delta = maxPages / 2;
int pages;
int start;
-
+
if (pageCount > maxPages && currentPage > delta) {
pages = maxPages;
start = currentPage - pages / 2 - 1;
@@ -186,120 +180,124 @@
String clientId = component.getClientId(context);
- for (int i = start, size = start + pages; i < size; i++) {
+ int size = start + pages;
+ for (int i = start ; i < size; i++) {
boolean isCurrentPage = (i + 1 == currentPage);
String styleClass;
String style;
-
+
if (isCurrentPage) {
- styleClass =
(String)component.getAttributes().get("selectedStyleClass");
- style = (String)component.getAttributes().get("selectedStyle");
- } else {
- styleClass = (String)component.getAttributes().get("inactiveStyleClass");
- style = (String)component.getAttributes().get("inactiveStyle");
- }
-
- if (styleClass==null){
- styleClass="";
- }
+ styleClass = (String)
component.getAttributes().get("selectedStyleClass");
+ style = (String)
component.getAttributes().get("selectedStyle");
+ } else {
+ styleClass = (String)
component.getAttributes().get("inactiveStyleClass");
+ style = (String)
component.getAttributes().get("inactiveStyle");
+ }
+ if (styleClass == null) {
+ styleClass = "";
+ }
+
out.startElement(HTML.A_ELEMENT, component);
-
+
if (isCurrentPage) {
out.writeAttribute(HTML.CLASS_ATTRIBUTE, "ds_digital ds_current
" + styleClass, null);
} else {
out.writeAttribute(HTML.CLASS_ATTRIBUTE, "ds_digital " +
styleClass, null);
}
-
+
out.writeAttribute(HTML.HREF_ATTR, "javascript:void(0);", null);
-
-
+
if (null != style) {
out.writeAttribute(HTML.STYLE_ATTRIBUTE, style, null);
}
-
+
String page = Integer.toString(i + 1);
- String id = clientId+ "_ds_" + page;
-
- out.writeAttribute(HTML.ID_ATTRIBUTE,id, null);
-
+ String id = clientId + "_ds_" + page;
+
+ out.writeAttribute(HTML.ID_ATTRIBUTE, id, null);
+
digital.put(id, page);
out.writeText(page, null);
out.endElement(HTML.A_ELEMENT);
}
-
+
return digital;
}
-
- public Map<String, Map<String,String>> getControls(FacesContext context,
UIComponent component, ControlsState controlsState) {
- Map<String, Map<String, String>> controls = new HashMap<String,
Map<String,String>>();
+ public Map<String, Map<String, String>> getControls(FacesContext context,
UIComponent component,
+ ControlsState controlsState) {
+
+ Map<String, Map<String, String>> controls = new HashMap<String,
Map<String, String>>();
Map<String, String> right = new HashMap<String, String>();
Map<String, String> left = new HashMap<String, String>();
-
+
String clientId = component.getClientId(context);
-
- if(controlsState.getFirstRendered() && controlsState.getFirstEnabled())
{
+
+ if (controlsState.getFirstRendered() && controlsState.getFirstEnabled())
{
left.put(clientId + "_ds_f", UIDataScroller.FIRST_FACET_NAME);
}
-
- if(controlsState.getFastRewindRendered()&&
controlsState.getFastRewindEnabled()) {
+
+ if (controlsState.getFastRewindRendered() &&
controlsState.getFastRewindEnabled()) {
left.put(clientId + "_ds_fr",
UIDataScroller.FAST_REWIND_FACET_NAME);
}
-
- if(controlsState.getFastForwardRendered()&&
controlsState.getFastForwardEnabled()) {
+
+ if (controlsState.getFastForwardRendered() &&
controlsState.getFastForwardEnabled()) {
right.put(clientId + "_ds_ff",
UIDataScroller.FAST_FORWARD_FACET_NAME);
}
-
- if(controlsState.getLastRendered()&& controlsState.getLastEnabled()) {
+
+ if (controlsState.getLastRendered() && controlsState.getLastEnabled()) {
right.put(clientId + "_ds_l", UIDataScroller.LAST_FACET_NAME);
}
-
- if(!left.isEmpty()) {
+
+ if (!left.isEmpty()) {
controls.put("left", left);
}
-
- if(!right.isEmpty()) {
+
+ if (!right.isEmpty()) {
controls.put("right", right);
}
return controls;
}
-
- public void buildScript(ResponseWriter writer, FacesContext context, UIComponent
component, Map buttons, Map digitals) throws IOException {
-
+
+ public void buildScript(ResponseWriter writer, FacesContext context, UIComponent
component, Map buttons,
+ Map digitals) throws IOException {
+
JSFunction function = new JSFunction("new RichFaces.ui.DataScroller");
function.addParameter(component.getClientId(context));
-
+
Map<String, Object> options = new HashMap<String, Object>();
options.put("buttons", buttons);
options.put("digitals", digitals);
- options.put("currentPage",
(Integer)component.getAttributes().get("page"));
-
+ options.put("currentPage", (Integer)
component.getAttributes().get("page"));
+
function.addParameter(getSubmitFunction(context, component));
function.addParameter(options);
-
+
writer.write(function.toString());
}
-
+
public JSFunctionDefinition getSubmitFunction(FacesContext facesContext, UIComponent
component) {
- JSFunctionDefinition definition = new JSFunctionDefinition(JSReference.EVENT, new
JSReference("element"), new JSReference("data"));
-
- JSFunction function = AjaxRendererUtils.buildAjaxFunction(facesContext, component,
AjaxRendererUtils.AJAX_FUNCTION_NAME);
- AjaxEventOptions options = AjaxRendererUtils.buildEventOptions(facesContext,
component);
-
- Map<String, Object> parameters = options.getParameters();
- parameters.put(component.getClientId(facesContext) + ":page", new
JSLiteral("data.page"));
-
- function.addParameter(options);
-
- StringBuffer buffer = new StringBuffer();
- function.appendScript(buffer);
- definition.addToBody(buffer);
- return definition;
+ JSFunctionDefinition definition = new JSFunctionDefinition(JSReference.EVENT, new
JSReference("element"),
+ new JSReference("data"));
+
+ JSFunction function = AjaxRendererUtils.buildAjaxFunction(facesContext,
component,
+ AjaxRendererUtils.AJAX_FUNCTION_NAME);
+ AjaxEventOptions options = AjaxRendererUtils.buildEventOptions(facesContext,
component);
+
+ Map<String, Object> parameters = options.getParameters();
+ parameters.put(component.getClientId(facesContext) + ":page", new
JSLiteral("data.page"));
+
+ function.addParameter(options);
+
+ StringBuffer buffer = new StringBuffer();
+ function.appendScript(buffer);
+ definition.addToBody(buffer);
+ return definition;
}
-
+
public boolean getRendersChildren() {
return true;
}
Modified:
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/taglib/DatascrollerTagHandler.java
===================================================================
---
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/taglib/DatascrollerTagHandler.java 2010-05-03
09:58:02 UTC (rev 16866)
+++
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/taglib/DatascrollerTagHandler.java 2010-05-03
10:22:46 UTC (rev 16867)
@@ -33,45 +33,45 @@
import org.richfaces.component.UIDataScroller;
-
/**
* Created 11.03.2008
+ *
* @author Nick Belaevski
* @since 3.2
*/
public class DatascrollerTagHandler extends ComponentHandler {
- private static final MetaRule pageRule = new MetaRule() {
+ private static final MetaRule PAGERULE = new MetaRule() {
- public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget meta)
{
- if ("page".equals(name)) {
- return new PageMapper(attribute);
- } else {
- return null;
- }
- }
-
+ public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget
meta) {
+ if ("page".equals(name)) {
+ return new PageMapper(attribute);
+ } else {
+ return null;
+ }
+ }
+
};
-
+
private static final class PageMapper extends Metadata {
- private final TagAttribute page;
+ private final TagAttribute page;
- public PageMapper(TagAttribute attribute) {
- page = attribute;
- }
+ public PageMapper(TagAttribute attribute) {
+ page = attribute;
+ }
- public void applyMetadata(FaceletContext ctx, Object instance) {
- UIDataScroller datascroller = (UIDataScroller) instance;
- ValueExpression ve = page.getValueExpression(ctx, int.class);
- if (ve.isLiteralText()) {
- Integer value = (Integer) ve.getValue(ctx.getFacesContext().getELContext());
- datascroller.setPage(value);
- } else {
- datascroller.setValueExpression("page", ve);
- }
- }
+ public void applyMetadata(FaceletContext ctx, Object instance) {
+ UIDataScroller datascroller = (UIDataScroller) instance;
+ ValueExpression ve = page.getValueExpression(ctx, int.class);
+ if (ve.isLiteralText()) {
+ Integer value = (Integer)
ve.getValue(ctx.getFacesContext().getELContext());
+ datascroller.setPage(value);
+ } else {
+ datascroller.setValueExpression("page", ve);
+ }
+ }
}
@@ -81,7 +81,7 @@
protected MetaRuleset createMetaRuleset(Class type) {
MetaRuleset ruleset = super.createMetaRuleset(type);
- ruleset.addRule(pageRule);
+ ruleset.addRule(PAGERULE);
return ruleset;
}
}