⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thematicindexservlet.java

📁 openmap java写的开源数字地图程序. 用applet实现,可以像google map 那样放大缩小地图.
💻 JAVA
字号:
// **********************************************************************// <copyright>//  BBN Technologies//  10 Moulton Street//  Cambridge, MA 02138//  (617) 873-8000// //  Copyright (C) BBNT Solutions LLC. All rights reserved.// </copyright>// **********************************************************************// $Source: /cvs/distapps/openmap/src/vpfservlet/WEB-INF/src/com/bbn/openmap/vpfservlet/ThematicIndexServlet.java,v $// $Revision: 1.2.2.2 $ $Date: 2005/08/11 21:03:07 $ $Author: dietrick $// **********************************************************************package com.bbn.openmap.vpfservlet;import java.io.File;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.bbn.openmap.io.FormatException;import com.bbn.openmap.layer.util.html.Element;import com.bbn.openmap.layer.util.html.HtmlListElement;import com.bbn.openmap.layer.util.html.ListElement;import com.bbn.openmap.layer.util.html.TableHeaderElement;import com.bbn.openmap.layer.util.html.TableRowElement;import com.bbn.openmap.layer.util.html.WrapElement;import com.bbn.openmap.layer.vpf.DcwThematicIndex;/** * This servlet generates HTML for VPF files in thematic index format. */public class ThematicIndexServlet extends VPFHttpServlet {    /**     * A do-nothing constructor - init does all the work.     */    public ThematicIndexServlet() {        super();    }    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        String filePath = (String) request.getAttribute(DispatchServlet.ROOTPATH_FILENAME);        if (filePath == null) {            String pathInfo = setPathInfo(request);            filePath = contextInfo.resolvePath(pathInfo);            if (!pathOkay(filePath, pathInfo, response)) {                return;            }        }        DcwThematicIndex ti;        try {            ti = new DcwThematicIndex(filePath, false);        } catch (FormatException fe) {            response.sendError(HttpServletResponse.SC_NOT_FOUND, fe.toString());            return;        }        String valIndex = request.getParameter("valIndex");        if (valIndex != null) {            showTableIndexed(request, response, valIndex, ti);        } else {            showTableData(request, response, ti, filePath);        }        try {            ti.close();        } catch (FormatException fe) {            // ignore        }    }    protected void showTableData(HttpServletRequest request,                                 HttpServletResponse response,                                 DcwThematicIndex ti, String filePath)            throws ServletException, IOException {        response.setContentType("text/html");        PrintWriter out = response.getWriter();        String title = "VPF Thematic Index for " + new File(filePath).getName();        String basepath = getRootDir(request);        out.println("<HEAD><TITLE>" + title + "</TITLE></HEAD>");        out.println(getStylesheetHTML(request));        out.println("<BODY><H1 CLASS=TableHeadingColor>" + title + "</H1>");        out.println("<H3 CLASS=TableSubheadingColor>General Thematic Index Information</H3>");        HtmlListElement list = new HtmlListElement();        list.addElement("Number of Codes: " + ti.getNumberOfCodes());        list.addElement("Number of Rows: " + ti.getNumberOfRows());        list.addElement("Type Of Index: " + ti.getTypeOfIndex());        list.addElement("Field Type of Index: " + ti.getFieldTypeOfIndex());        list.addElement("Number of Data Elements: "                + ti.getNumberOfDataElements());        list.addElement("Data Type Specifier: " + ti.getDataTypeSpecifier());        list.addElement("Table Indexed: "                + fileURL(request, response, basepath, ti.getTableIndexed()));        list.addElement("Column Indexed: " + ti.getColumnIndexed());        list.addElement("Fields Sorted: " + ti.getSorted());        list.generate(out);        out.println("<H3 CLASS=TableSubheadingColor>Thematic Index Data</H3>");        Object[] values = ti.getValueIndexes();        ListElement rows = null;        Element table = null;        TableRowElement th = new TableRowElement();        th.addElement(new TableHeaderElement("CLASS=NavBarCell2", "Index Value"));        th.addElement(new TableHeaderElement("Count"));        th.addElement(new TableHeaderElement("Rows..."));        String valStr = "<A HREF=\"" + request.getContextPath()                + request.getServletPath() + getPathInfo(request)                + "?valIndex=";        for (int i = 0; i < values.length; i++) {            if ((i % 50) == 0) {                if (table != null) {                    table.generate(out);                }                rows = new ListElement();                table = new WrapElement("table", "BORDER=1", rows);                rows.addElement(th);            }            TableRowElement tr = new TableRowElement();            rows.addElement(tr);            tr.addElement(valStr + values[i] + "\">" + values[i] + "</A>");            try {                int[] intvals = ti.get(values[i]);                tr.addElement(Integer.toString(intvals.length));                StringBuffer sb = new StringBuffer();                sb.append(intvals[0]);                for (int j = 1; j < intvals.length; j++) {                    sb.append(", ").append(intvals[j]);                }                tr.addElement(sb.toString());            } catch (FormatException fe) {                tr.addElement(fe.toString());            }        }        table.generate(out);    }    protected void showTableIndexed(HttpServletRequest request,                                    HttpServletResponse response,                                    String valIndex, DcwThematicIndex ti)            throws IOException, ServletException {        Object val = null;        switch (ti.getFieldTypeOfIndex()) {        case 'I':            val = Integer.valueOf(valIndex);            break;        case 'S':            val = Short.valueOf(valIndex);            break;        case 'T':            val = valIndex;            break;        }        try {            int[] vals = ti.get(val);            request.setAttribute(Data.ROWLIST_OBJECT, vals);        } catch (FormatException fe) {            response.sendError(HttpServletResponse.SC_NOT_FOUND, fe.toString());        }        String pi = request.getPathInfo();        int lin = pi.lastIndexOf('/') + 1;        RequestDispatcher rd = request.getRequestDispatcher("/UnknownType"                + pi.substring(0, lin) + ti.getTableIndexed());        rd.forward(request, response);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -