summaryrefslogtreecommitdiff
path: root/orkweb/src/net/sf/oreka/pages/RecSegmentsPage.java
diff options
context:
space:
mode:
Diffstat (limited to 'orkweb/src/net/sf/oreka/pages/RecSegmentsPage.java')
-rw-r--r--orkweb/src/net/sf/oreka/pages/RecSegmentsPage.java171
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