[Idrs-commit] CVS: Idrs/dev/src/net/sourceforge/idrs/core/report NavCurChunk.java,NONE,1.1 GenTag.ja
Brought to you by:
bigman921
Update of /cvsroot/idrs/Idrs/dev/src/net/sourceforge/idrs/core/report
In directory sc8-pr-cvs1:/tmp/cvs-serv31636/dev/src/net/sourceforge/idrs/core/report
Modified Files:
GenTag.java NavigateChunk.java IDRSHead.java NavPrevChunk.java
YesNo.java NavNextChunk.java
Added Files:
NavCurChunk.java
Log Message:
refactored navigation tags, also added a <navcur> tag that generates a link that will kepp a page it it's current state, minus any specified parameters.
--- NEW FILE: NavCurChunk.java ---
/*
NavNextChunk.java
Copyright (C) 2001 Marc Boorshtein
The contents of this file are subject to the Mozilla Public License Version 1.0 (the License);
you may not use this file except in compliance with the License. You may obtain a copy of the
License at http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific
language governing rights and limitations under the License.
*/
package net.sourceforge.idrs.core.report;
import java.io.*;
import java.util.*;
import java.net.*;
import net.sourceforge.idrs.utils.*;
import javax.servlet.http.*;
/**
Encapsulates any plain text found in an RML page
*/
public final class NavCurChunk extends NavigateChunk {
LinkedList ignore;
public NavCurChunk(String signore) {
super("");
ignore = new LinkedList();
StringTokenizer tok = new StringTokenizer(signore,",",false);
while (tok.hasMoreTokens()) {
ignore.add(tok.nextToken());
}
}
protected int adjustPosition(DB db) throws Exception {
int currPos = db.getCurrLocation();
/*System.out.println("Name : " + db.getID());
System.out.println("Current Pos: " + currPos);
System.out.println("Number Rows : " + db.getNumberRows());
System.out.println("Num Recs : " + db.getNumRecs());*/
// if (currPos >= db.getNumberRows()) {
return db.getFirstRec();
//}
//else {
//return currPos;
// }
}
public String toString(IDRSHead head) throws Exception {
String params = super.toString(head,ignore);
return params;
}
}
Index: GenTag.java
===================================================================
RCS file: /cvsroot/idrs/Idrs/dev/src/net/sourceforge/idrs/core/report/GenTag.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** GenTag.java 17 Mar 2003 14:04:53 -0000 1.5
--- GenTag.java 26 Mar 2003 21:33:05 -0000 1.6
***************
*** 215,218 ****
--- 215,283 ----
}
}
+
+ /**
+ *Retrieves a value based on what the source is
+ *@param head IDRS
+ *@param name Name of tag
+ *@return value of tag
+ */
+ protected boolean getValueBoolInt(IDRSHead head,String name) throws Exception {
+ String sval;
+ String db,field;
+ switch (srcType) {
+ case SRC_PARAM : return (sval = head.getRequest().getParameter(src)) != null ? Integer.parseInt(sval) == 1 : false;
+ case SRC_DB : return getValDBBoolInt(head,name);
+ case SRC_PROP : return getValObjBoolInt(head,name);
+ default : return false;
+ }
+ }
+
+ /**
+ *Retrieves a value based on what the source is
+ *@param head IDRS
+ *@param name Name of tag
+ *@return value of tag
+ */
+ protected boolean getValDBBoolInt(IDRSHead head,String name) throws Exception {
+ String sval;
+
+ if (this.paramFirst) {
+ sval = head.getRequest().getParameter(name);
+ if (sval == null) {
+ System.out.println(owner +"." + src + " is " + head.getFieldData(owner,src));
+ return (sval = head.getFieldData(owner,src)) != null ? sval.equals("1") : false;
+ }
+ else {
+ return sval.equalsIgnoreCase("1");
+ }
+ }
+ else {
+ System.out.println(owner +"." + src + " is " + head.getFieldData(owner,src));
+ return (sval = head.getFieldData(owner,src)) != null ? sval.equals("1") : false;
+ }
+ }
+
+ /**
+ *Retrieves a value based on what the source is
+ *@param head IDRS
+ *@param name Name of tag
+ *@return value of tag
+ */
+ protected boolean getValObjBoolInt(IDRSHead head, String name) throws Exception {
+ String sval;
+
+ if (this.paramFirst) {
+ sval = head.getRequest().getParameter(name);
+ if (sval == null) {
+ return ((Integer) getPropData(head)).intValue() == 1;
+ }
+ else {
+ return Integer.parseInt(sval) == 1;
+ }
+ }
+ else {
+ return ((Integer) getPropData(head)).intValue() == 1;
+ }
+ }
}
Index: NavigateChunk.java
===================================================================
RCS file: /cvsroot/idrs/Idrs/dev/src/net/sourceforge/idrs/core/report/NavigateChunk.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** NavigateChunk.java 6 Feb 2003 20:13:45 -0000 1.4
--- NavigateChunk.java 26 Mar 2003 21:33:06 -0000 1.5
***************
*** 24,29 ****
--- 24,32 ----
*/
public abstract class NavigateChunk implements Chunk, Serializable {
+ static final long serialVersionUID = -1693089616757294522L;
String text;
StringBuffer buff;
+
+
/**
Initializes the Chunk
***************
*** 41,45 ****
--- 44,53 ----
@param head IDRSHead for report
*/
+
public String toString(IDRSHead head) throws Exception {
+ return toString(head,null);
+ }
+
+ public String toString(IDRSHead head,LinkedList ignore) throws Exception {
buff.setLength(0);
***************
*** 50,54 ****
HttpServletRequest request = head.getRequest();;
//loop through all parameters
! buff.append("<a href=\"").append(request.getRequestURI()).append('?');
paramNames = request.getParameterNames();
DB db;
--- 58,62 ----
HttpServletRequest request = head.getRequest();;
//loop through all parameters
!
paramNames = request.getParameterNames();
DB db;
***************
*** 57,60 ****
--- 65,85 ----
int adjustedPos;
+ Iterator it = head.dbs.keySet().iterator();
+ while (it.hasNext()) {
+ db = (DB) head.dbs.get(it.next());
+ if (db.getIsPaged()) {
+ buff.append(db.getID()).append("_Reset=false").append('&');
+ buff.append(db.getID()).append("_PageSize=").append(db.getNumRecs()).append('&');
+
+ adjustedPos = adjustPosition(db);
+ //System.out.println("Begining : " + adjustedPos);
+ returnLink = returnLink || ((adjustedPos >= 0) && (adjustedPos <= db.getNumberRows()));
+
+ buff.append(db.getID()).append("_FirstRecord=").append(adjustedPos).append('&');
+ }
+ }
+
+
+
while (paramNames.hasMoreElements()) {
paramName = (String) paramNames.nextElement();
***************
*** 63,67 ****
! if (paramName.indexOf("_FirstRecord") != -1) {
db = head.getDB(paramName.substring(0,paramName.indexOf("_")));
--- 88,92 ----
! /*if (paramName.indexOf("_FirstRecord") != -1) {
db = head.getDB(paramName.substring(0,paramName.indexOf("_")));
***************
*** 75,79 ****
buff.append(paramName).append("=false").append('&');
}
! else {
buff.append(paramName).append('=').append(URLEncoder.encode(param)).append('&');
}
--- 100,105 ----
buff.append(paramName).append("=false").append('&');
}
! else {*/
! if ((ignore != null ? ! ignore.contains(param) : true) && paramName.indexOf("_Reset") == -1 && paramName.indexOf("_FirstRecord") == -1 && paramName.indexOf("_Reset") == -1) {
buff.append(paramName).append('=').append(URLEncoder.encode(param)).append('&');
}
***************
*** 82,86 ****
if (returnLink) {
buff.deleteCharAt(buff.length()-1);
! buff.append("\">").append(text).append("</a>");
return buff.toString();
}
--- 108,112 ----
if (returnLink) {
buff.deleteCharAt(buff.length()-1);
! //buff.append("\">").append(text).append("</a>");
return buff.toString();
}
Index: IDRSHead.java
===================================================================
RCS file: /cvsroot/idrs/Idrs/dev/src/net/sourceforge/idrs/core/report/IDRSHead.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** IDRSHead.java 17 Mar 2003 14:04:53 -0000 1.15
--- IDRSHead.java 26 Mar 2003 21:33:06 -0000 1.16
***************
*** 668,672 ****
public void createError(String err) {
! //System.out.println("Error 1: " + err);
request.setAttribute(ERR_NAME,err);
// System.out.println("Error 2: " + request.getAttribute(ERR_NAME));
--- 668,672 ----
public void createError(String err) {
! System.out.println("Error 1: " + err);
request.setAttribute(ERR_NAME,err);
// System.out.println("Error 2: " + request.getAttribute(ERR_NAME));
***************
*** 741,756 ****
}
! public EJBObject getEJB(Connection con, String name, String home, String remote, boolean session) throws Exception {
if (! (con instanceof JndiConnection)) {
throw new Exception("A Connection Must Be an instance of JndiConnection");
}
! Context ctx = ((JndiConnection) con).getContext();
! Object obj = ctx.lookup(name);
!
! EJBHome hm = (EJBHome) PortableRemoteObject.narrow(obj,Class.forName(home));
- Method create = Class.forName(home).getMethod("create",new Class[] {});
- return (EJBObject) create.invoke(hm,new Object[] {});
}
--- 741,751 ----
}
! public EJBObject getEJB(Connection con, String name, String home, String remote, boolean stateless) throws Exception {
if (! (con instanceof JndiConnection)) {
throw new Exception("A Connection Must Be an instance of JndiConnection");
}
! return ((JndiConnection) con).getEJB(name,home,remote,stateless,this.session );
}
Index: NavPrevChunk.java
===================================================================
RCS file: /cvsroot/idrs/Idrs/dev/src/net/sourceforge/idrs/core/report/NavPrevChunk.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** NavPrevChunk.java 21 Sep 2002 16:13:03 -0000 1.2
--- NavPrevChunk.java 26 Mar 2003 21:33:08 -0000 1.3
***************
*** 24,28 ****
*/
public final class NavPrevChunk extends NavigateChunk {
!
public NavPrevChunk(String txt) {
super(txt);
--- 24,28 ----
*/
public final class NavPrevChunk extends NavigateChunk {
! static final long serialVersionUID = 5643589467069312474L;
public NavPrevChunk(String txt) {
super(txt);
***************
*** 33,36 ****
--- 33,49 ----
return db.getFirstRec() - db.getNumRecs();
+ }
+
+ public String toString(IDRSHead head) throws Exception {
+
+ String params = super.toString(head);
+ if (params.trim().length() != 0) {
+ StringBuffer buf = new StringBuffer();
+ buf.append("<a href=\"").append(head.getRequest().getRequestURI()).append('?').append(params).append("\">").append(super.text).append("</a>");
+ return buf.toString();
+ }
+ else {
+ return "";
+ }
}
}
Index: YesNo.java
===================================================================
RCS file: /cvsroot/idrs/Idrs/dev/src/net/sourceforge/idrs/core/report/YesNo.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** YesNo.java 13 Apr 2002 16:06:35 -0000 1.2
--- YesNo.java 26 Mar 2003 21:33:08 -0000 1.3
***************
*** 25,29 ****
public static final int SINGLE_YES=0;
public static final int SINGLE_NO=1;
!
--- 25,30 ----
public static final int SINGLE_YES=0;
public static final int SINGLE_NO=1;
! public static final int BOOL_TF = 0;
! public static final int BOOL_INT = 1;
***************
*** 31,34 ****
--- 32,36 ----
int single;
+ int boolType;
/** Creates new YesNo
***************
*** 40,45 ****
*@param paramFirst Determine if a paramater will be checked first
*/
! public YesNo(String name, int single, int srcType, String src,String atts,boolean paramFirst) {
super(name,srcType,src,atts,paramFirst);
this.single = single;
}
--- 42,48 ----
*@param paramFirst Determine if a paramater will be checked first
*/
! public YesNo(String name, int single, int srcType, String src,String atts,boolean paramFirst,int boolType) {
super(name,srcType,src,atts,paramFirst);
+ this.boolType = boolType;
this.single = single;
}
***************
*** 52,66 ****
public String toString(IDRSHead head) throws Exception {
StringBuffer tag = new StringBuffer();
!
String nm = nameIsScript ? head.getScriptContext().eval(name) : name;
! boolean yes = getValueBool(head,nm);
if (single == NOT_SINGLE || single == SINGLE_YES) {
! tag.append("<INPUT TYPE=\"RADIO\" VALUE=\"true\" NAME=\"").append(nm).append("\" ").append(yes ? "CHECKED" : "").append(atts).append("> Yes ");
}
!
if (single == NOT_SINGLE || single == SINGLE_NO) {
! tag.append("<INPUT TYPE=\"RADIO\" VALUE=\"false\" NAME=\"").append(nm).append("\" ").append(! yes ? "CHECKED" : "").append(atts).append("> No ");
}
!
return tag.toString();
}
--- 55,81 ----
public String toString(IDRSHead head) throws Exception {
StringBuffer tag = new StringBuffer();
!
String nm = nameIsScript ? head.getScriptContext().eval(name) : name;
!
! boolean yes;
!
! if (this.boolType == BOOL_TF) {
! yes = getValueBool(head,nm);
! }
! else {
! yes = getValueBoolInt(head,nm);
! }
!
! String trueVal = boolType == BOOL_INT ? "1" : "true";
! String falseVal = boolType == BOOL_INT ? "0" : "false";
!
if (single == NOT_SINGLE || single == SINGLE_YES) {
! tag.append("<INPUT TYPE=\"RADIO\" VALUE=\"" + trueVal + "\" NAME=\"").append(nm).append("\" ").append(yes ? "CHECKED" : "").append(atts).append("> Yes ");
}
!
if (single == NOT_SINGLE || single == SINGLE_NO) {
! tag.append("<INPUT TYPE=\"RADIO\" VALUE=\"" + falseVal + "\" NAME=\"").append(nm).append("\" ").append(! yes ? "CHECKED" : "").append(atts).append("> No ");
}
!
return tag.toString();
}
Index: NavNextChunk.java
===================================================================
RCS file: /cvsroot/idrs/Idrs/dev/src/net/sourceforge/idrs/core/report/NavNextChunk.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** NavNextChunk.java 21 Sep 2002 16:13:03 -0000 1.2
--- NavNextChunk.java 26 Mar 2003 21:33:09 -0000 1.3
***************
*** 24,28 ****
*/
public final class NavNextChunk extends NavigateChunk {
!
public NavNextChunk(String txt) {
super(txt);
--- 24,28 ----
*/
public final class NavNextChunk extends NavigateChunk {
! static final long serialVersionUID = -8801453410311825457L;
public NavNextChunk(String txt) {
super(txt);
***************
*** 43,46 ****
--- 43,59 ----
//return currPos;
// }
+ }
+
+ public String toString(IDRSHead head) throws Exception {
+
+ String params = super.toString(head);
+ if (params.trim().length() != 0) {
+ StringBuffer buf = new StringBuffer();
+ buf.append("<a href=\"").append(head.getRequest().getRequestURI()).append('?').append(params).append("\">").append(super.text).append("</a>");
+ return buf.toString();
+ }
+ else {
+ return "";
+ }
}
}
|