From 25c5446b5e0ab6d534203097b351699b1a769c6a Mon Sep 17 00:00:00 2001 From: Henri Herscher Date: Thu, 20 Oct 2005 13:46:56 +0000 Subject: first checkin git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@3 09dcff7a-b715-0410-9601-b79a96267cd0 --- orkweb/src/net/sf/oreka/tapestry/MainMenu.html | 31 +++++ orkweb/src/net/sf/oreka/tapestry/MainMenu.java | 39 ++++++ orkweb/src/net/sf/oreka/tapestry/MainMenu.jwc | 8 ++ .../src/net/sf/oreka/tapestry/MainMenu.properties | 2 + orkweb/src/net/sf/oreka/tapestry/TableColumn.java | 68 ++++++++++ orkweb/src/net/sf/oreka/tapestry/TableHeader.html | 15 +++ orkweb/src/net/sf/oreka/tapestry/TableHeader.java | 81 ++++++++++++ orkweb/src/net/sf/oreka/tapestry/TableHeader.jwc | 13 ++ orkweb/src/net/sf/oreka/tapestry/TablePaging.html | 90 +++++++++++++ orkweb/src/net/sf/oreka/tapestry/TablePaging.java | 106 +++++++++++++++ orkweb/src/net/sf/oreka/tapestry/TablePaging.jwc | 17 +++ .../net/sf/oreka/tapestry/TablePaging.properties | 4 + orkweb/src/net/sf/oreka/tapestry/TableState.java | 143 +++++++++++++++++++++ orkweb/src/net/sf/oreka/tapestry/my.library | 13 ++ 14 files changed, 630 insertions(+) create mode 100644 orkweb/src/net/sf/oreka/tapestry/MainMenu.html create mode 100644 orkweb/src/net/sf/oreka/tapestry/MainMenu.java create mode 100644 orkweb/src/net/sf/oreka/tapestry/MainMenu.jwc create mode 100644 orkweb/src/net/sf/oreka/tapestry/MainMenu.properties create mode 100644 orkweb/src/net/sf/oreka/tapestry/TableColumn.java create mode 100644 orkweb/src/net/sf/oreka/tapestry/TableHeader.html create mode 100644 orkweb/src/net/sf/oreka/tapestry/TableHeader.java create mode 100644 orkweb/src/net/sf/oreka/tapestry/TableHeader.jwc create mode 100644 orkweb/src/net/sf/oreka/tapestry/TablePaging.html create mode 100644 orkweb/src/net/sf/oreka/tapestry/TablePaging.java create mode 100644 orkweb/src/net/sf/oreka/tapestry/TablePaging.jwc create mode 100644 orkweb/src/net/sf/oreka/tapestry/TablePaging.properties create mode 100644 orkweb/src/net/sf/oreka/tapestry/TableState.java create mode 100644 orkweb/src/net/sf/oreka/tapestry/my.library (limited to 'orkweb/src/net/sf/oreka/tapestry') diff --git a/orkweb/src/net/sf/oreka/tapestry/MainMenu.html b/orkweb/src/net/sf/oreka/tapestry/MainMenu.html new file mode 100644 index 0000000..8873c57 --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/MainMenu.html @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file diff --git a/orkweb/src/net/sf/oreka/tapestry/MainMenu.java b/orkweb/src/net/sf/oreka/tapestry/MainMenu.java new file mode 100644 index 0000000..2e4e49f --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/MainMenu.java @@ -0,0 +1,39 @@ +/* + * 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.tapestry; + +import org.apache.tapestry.BaseComponent; +import org.apache.tapestry.IRequestCycle; +import org.apache.tapestry.annotations.ComponentClass; +import org.apache.tapestry.annotations.Parameter; +import org.apache.tapestry.annotations.Persist; + +@ComponentClass +public abstract class MainMenu extends BaseComponent { + + public void myAction(IRequestCycle cycle) { + + setHighlight(!getHighlight()); + cycle.activate("Home"); + } + + @Persist + public abstract boolean getHighlight(); + public abstract void setHighlight(boolean highlight); + + @Parameter + public abstract String getPageName(); + public abstract void setPageName(String name); + +} diff --git a/orkweb/src/net/sf/oreka/tapestry/MainMenu.jwc b/orkweb/src/net/sf/oreka/tapestry/MainMenu.jwc new file mode 100644 index 0000000..b7c6e90 --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/MainMenu.jwc @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/orkweb/src/net/sf/oreka/tapestry/MainMenu.properties b/orkweb/src/net/sf/oreka/tapestry/MainMenu.properties new file mode 100644 index 0000000..22b8416 --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/MainMenu.properties @@ -0,0 +1,2 @@ +RecSegments=Browse +Home=Welcome \ No newline at end of file diff --git a/orkweb/src/net/sf/oreka/tapestry/TableColumn.java b/orkweb/src/net/sf/oreka/tapestry/TableColumn.java new file mode 100644 index 0000000..29de8f3 --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/TableColumn.java @@ -0,0 +1,68 @@ +/* + * 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.tapestry; + +public class TableColumn { + + String message; + String key; + boolean sortable; + /** + * @return Returns the isSortable. + */ + public boolean isSortable() { + return sortable; + } + + + /** + * @param isSortable The isSortable to set. + */ + public void setSortable(boolean sortable) { + this.sortable = sortable; + } + + + /** + * @return Returns the key. + */ + public String getKey() { + return key; + } + + /** + * @param key The key to set. + */ + public void setKey(String key) { + this.key = key; + } + + /** + * @return Returns the message. + */ + public String getMessage() { + return message; + } + + /** + * @param message The message to set. + */ + public void setMessage(String message) { + this.message = message; + } + +} diff --git a/orkweb/src/net/sf/oreka/tapestry/TableHeader.html b/orkweb/src/net/sf/oreka/tapestry/TableHeader.html new file mode 100644 index 0000000..149a662 --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/TableHeader.html @@ -0,0 +1,15 @@ + + + + + sortableColumn + + + + nonSortableColumn + + + + + + diff --git a/orkweb/src/net/sf/oreka/tapestry/TableHeader.java b/orkweb/src/net/sf/oreka/tapestry/TableHeader.java new file mode 100644 index 0000000..6b8ccc2 --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/TableHeader.java @@ -0,0 +1,81 @@ +/* + * 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.tapestry; + +import java.util.*; +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.*; +import org.apache.tapestry.*; + + +public abstract class TableHeader extends BaseComponent { + + static Logger logger = Logger.getLogger(TableHeader.class); + + public abstract TableState getTableState(); + public abstract void setTableState(TableState state); + + //private String columns; + public abstract String getColumnsCSV(); + public abstract void setColumnsCSV(String columns); + + + public List getColumns() { + String[] columnsArray = StringUtils.split(getColumnsCSV(),", "); + //logger.log(Level.INFO, "ColumnsCSV: "+getColumnsCSV()); + + List columns = new ArrayList(); + for (int i=0; i + + + + + + + + + \ No newline at end of file diff --git a/orkweb/src/net/sf/oreka/tapestry/TablePaging.html b/orkweb/src/net/sf/oreka/tapestry/TablePaging.html new file mode 100644 index 0000000..9adc8d1 --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/TablePaging.html @@ -0,0 +1,90 @@ + + + + + + + + + + + +
+ + + + + + + + + +
+ + First + + + + First + + + + First + + + + First + + + Page / + + Results +
+
+   +
+ + + + +
+ +
 
+
+
+
diff --git a/orkweb/src/net/sf/oreka/tapestry/TablePaging.java b/orkweb/src/net/sf/oreka/tapestry/TablePaging.java new file mode 100644 index 0000000..e401543 --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/TablePaging.java @@ -0,0 +1,106 @@ +/* + * 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.tapestry; + +import java.util.*; +import org.apache.log4j.*; +import org.apache.tapestry.*; + + +public abstract class TablePaging extends BaseComponent { + + static Logger logger = Logger.getLogger(TablePaging.class); + + public abstract TableState getTableState(); + public abstract void setTableState(TableState state); + + Integer sliderPosition; + + public void firstPageAction(IRequestCycle cycle) { + getTableState().setNumResults(0); + setTableState(getTableState()); // persist ! + } + + public void previousPageAction(IRequestCycle cycle) { + TableState ps = getTableState(); + if ( (ps.getCurrentOffset() - ps.getResultsPerPage()) >= 0 ) { + ps.setCurrentOffset(ps.getCurrentOffset() - ps.getResultsPerPage()); + } + setTableState(getTableState()); // persist ! + } + + public void nextPageAction(IRequestCycle cycle) { + //logger.log(Level.INFO, "before:" + getPagingState().getCurrentPage()); + //getPagingState().setCurrentPage(getPagingState().getCurrentPage()+1); + //logger.log(Level.INFO, "after:" + getPagingState().getCurrentPage()); + + TableState ps = getTableState(); + if ( (ps.getCurrentOffset() + ps.getResultsPerPage()) < ps.getNumResults() ) { + ps.setCurrentOffset(ps.getCurrentOffset() + ps.getResultsPerPage()); + } + setTableState(getTableState()); // persist ! + } + + public void lastPageAction(IRequestCycle cycle) { + + TableState ps = getTableState(); + double numPages = (double)ps.getNumResults() / ps.getResultsPerPage(); + numPages = java.lang.Math.ceil(numPages); + //int numWholePages = ps.getNumResults() / ps.getResultsPerPage(); + //int remainder = ps.getNumResults() % ps.getResultsPerPage(); + //int lastPageOffset = 0; + //if (remainder > 0) { + // lastPageOffset = numWholePages * ps.getResultsPerPage(); + //} + //else if (numWholePages > 0){ + // lastPageOffset = (numWholePages - 1) * ps.getResultsPerPage(); + //} + int lastPageOffset = 0; + if (numPages >= 1) { + lastPageOffset = (int)(numPages-1) * ps.getResultsPerPage(); + } + ps.setCurrentOffset(lastPageOffset); + setTableState(getTableState()); // persist ! + } + + public void sliderClickAction(IRequestCycle cycle) { + + Object[] parameters = cycle.getServiceParameters(); + Integer sliderPosition = (Integer)parameters[0]; + + TableState ts = getTableState(); + ts.setSliderPosition(sliderPosition); + double newOffset = ((double)ts.getNumResults() / getSliderPositions().size()) * sliderPosition.intValue(); + ts.setCurrentOffset((int)newOffset); + logger.log(Level.INFO, "Slider: pos:" + sliderPosition.intValue() + " offset:" + newOffset); + setTableState(getTableState()); // persist ! + } + + /** + * @return Returns the sliderPositions. + */ + public List getSliderPositions() { + + ArrayList sliderPositions = new ArrayList(); + int numPositions = java.lang.Math.min(getTableState().getNumPages(), 20); + for(int i=0;i + + + + + + + + + + + + + \ No newline at end of file diff --git a/orkweb/src/net/sf/oreka/tapestry/TablePaging.properties b/orkweb/src/net/sf/oreka/tapestry/TablePaging.properties new file mode 100644 index 0000000..428a861 --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/TablePaging.properties @@ -0,0 +1,4 @@ +nextPage=> +previousPage=< +lastPage=>> +firstPage=<< diff --git a/orkweb/src/net/sf/oreka/tapestry/TableState.java b/orkweb/src/net/sf/oreka/tapestry/TableState.java new file mode 100644 index 0000000..0a1c44c --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/TableState.java @@ -0,0 +1,143 @@ +/* + * 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.tapestry; + +import org.apache.log4j.Logger; + +public class TableState { + + static Logger logger = Logger.getLogger(TableState.class); + + public static int DEFAULT_RESULTS_PER_PAGE = 10; + + private int NumResults; + private int ResultsPerPage; + private int CurrentOffset; + private int sliderPosition; + private String OrderBy = new String(); + private boolean Ascending = false; + + /** + * @return Returns the ascending. + */ + public boolean isAscending() { + return Ascending; + } + + + /** + * @param ascending The ascending to set. + */ + public void setAscending(boolean ascending) { + Ascending = ascending; + } + + /** + * @return Returns the orderBy. + */ + public String getOrderBy() { + return OrderBy; + } + + + /** + * @param orderBy The orderBy to set. + */ + public void setOrderBy(String orderBy) { + OrderBy = orderBy; + } + + + /** + * + */ + public TableState() { + ResultsPerPage = DEFAULT_RESULTS_PER_PAGE; + } + + /** + * @return Returns the currentOffset. + */ + public int getCurrentOffset() { + return CurrentOffset; + } + + + /** + * @param currentOffset The currentOffset to set. + */ + public void setCurrentOffset(int currentOffset) { + CurrentOffset = currentOffset; + } + + + /** + * @return Returns the numResults. + */ + public int getNumResults() { + return NumResults; + } + + + /** + * @param numResults The numResults to set. + */ + public void setNumResults(int numResults) { + if (NumResults != numResults){ + NumResults = numResults; + CurrentOffset = 0; // reset the offset if different resultset + } + } + + + /** + * @return Returns the resultsPerPage. + */ + public int getResultsPerPage() { + return ResultsPerPage; + } + + + /** + * @param resultsPerPage The resultsPerPage to set. + */ + public void setResultsPerPage(int resultsPerPage) { + ResultsPerPage = resultsPerPage; + } + + public int getNumPages() { + double numPages = (double)getNumResults() / getResultsPerPage(); + return (int)java.lang.Math.ceil(numPages); + } + + public int getCurrentPage() { + return (getCurrentOffset() / getResultsPerPage())+1; + } + + + public int getSliderPosition() { + return sliderPosition; + } + + + + public void setSliderPosition(int sliderPosition) { + this.sliderPosition = sliderPosition; + } + + +} diff --git a/orkweb/src/net/sf/oreka/tapestry/my.library b/orkweb/src/net/sf/oreka/tapestry/my.library new file mode 100644 index 0000000..daadbfa --- /dev/null +++ b/orkweb/src/net/sf/oreka/tapestry/my.library @@ -0,0 +1,13 @@ + + + + + + + + Project specific components + + + -- cgit v1.2.3