diff options
Diffstat (limited to 'orkweb/src/net/sf/oreka/pages/RecSegmentsPage.java')
-rw-r--r-- | orkweb/src/net/sf/oreka/pages/RecSegmentsPage.java | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/orkweb/src/net/sf/oreka/pages/RecSegmentsPage.java b/orkweb/src/net/sf/oreka/pages/RecSegmentsPage.java new file mode 100644 index 0000000..f431c3c --- /dev/null +++ b/orkweb/src/net/sf/oreka/pages/RecSegmentsPage.java @@ -0,0 +1,171 @@ +/* + * Oreka -- A media capture and retrieval platform + * + * Copyright (C) 2005, orecx LLC + * + * http://www.orecx.com + * + * This program is free software, distributed under the terms of + * the GNU General Public License. + * Please refer to http://www.gnu.org/copyleft/gpl.html + * + */ + +/** + * + */ +package net.sf.oreka.pages; + +import java.util.ArrayList; +import java.util.List; + +import net.sf.oreka.services.RecSegmentFilter; +import net.sf.oreka.services.RecSegmentResult; +import net.sf.oreka.services.RecSegmentServiceHbn; +import net.sf.oreka.tapestry.TableState; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.apache.tapestry.IRequestCycle; +import org.apache.tapestry.event.PageEvent; +import org.apache.tapestry.event.PageRenderListener; +import org.apache.tapestry.html.BasePage; + +public abstract class RecSegmentsPage extends BasePage implements PageRenderListener { + + static Logger logger = Logger.getLogger(RecSegmentsPage.class); + + private String Foo = "page"; + + /** + * @return Returns the foo. + */ + public String getFoo() { + return Foo; + } + + /** + * @param foo The foo to set. + */ + public void setFoo(String foo) { + Foo = foo; + } + + public List getFields(){ + ArrayList list = new ArrayList(); + //list.add("recSegment.duration"); + //list.add("recSegment.localParty"); + list.add("ognl:foo"); + return list; + } + private String field; + + private int CurrentPage; + private int ResultsOffset; + private final int RESULTS_PER_PAGE = 4; + private int NumResults; + + + public abstract TableState getTableState(); + public abstract void setTableState(TableState state); + + public abstract RecSegmentFilter getRecSegmentFilter(); + public abstract void setRecSegmentFilter(RecSegmentFilter filter); + + public abstract RecSegmentResult getItem(); + public abstract void setItem(RecSegmentResult res); + + public abstract void setItems(List list); + public abstract List getItems(); + + public void formSubmit(IRequestCycle cycle) { + + //logger.debug("formSubmit"); + setRecSegmentFilter(getRecSegmentFilter()); + } + + public void pageBeginRender(PageEvent event) { + + updateResults(); + } + + public void pageFirstAction(IRequestCycle cycle) { + ResultsOffset = 0; + setRecSegmentFilter(getRecSegmentFilter()); + } + + public void pagePreviousAction(IRequestCycle cycle) { + ResultsOffset -= RESULTS_PER_PAGE; + if (ResultsOffset < 0) { + ResultsOffset = 0; + } + setRecSegmentFilter(getRecSegmentFilter()); + } + + public void pageNextAction(IRequestCycle cycle) { + ResultsOffset += RESULTS_PER_PAGE; + if (ResultsOffset >= NumResults) { + ResultsOffset = NumResults - RESULTS_PER_PAGE; + if (ResultsOffset < 0) { + ResultsOffset = 0; + } + } + logger.log(Level.INFO, "Next, new offset:" + ResultsOffset); + setRecSegmentFilter(getRecSegmentFilter()); + } + + public void pageLastAction(IRequestCycle cycle) { + ResultsOffset = NumResults - RESULTS_PER_PAGE; + if (ResultsOffset < 0) { + ResultsOffset = 0; + } + setRecSegmentFilter(getRecSegmentFilter()); + } + /** + * @return Returns the resultsOffset. + */ + public int getResultsOffset() { + return ResultsOffset; + } + + /** + * @param resultsOffset The resultsOffset to set. + */ + public void setResultsOffset(int resultsOffset) { + ResultsOffset = resultsOffset; + } + + private void updateResults() + { + logger.debug("UpdateResults: orderby:" + getTableState().getOrderBy()); + + RecSegmentServiceHbn srv = new RecSegmentServiceHbn(); + if (getRecSegmentFilter().isValid()) { + ArrayList results = new ArrayList(); + NumResults = srv.getResults(getRecSegmentFilter(), getTableState().getCurrentOffset(), getTableState().getResultsPerPage(), getTableState().getOrderBy(), getTableState().isAscending(), results); + getTableState().setNumResults(NumResults); + logger.debug("UpdateResults: Offset:" + ResultsOffset + " num results:" + NumResults); + setItems(results); + } + else { + logger.debug("UpdateResults: Invalid filter"); + } + } + /** + * @return Returns the field. + */ + public String getField() { + return field; + } + + /** + * @param field The field to set. + */ + public void setField(String field) { + this.field = field; + } + + + +} +
\ No newline at end of file |