jrthor2
06-13-2006, 08:30 AM
I have a php application that lists online ciruclar pages in a dropdown based on how many pages there are and displays the first/last page as their own options, and the pages in between as grouped, so the dropdown looks something like this:
<select onchange="this.form.submit();" size="1" name="page">
<option selected="" value="1">
Page 1
</option>
<option value="2">
Page 2-3
</option>
<option value="4">
Page 4-5
</option>
<option value="6">
Page 6-7
</option>
<option value="8">
Page 8-9
</option>
<option value="10">
Page 10-11
</option>
<option value="12">
Page 12
</option>
</select>
I need to mimick this in Java. Here is the php code that generates the list of page numbers:
$pagenumbers = gen_page_array($circ_begin_dte, $circ_region_id);
function gen_page_array($begin_dte_dir, $region) {
$pagenumbers=array();
$begin_dte_dir=str_replace("-","_",$begin_dte_dir);
$region= $region == "west" ? "w" : "e";
$ad_img_dir ="/home/httpsd/ra-new/weekly_ad/images/page_images/$begin_dte_dir/$region/";
// get an array list of all files matching this regexp
$pagenumbers=getDirArray($ad_img_dir, "l.jpg");
for($i=0; $i< count($pagenumbers); $i++) {
$pagenumbers[$i]= intval(substr($pagenumbers[$i], 0, 2));
}
$pagenumbers=array_unique($pagenumbers);
sort($pagenumbers);
reset($pagenumbers);
return $pagenumbers;
}
function getDirArray($where, $like="") {
$files=array();
$handle=@opendir($where);
while ($file=@readdir($handle)) {
# if we're told to only return files that match a given search
# criteria and it matches....
if (strlen(trim($like)) ) {
if (ereg($like,$file)) {
array_push($files, $file);
}
# else just add the file
} else {
array_push($files, $file);
}
}
@closedir($handle);
if (@count($files)) {
sort ($files);
}
return $files;
}
And here is the code to display the dropdown box:
<select name="page" size="1" onchange="this.form.submit();">
<?=gen_pagenav("dropdown", $pagenumbers, $page); ?>
</select>
function gen_pagenav($type, $pagenumbers, $page, $circ_id = "") {
global $PHP_SELF;
$return="";
$page_first=$pagenumbers[0];
$page_last =$pagenumbers[count($pagenumbers) -1];
if (($page % 2) > 0) {
$page_even = $page - 1;
if ($page_even <= 0) $page_even = 1;
} else {
$page_even = $page;
}
if ($type == "dropdown") {
for($i=$page_first; $i<=$page_last; $i++) {
$return .= "<option value='$i' ";
if ($i == $page) { $return .= "selected"; }
$return .= "> Page $i";
# we want our first and last page to be on their own page
if ( !($i == $page_first || $i == $page_last) ) {
$i++;
$return .= "-$i";
}
$return .= "</option>\n";
}
}
}
I need to convert this to java(jsf in particular), but if someone could help converting this code, I can do the jsf part.
Thanks!
<select onchange="this.form.submit();" size="1" name="page">
<option selected="" value="1">
Page 1
</option>
<option value="2">
Page 2-3
</option>
<option value="4">
Page 4-5
</option>
<option value="6">
Page 6-7
</option>
<option value="8">
Page 8-9
</option>
<option value="10">
Page 10-11
</option>
<option value="12">
Page 12
</option>
</select>
I need to mimick this in Java. Here is the php code that generates the list of page numbers:
$pagenumbers = gen_page_array($circ_begin_dte, $circ_region_id);
function gen_page_array($begin_dte_dir, $region) {
$pagenumbers=array();
$begin_dte_dir=str_replace("-","_",$begin_dte_dir);
$region= $region == "west" ? "w" : "e";
$ad_img_dir ="/home/httpsd/ra-new/weekly_ad/images/page_images/$begin_dte_dir/$region/";
// get an array list of all files matching this regexp
$pagenumbers=getDirArray($ad_img_dir, "l.jpg");
for($i=0; $i< count($pagenumbers); $i++) {
$pagenumbers[$i]= intval(substr($pagenumbers[$i], 0, 2));
}
$pagenumbers=array_unique($pagenumbers);
sort($pagenumbers);
reset($pagenumbers);
return $pagenumbers;
}
function getDirArray($where, $like="") {
$files=array();
$handle=@opendir($where);
while ($file=@readdir($handle)) {
# if we're told to only return files that match a given search
# criteria and it matches....
if (strlen(trim($like)) ) {
if (ereg($like,$file)) {
array_push($files, $file);
}
# else just add the file
} else {
array_push($files, $file);
}
}
@closedir($handle);
if (@count($files)) {
sort ($files);
}
return $files;
}
And here is the code to display the dropdown box:
<select name="page" size="1" onchange="this.form.submit();">
<?=gen_pagenav("dropdown", $pagenumbers, $page); ?>
</select>
function gen_pagenav($type, $pagenumbers, $page, $circ_id = "") {
global $PHP_SELF;
$return="";
$page_first=$pagenumbers[0];
$page_last =$pagenumbers[count($pagenumbers) -1];
if (($page % 2) > 0) {
$page_even = $page - 1;
if ($page_even <= 0) $page_even = 1;
} else {
$page_even = $page;
}
if ($type == "dropdown") {
for($i=$page_first; $i<=$page_last; $i++) {
$return .= "<option value='$i' ";
if ($i == $page) { $return .= "selected"; }
$return .= "> Page $i";
# we want our first and last page to be on their own page
if ( !($i == $page_first || $i == $page_last) ) {
$i++;
$return .= "-$i";
}
$return .= "</option>\n";
}
}
}
I need to convert this to java(jsf in particular), but if someone could help converting this code, I can do the jsf part.
Thanks!