38static char rcsid[] not_used =
46#include <libdap/Array.h>
47#include <libdap/escaping.h>
48#include <libdap/InternalErr.h>
52#include "get_html_form.h"
54using namespace dap_html_form;
56BaseType *WWWGrid::ptr_duplicate()
58 return new WWWGrid(*
this);
61WWWGrid::WWWGrid(
const string & n) : Grid(n)
65WWWGrid::WWWGrid(Grid * grid): Grid(grid->name())
67 BaseType *bt = basetype_to_wwwtype(grid->array_var());
68 bt->set_attr_table(grid->array_var()->get_attr_table());
69 add_var(bt, libdap::array);
72 Grid::Map_iter i = grid->map_begin();
73 Grid::Map_iter e = grid->map_end();
75 Array *at =
dynamic_cast<Array *
>(basetype_to_wwwtype(*i));
76 at->set_attr_table((*i)->get_attr_table());
89WWWGrid::do_print_val(
ostream &ss)
91 const string fqn = get_fqn(
this);
92 ss <<
"<script type=\"text/javascript\">\n"
94 << name_for_js_code(fqn) <<
" = new dods_var(\""
96 <<
"\", \"" << name_for_js_code(fqn) <<
"\", 1);\n"
97 <<
"DODS_URL.add_dods_var(" << name_for_js_code(fqn) <<
");\n"
98 <<
"// -->\n" <<
"</script>\n";
101 <<
"<input type=\"checkbox\" name=\"get_" <<
102 name_for_js_code(fqn)
103 <<
"\"\n" <<
"onclick=\"" << name_for_js_code(fqn)
104 <<
".handle_projection_change(get_"
105 << name_for_js_code(fqn) <<
") \" onfocus=\"describe_projection()\">\n"
106 <<
"<font size=\"+1\">" << name() <<
"</font></b>"
107 <<
": " << fancy_typename(
this) <<
"<br>\n\n";
109 Array *a =
dynamic_cast < Array *
>(array_var());
110 if (!a)
throw InternalErr(__FILE__, __LINE__,
"Expected an Array");
112 Array::Dim_iter p = a->dim_begin();
113 for (
int i = 0; p != a->dim_end(); ++i, ++p) {
114 const int size = a->dimension_size(p,
true);
115 const string n = a->dimension_name(p);
118 ss <<
"<input type=\"text\" name=\"" << name_for_js_code(fqn)
120 <<
"\" size=8 onfocus=\"describe_index()\""
121 <<
"onChange=\"DODS_URL.update_url()\">\n";
122 ss <<
"<script type=\"text/javascript\">\n"
124 << name_for_js_code(fqn) <<
".add_dim(" << size <<
");\n"
125 <<
"// -->\n" <<
"</script>\n";
132WWWGrid::print_val(FILE * os,
string ,
bool )
136 fprintf(os,
"%s", ss.str().c_str());
140WWWGrid::print_val(
ostream &strm,
string ,
bool )