Пример #1
0
  /**
   * The method needs more information from the properties than the CodePosition version of this
   * method provides, like getting the base symbol code for the scheme and the hierarchy addition.
   */
  public CodePosition addPositionChoice(int index, String entry, String prefix, Properties props) {

    CodeScheme cs = (CodeScheme) super.addPositionChoice(index, entry, prefix, props);
    prefix = PropUtils.getScopedPropertyPrefix(prefix) + entry + ".";

    String next = props.getProperty(prefix + NextProperty);

    if (next != null) {
      String nextClassName = props.getProperty(next + ".class");
      if (nextClassName != null) {
        CodePosition cp = (CodePosition) ComponentFactory.create(nextClassName);
        if (DEBUG) {
          Debug.output("CodeScheme created next class(" + next + "), " + nextClassName);
        }
        if (cp != null) {
          cs.nextPosition = cp;
          cp.parsePositions(next, props);
        }
      } else {
        if (DEBUG) {
          Debug.output("CodeScheme couldn't create next class(" + next + "), " + nextClassName);
        }
      }
    }

    cs.defaultSymbolCode = props.getProperty(prefix + DefaultSymbolCodeProperty);
    cs.hierarchyAddition = props.getProperty(prefix + HierarchyCodeAdditionProperty, "");
    // Don't need to add to choices, already done in super class
    // method.
    return cs;
  }
Пример #2
0
  /**
   * Method to set the properties in the PropertyConsumer. The prefix is a string that should be
   * prepended to each property key (in addition to a separating '.') in order for the
   * PropertyConsumer to uniquely identify properties meant for it, in the midst of Properties meant
   * for several objects.
   *
   * @param prefix a String used by the PropertyConsumer to prepend to each property value it wants
   *     to look up - setList.getProperty(prefix.propertyKey). If the prefix had already been set,
   *     then the prefix passed in should replace that previous value.
   * @param setList a Properties object that the PropertyConsumer can use to retrieve expected
   *     properties it can use for configuration.
   */
  public void setProperties(String prefix, Properties setList) {
    super.setProperties(prefix, setList);
    prefix = PropUtils.getScopedPropertyPrefix(prefix);

    wmsServer = setList.getProperty(prefix + WMSServerProperty);
    if (wmsServer == null) {
      Debug.error("WMSPlugIn needs a WMS server.");
    }

    queryHeader = wmsServer;

    setImageFormat(setList.getProperty(prefix + ImageFormatProperty, getImageFormat()));

    setTransparent(setList.getProperty(prefix + TransparentProperty, getTransparent()));

    setBackgroundColor(setList.getProperty(prefix + BackgroundColorProperty, getBackgroundColor()));

    setWmsVersion(setList.getProperty(prefix + WMSVersionProperty, getWmsVersion()));

    layers = setList.getProperty(prefix + LayersProperty);
    styles = setList.getProperty(prefix + StylesProperty);

    /** Include for vendor specific parameters */
    setVendorSpecificNames(
        setList.getProperty(prefix + VendorSpecificNamesProperty, getVendorSpecificNames()));
    setVendorSpecificValues(
        setList.getProperty(prefix + VendorSpecificValuesProperty, getVendorSpecificValues()));
  } // end setProperties
Пример #3
0
  /**
   * Initializes this object from the given properties
   *
   * @param props the <code>Properties</code> holding settings for this object
   */
  public void setProperties(String prefix, Properties props) {
    if (Debug.debugging("areas")) {
      Debug.output("AreaHandler: setting properties");
    }

    setPropertyPrefix(prefix);
    originalProperties = props;

    // These will get initialized when someone asks for it.
    // Otherwise, it delays the startup of the map.
    politicalAreas = null;

    String realPrefix = PropUtils.getScopedPropertyPrefix(prefix);

    String transClassName = props.getProperty(realPrefix + ShapeLayer.TransformProperty);
    if (transClassName != null) {
      try {
        coordTransform =
            (GeoCoordTransformation)
                ComponentFactory.create(
                    transClassName, realPrefix + ShapeLayer.TransformProperty, props);
      } catch (ClassCastException cce) {

      }
    }
  }
Пример #4
0
 public Properties getProperties(Properties props) {
   props = super.getProperties(props);
   String prefix = PropUtils.getScopedPropertyPrefix(this);
   props.put(prefix + NAME_ATTRIBUTE, PropUtils.unnull(name));
   props.put(prefix + DESCRIPTION_ATTRIBUTE, PropUtils.unnull(description));
   return props;
 }
Пример #5
0
  public void setProperties(String prefix, Properties props) {
    super.setProperties(prefix, props);
    prefix = PropUtils.getScopedPropertyPrefix(prefix);

    name = props.getProperty(prefix + NAME_ATTRIBUTE, name);
    description = props.getProperty(prefix + DESCRIPTION_ATTRIBUTE, description);
  }
Пример #6
0
  public Properties getProperties(Properties props) {
    props = super.getProperties(props);

    String prefix = PropUtils.getScopedPropertyPrefix(this);
    props.put(prefix + UseAsToolProperty, new Boolean(useAsTool).toString());
    return props;
  }
Пример #7
0
  public void setProperties(String prefix, Properties props) {
    super.setProperties(prefix, props);

    // Important for ToolPanel that controls what it is listening
    // for, instead of grabbing any Tool. The prefix will be used
    // as a discriminator.
    if (prefix != null) {
      setKey(prefix);
    }

    prefix = PropUtils.getScopedPropertyPrefix(prefix);
    setUseAsTool(
        PropUtils.booleanFromProperties(props, prefix + UseAsToolProperty, getUseAsTool()));
  }
Пример #8
0
  public Properties getProperties(Properties props) {
    props = super.getProperties(props);

    String prefix = PropUtils.getScopedPropertyPrefix(this);

    props.put(prefix + WMSServerProperty, PropUtils.unnull(wmsServer));
    props.put(prefix + ImageFormatProperty, PropUtils.unnull(imageFormat));
    props.put(prefix + TransparentProperty, PropUtils.unnull(transparent));
    props.put(prefix + BackgroundColorProperty, PropUtils.unnull(backgroundColor));
    props.put(prefix + WMSVersionProperty, PropUtils.unnull(wmsVersion));
    props.put(prefix + LayersProperty, PropUtils.unnull(layers));
    props.put(prefix + StylesProperty, PropUtils.unnull(styles));
    props.put(prefix + VendorSpecificNamesProperty, PropUtils.unnull(vendorSpecificNames));
    props.put(prefix + VendorSpecificValuesProperty, PropUtils.unnull(vendorSpecificValues));
    return props;
  }
Пример #9
0
  /** Set all the DTED properties from a properties object. */
  public void setProperties(String prefix, java.util.Properties properties) {

    super.setProperties(prefix, properties);
    prefix = PropUtils.getScopedPropertyPrefix(this);

    paths = PropUtils.initPathsFromProperties(properties, prefix + DTEDPathsProperty, paths);
    setOpaqueness(
        PropUtils.intFromProperties(properties, prefix + OpaquenessProperty, getOpaqueness()));

    setNumColors(
        PropUtils.intFromProperties(properties, prefix + NumColorsProperty, getNumColors()));

    setDtedLevel(
        PropUtils.intFromProperties(properties, prefix + DTEDLevelProperty, getDtedLevel()));

    setViewType(
        PropUtils.intFromProperties(properties, prefix + DTEDViewTypeProperty, getViewType()));

    setSlopeAdjust(
        PropUtils.intFromProperties(
            properties, prefix + DTEDSlopeAdjustProperty, getSlopeAdjust()));

    setBandHeight(
        PropUtils.intFromProperties(properties, prefix + DTEDBandHeightProperty, getBandHeight()));

    // The Layer maxScale is talking the place of the DTEDLayer minScale
    // property.
    setMaxScale(
        PropUtils.floatFromProperties(properties, prefix + DTEDMinScaleProperty, getMaxScale()));

    setCacheSize(
        (int)
            PropUtils.intFromProperties(
                properties, prefix + DTEDFrameCacheSizeProperty, getCacheSize()));

    setKillCache(
        PropUtils.booleanFromProperties(
            properties, prefix + DTEDKillCacheProperty, getKillCache()));
  }
Пример #10
0
  /**
   * Go through the properties, loading the shapefile, information file and attributes files, and
   * resolve how everything should be drawn. Might take awhile if the files are large. Called from
   * getRectangle, which is called when the AreaShapeLayer is added to the map.
   *
   * @param prefix property file entry header name
   * @param props the properties to look through.
   */
  public void initialize(String prefix, Properties props) {

    if (props == null) {
      Debug.error(
          "AreaHandler: initialize received bad input:\n\tprefix: "
              + prefix
              + "\n\tproperties: "
              + (props == null ? "null" : "OK"));
      politicalAreas = null;
      return;
    }

    prefix = PropUtils.getScopedPropertyPrefix(prefix);

    politicalAreas = new Hashtable();

    // OK, Get the graphics. We are not expecting that all the
    // graphics in the file are not too much to handle. Also, we
    // test for the serialized graphics file first, and if it
    // isn't designated, then look for a shapefile and spatial
    // index file to create an OMGraphicsList.
    String cacheFile = props.getProperty(prefix + CacheFileProperty);

    // First find the resource, if not, then try as a file-URL...
    try {
      cacheURL = PropUtils.getResourceOrFileOrURL(this, cacheFile);

      if (cacheURL != null) {
        omgraphics = readCachedGraphics(cacheURL);
      } else {
        // We'll use the spatial index set from the
        // ShapeLayer.

        // Now, get the attribute file
        String dbfFile = props.getProperty(prefix + dbfFileProperty);
        URL dbfFileURL = null;
        if (dbfFile != null) {
          dbfFileURL = PropUtils.getResourceOrFileOrURL(this, dbfFile);
        }
        if (dbfFileURL != null) {
          InputStream is = dbfFileURL.openStream();
          dbfModel = new DbfTableModel(new DbfInputStream(is));
        }
        if (dbfModel == null) {
          String csvFile = props.getProperty(prefix + csvFileProperty);
          URL infofileURL = null;
          if (csvFile != null) {
            infofileURL = PropUtils.getResourceOrFileOrURL(this, csvFile);
          }

          // Read them in.
          if (infofileURL != null) {
            infoFile = new CSVShapeInfoFile(csvFile);
            infoFile.setHeadersExist(
                PropUtils.booleanFromProperties(props, prefix + csvHeaderProperty, true));
            infoFile.loadData(true);
          }
        }
      }
    } catch (java.net.MalformedURLException murle) {
      omgraphics = new OMGraphicList();
    } catch (java.io.IOException ioe) {
      omgraphics = new OMGraphicList();
    } catch (Exception exc) {
      omgraphics = new OMGraphicList();
    }

    // This is handled properly yet. The PoliticalArea should be
    // updated to handle URLs for area points, and have different
    // icons for different areas.
    // String defaultPointImageURLString =
    // props.getProperty(prefix + pointImageURLProperty);

    // Now, match the attributes to the graphics. Find the
    // indexes of the name and the search key. Also figure out
    // which areas have special coloring needs.
    keyIndex = PropUtils.intFromProperties(props, prefix + keyIndexProperty, keyIndex);
    nameIndex = PropUtils.intFromProperties(props, prefix + nameIndexProperty, nameIndex);
    String areas = props.getProperty(prefix + areasProperty);

    if (areas == null) areas = "";

    StringTokenizer tokenizer = new StringTokenizer(areas, " ");
    // All this uses the properties to set the individual colors
    // of any area
    String currentArea;

    while (tokenizer.hasMoreTokens()) {
      currentArea = tokenizer.nextToken();

      PoliticalArea newParams = new PoliticalArea(currentArea);

      if (Debug.debugging("areas")) {
        Debug.output("AreaHandler: setting SPECIALIZED attributes for \"" + newParams.id + "\"");
      }

      areasItems.addElement(currentArea);

      newParams.drawingAttributes =
          new DrawingAttributes(prefix + areasProperty + "." + currentArea, props);

      politicalAreas.put(newParams.id.toUpperCase().intern(), newParams);
    }

    if (Debug.debugging("areas")) {
      Debug.output("AreaHandler: finished initialization");
    }
  }