1 <%@page import="org.openisis.*,java.io.IOException,java.util.Date"%>
3 static final String EMPTY = "";
4 static Db[] dbs = new Db[2];
5 static String dberr = EMPTY;
8 String[] args = new String[] { "-v", "error", "-encoding", "Cp850" };
9 dbs[0] = Db.open( "/var/db/cds/cds", args );
10 args = new String[] { "-v", "error", "-format", "aligned" };
11 dbs[1] = Db.open( "/var/db/unesb/unesb", args );
12 } catch (IOException e) {
17 static String NV ( String x ) { return null==x ? EMPTY : x; }
18 static int ROWS = 5; // number of rows to show at once
21 String search = NV( request.getParameter( "search" ) );
26 off = Integer.parseInt( request.getParameter( "off" ) );
27 } catch ( Exception e ) {}
29 dbnum = Integer.parseInt( request.getParameter( "db" ) );
30 if ( dbs.length <= dbnum )
32 } catch ( Exception e ) { }
35 dbnum = Integer.parseInt( (String)session.getAttribute( "db" ) );
36 } catch ( Exception e ) { dbnum = 0; }
38 session.setAttribute( "db", ""+dbnum );
41 rows = Integer.parseInt( request.getParameter( "rows" ) );
42 } catch ( Exception e ) {}
43 int[] set = (int[])session.getAttribute( "set" );
47 <title>OpenIsis JSP demo</title>
51 <form action="Demo.jsp">
52 <input type="text" name="search" value="<%=search%>"/>
53 <input type="checkbox" name="narrow" value="1"/> narrow previous search
54 <input type="submit" name="action" value="search"/>
55 <input type="text" name="rows" size="2" value="<%=rows%>"/> rows at once
58 <option value="0"<%= 0==dbnum ? " selected" : ""%>>cds</option>
59 <option value="1"<%= 1==dbnum ? " selected" : ""%>>unesb</option>
63 Note: $,"",*,+,^,(F),(G),..,$$,/(tag) are supported.
64 Queries are processed straight left to right.
68 if ( EMPTY != search ) {
69 long then = (new Date()).getTime();
70 int[] nset = db.search( search, Db.QRY_SIMPLE );
71 long now = (new Date()).getTime();
74 sorry, no results for <%=search%>
76 session.removeAttribute( "set" );
80 got <%=nset.length%> rows for <%=search%>
81 in <%=(now - then)/1000.%> seconds.<br>
83 if ( null == set || null == request.getParameter("narrow") )
86 set = Db.AND( set, nset );
88 <%=set.length%> rows remaining after combine with previous search<br>
91 session.setAttribute( "set", set );
98 if ( boff < 0 ) boff = 0;
100 <a href="Demo.jsp?off=<%=boff%>&rows=<%=rows%>"><<rows <%=boff+1%> to <%=boff+rows%></a>
103 int end = off + rows;
104 if ( end >= set.length )
108 <a href="Demo.jsp?off=<%=end%>&rows=<%=rows%>">rows <%=end+1%> to <%=end+rows%>>></a>
112 <h4> rows <%=off+1%> to <%=end%> </h4>
113 <%-- start output --%>
116 for ( int i=off; i<end; i++ ) {
117 Rec r = db.readRow( set[i] );
118 if ( null == r ) continue;
119 int m = Db.MDL | Db.PS | Db.HTA;
120 String r13 = "<br> ", s = "<br>";
123 MFN : <%= r.getRowId() %><br>
124 <%= r.v("CONFERENCE : ",null,12,m,0,0,r13,s) %>
125 <%= r.v("TITLE : ",null,24,m,0,0,r13,s) %>
126 <%= r.v("AUTHOR(S) : ",null,14,m,0,0,"; "+r13+" ",s) %>
127 <%= r.v("EDITION : ",null,25,m,0,0,r13,s) %>
128 <%= r.v("IMPRINT : ",null,26,m,0,0,r13,s) %>
129 <%= r.v("COLLATION : ",null,30,m,0,0,r13,s) %>
130 <%= r.v("SERIES : ",null,44,m,0,0,r13,s) %>
131 <%= r.v("NOTES : ",null,50,m,0,0,r13,s) %>
132 <%= r.v("CORP. BODY : ",null,71,m,0,0,r13,s) %>
133 <%= r.v("ADDED CONF : ",null,72,m,0,0,r13,s) %>
134 <%= r.v("OTHER TITLE: ",null,74,m,0,0,r13,s) %>
135 <%= r.v("OTHER LANG : ",null,76,m|'*',0,0,r13,s) %>
136 <%= r.v("KEYWORDS : ",null,69,m,0,0,r13,s) %>
141 <table cols="4" width="100%">
143 <td width="20"> </td>
144 <td width="20"> </td>
145 <td width="20"> </td>
149 for ( int i=off; i<end; i++ ) {
150 Rec r = db.readRow( set[i] );
155 skip bad row <%=set[i]%> as <%=i+1%> of <%=set.length%>
161 int id = r.getRowId();
166 row <%=id%> with <%=l%> fields as <%=i+1%> of <%=set.length%>
170 for ( int j=0; j<l; j++ ) {
171 Field f = r.getField(j);
175 <td> <%=f.tag%> </td>
177 <td> <%=f.html()%> </td>
180 if ( '^' == f.val.charAt(0) ) {
181 Field[] s = f.split();
184 for ( int k=0; k<s.length; k++ ) {
190 <td> <%=f.tag%> </td>
191 <td> <%=(char)s[k].tag%> </td>
192 <td> <%=s[k].html()%> </td>