Package org.geotools.styling

Examples of org.geotools.styling.Rule


    // apply the label style
    if (vectorLayerRasterizingInfo.isPaintLabels()) {
      // create the rule
      TextSymbolizer textSymbolizer = createTextSymbolizer(vectorLayerRasterizingInfo.getStyle().getLabelStyle(),
          layerType);
      Rule labelRule = styleBuilder.createRule(textSymbolizer);
      // create the style
      FeatureTypeStyle labelStyle = styleBuilder.createFeatureTypeStyle(typeName, labelRule);
      style.featureTypeStyles().add(labelStyle);
    }
    return style;
View Full Code Here


    String geomName = featureInfo.getGeometryType().getName();
    List<Rule> rules = new ArrayList<Rule>();
    // for mixed geometries we add a filter to distinguish between geometry types
    if (layerType == LayerType.GEOMETRY) {
      // add the configured filter to a filter that selects point features only
      Rule pointRule = styleBuilder.createRule(createGeometrySymbolizer(LayerType.POINT, featureStyle));
      Filter pointFilter = filterService.createGeometryTypeFilter(geomName, "Point");
      Filter multiPointFilter = filterService.createGeometryTypeFilter(geomName, "MultiPoint");
      Filter pointsFilter = filterService.createLogicFilter(pointFilter, "or", multiPointFilter);
      pointRule.setFilter(filterService.createLogicFilter(pointsFilter, "and", filter));
      pointRule.setTitle(featureStyle.getName() + "(Point)");

      // add the configured filter to a filter that selects line features only
      Rule lineRule = styleBuilder.createRule(createGeometrySymbolizer(LayerType.LINESTRING, featureStyle));
      Filter lineFilter = filterService.createGeometryTypeFilter(geomName, "LineString");
      Filter multiLineFilter = filterService.createGeometryTypeFilter(geomName, "MultiLineString");
      Filter linesFilter = filterService.createLogicFilter(lineFilter, "or", multiLineFilter);
      lineRule.setFilter(filterService.createLogicFilter(linesFilter, "and", filter));
      lineRule.setTitle(featureStyle.getName() + "(Line)");

      // add the configured filter to a filter that selects polygon features only
      Rule polygonRule = styleBuilder.createRule(createGeometrySymbolizer(LayerType.POLYGON, featureStyle));
      Filter polygonFilter = filterService.createGeometryTypeFilter(geomName, "Polygon");
      Filter multiPolygonFilter = filterService.createGeometryTypeFilter(geomName, "MultiPolygon");
      Filter polygonsFilter = filterService.createLogicFilter(polygonFilter, "or", multiPolygonFilter);
      polygonRule.setFilter(filterService.createLogicFilter(polygonsFilter, "and", filter));
      polygonRule.setTitle(featureStyle.getName() + "(Polygon)");
      rules.add(pointRule);
      rules.add(lineRule);
      rules.add(polygonRule);
    } else {
      Rule rule = styleBuilder.createRule(createGeometrySymbolizer(layerType, featureStyle));
      if (filter.equals(Filter.INCLUDE)) {
        rule.setElseFilter(true);
      } else {
        rule.setFilter(filter);
      }
      rule.setTitle(featureStyle.getName());
      rules.add(rule);
    }
    return rules;
  }
View Full Code Here

    Style[] styles = parser.readXML();
    Assert.assertEquals(1, styles.length);
    visitor.visit(styles[0]);
    Style copy = (Style) visitor.getCopy();
    FeatureTypeStyle featureTypeStyle = copy.featureTypeStyles().iterator().next();
    Rule rule = featureTypeStyle.rules().iterator().next();
    Iterator<Symbolizer> it = rule.symbolizers().iterator();
    Assert.assertTrue(it.next() instanceof TextSymbolizer);
    Assert.assertFalse(it.hasNext());
  }
View Full Code Here

    Style[] styles = parser.readXML();
    Assert.assertEquals(1, styles.length);
    visitor.visit(styles[0]);
    Style copy = (Style) visitor.getCopy();
    FeatureTypeStyle featureTypeStyle = copy.featureTypeStyles().iterator().next();
    Rule rule = featureTypeStyle.rules().iterator().next();
    Iterator<Symbolizer> it = rule.symbolizers().iterator();
    Assert.assertTrue(it.next() instanceof PointSymbolizer);
    Assert.assertFalse(it.hasNext());
  }
View Full Code Here

    Style[] styles = parser.readXML();
    Assert.assertEquals(1, styles.length);
    visitor.visit(styles[0]);
    Style copy = (Style) visitor.getCopy();
    FeatureTypeStyle featureTypeStyle = copy.featureTypeStyles().iterator().next();
    Rule rule = featureTypeStyle.rules().iterator().next();
    Iterator<Symbolizer> it = rule.symbolizers().iterator();
    Assert.assertTrue(it.next() instanceof PointSymbolizer);
    Assert.assertTrue(it.next() instanceof TextSymbolizer);
    Assert.assertFalse(it.hasNext());
  }
View Full Code Here

  /**
   * Overridden to skip some symbolizers.
   */
  @Override
  public void visit(Rule rule) {
    Rule copy = null;
    Filter filterCopy = null;

    if (rule.getFilter() != null) {
      Filter filter = rule.getFilter();
      filterCopy = copy(filter);
    }

    List<Symbolizer> symsCopy = new ArrayList<Symbolizer>();
    for (Symbolizer sym : rule.symbolizers()) {
      if (!skipSymbolizer(sym)) {
        Symbolizer symCopy = copy(sym);
        symsCopy.add(symCopy);
      }
    }

    Graphic[] legendCopy = rule.getLegendGraphic();
    for (int i = 0; i < legendCopy.length; i++) {
      legendCopy[i] = copy(legendCopy[i]);
    }

    Description descCopy = rule.getDescription();
    descCopy = copy(descCopy);

    copy = sf.createRule();
    copy.symbolizers().addAll(symsCopy);
    copy.setDescription(descCopy);
    copy.setLegendGraphic(legendCopy);
    copy.setName(rule.getName());
    copy.setFilter(filterCopy);
    copy.setElseFilter(rule.isElseFilter());
    copy.setMaxScaleDenominator(rule.getMaxScaleDenominator());
    copy.setMinScaleDenominator(rule.getMinScaleDenominator());

    if (STRICT && !copy.equals(rule)) {
      throw new IllegalStateException("Was unable to duplicate provided Rule:" + rule);
    }
    pages.push(copy);
  }
View Full Code Here

     */
    public static double minScale( FeatureTypeStyle fts ) {
        if (fts == null || fts.rules().isEmpty()){
            return 0.0;
        }
        Rule r = fts.rules().get(0);
        return r.getMinScaleDenominator();
    }
View Full Code Here

     */
    public static double maxScale( FeatureTypeStyle fts ) {
        if (fts == null || fts.rules().isEmpty()){
            return Double.NaN;
        }
        Rule r = fts.rules().get(0);
        return r.getMaxScaleDenominator();
    }
View Full Code Here

     */
    public Rule getDefaultRule() {
        FeatureTypeStyle ftStyle = getDefaultFeatureTypeStyle();
        if (ftStyle.rules() == null || ftStyle.rules().isEmpty()) {
            // create an empty rule
            Rule rule = createRule(ftStyle);           
            return rule;
        }
        return ftStyle.rules().get(0);
    }
View Full Code Here

     *
     * @param ftStyle The feature type style for the rule.
     * @return The newly created rule.
     */
    public Rule createRule( FeatureTypeStyle ftStyle ) {
        Rule rule = createRule();
        ftStyle.addRule(rule);

        return rule;
    }
View Full Code Here

TOP

Related Classes of org.geotools.styling.Rule

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.