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

📄 linecache.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/openmap/com/bbn/openmap/graphicLoader/netmap/LineCache.java,v $// $RCSfile: LineCache.java,v $// $Revision: 1.2.2.2 $// $Date: 2004/10/14 18:26:49 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.graphicLoader.netmap;import java.util.*;/** * The holder for Lines on the map. This cache is smart enough to * add/delete/modify Lines as needed based on line labels and nodes. */public class LineCache {    private Hashtable lineTable = null;    public LineCache() {        this.lineTable = new Hashtable();    }    public LineCache(int initialCapacity) {        this.lineTable = new Hashtable(initialCapacity);    }    public void flush() {        for (Enumeration list = elements(); list.hasMoreElements();)            delete((Line) list.nextElement());    }    public Enumeration elements() {        return lineTable.elements();    }    public Line add(String label, int index, int shape, int color, Node node1,                    Node node2) {        del(index);        Line line = new Line(label, index, shape, color, node1, node2);        lineTable.put(label, (Object) line);        return line;    }    public void move(Node atNode) {        Line[] lines = get(atNode);        if (lines == null)            return;        for (int i = 0; i < lines.length; i++)            lines[i].setPos(atNode);    }    public void move(Node atNode1, Node atNode2) {        move(atNode1);        move(atNode2);    }    public Line[] get(Node atNode) {        int count = 0;        Line[] lines = null;        Enumeration list = lineTable.elements();        if (list == null)            return null;        while (list.hasMoreElements()) {            Line line = (Line) list.nextElement();            if ((line.getNode1() == atNode) || (line.getNode2() == atNode)) {                if (count == 0)                    lines = new Line[1];                else {                    Line[] newLines = new Line[lines.length + 1];                    System.arraycopy(lines, 0, newLines, 0, lines.length);                    lines = newLines;                }                lines[count++] = line;            }        }        return lines;    }    public Line get(Node atNode1, Node atNode2) {        Enumeration list = lineTable.elements();        if (list == null)            return null;        while (list.hasMoreElements()) {            Line line = (Line) list.nextElement();            if (((line.getNode1() == atNode1) || (line.getNode2() == atNode1))                    && ((line.getNode1() == atNode2) || (line.getNode2() == atNode2))) {                return line;            }        }        return null;    }    public Line get(String label) {        return ((Line) lineTable.get(label));    }    public Line get(int index) {        Enumeration list = lineTable.elements();        if (list == null)            return null;        while (list.hasMoreElements()) {            Line line = (Line) list.nextElement();            if (line.getIndex() == index)                return line;        }        return null;    }    public void del(Node atNode) {        Line[] lines = get(atNode);        if (lines == null)            return;        for (int i = 0; i < lines.length; i++)            delete(lines[i]);    }    public void del(Line[] lines) {        for (int i = 0; i < lines.length; i++)            delete(lines[i]);    }    public void del(Node atNode1, Node atNode2) {        delete(get(atNode1, atNode2));    }    public void del(int index) {        delete(get(index));    }    public void del(String label) {        delete(get(label));    }    private void delete(Line line) {        if (line == null)            return;        lineTable.remove(line.getLabel());    }}

⌨️ 快捷键说明

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