/[schmitzm]/trunk/src/skrueger/geotools/LegendIconFeatureRenderer.java
ViewVC logotype

Diff of /trunk/src/skrueger/geotools/LegendIconFeatureRenderer.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 515 by alfonx, Fri Oct 9 19:16:27 2009 UTC revision 516 by alfonx, Wed Nov 11 21:17:33 2009 UTC
# Line 234  public class LegendIconFeatureRenderer e Line 234  public class LegendIconFeatureRenderer e
234                          throw new IllegalArgumentException("Unknown symbolizer: "                          throw new IllegalArgumentException("Unknown symbolizer: "
235                                          + symbolizer);                                          + symbolizer);
236                  }                  }
   
237                  return sampleShape;                  return sampleShape;
238          }          }
239  //          
 //      /**  
 //       * Puts a BufferedImage into this.legendGraphic  
 //       */  
 //      public void produceLegendGraphic(SimpleFeatureType featureType, Style gt2Style,  
 //                      Rule[] applicableRules) {  
 //  
 //              // final FeatureTypeStyle[] ftStyles = gt2Style.getFeatureTypeStyles();  
 //  
 //              // if (request.getRule() != null) {  
 //              // applicableRules = new Rule[] { request.getRule() };  
 //              // } else {  
 //              // applicableRules = getApplicableRules(ftStyles, scaleDenominator);  
 //              // }  
 //  
 //              final int ruleCount = applicableRules.length;  
 //  
 //              /**  
 //               * A legend graphic is produced for each applicable rule. They're being  
 //               * holded here until the process is done and then painted on a "stack"  
 //               * like legend.  
 //               */  
 //              final List<BufferedImage> legendsStack = new ArrayList<BufferedImage>(  
 //                              ruleCount);  
 //  
 //              for (int i = 0; i < ruleCount; i++) {  
 //                      BufferedImage image = createImageForRule(applicableRules[i],  
 //                                      featureType, SIZE);  
 //                      legendsStack.add(image);  
 //              }  
 //  
 //              // this.legendGraphic =  
 //              // scaleImage(mergeLegends(legendsStack,applicableRules), request);  
 //              this.legendGraphic = mergeLegends(legendsStack, applicableRules);  
 //      }  
 //  
 //      /**  
 //       * Recieves a list of <code>BufferedImages</code> and produces a new one  
 //       * which holds all the images in <code>imageStack</code> one above the  
 //       * other.  
 //       *  
 //       * @param imageStack  
 //       *            the list of BufferedImages, one for each applicable Rule  
 //       * @param rules  
 //       *            The applicable rules, one for each image in the stack  
 //       * @param request  
 //       *            The request.  
 //       *  
 //       * @return the stack image with all the images on the argument list.  
 //       *  
 //       * @throws IllegalArgumentException  
 //       *             if the list is empty  
 //       */  
 //      private static BufferedImage mergeLegends(List<BufferedImage> imageStack,  
 //                      Rule[] rules) {  
 //              if (imageStack.size() == 0) {  
 //                      throw new IllegalArgumentException("No legend graphics passed");  
 //              }  
 //  
 //              BufferedImage finalLegend = null;  
 //  
 //              if (imageStack.size() == 1) {  
 //                      finalLegend = (BufferedImage) imageStack.get(0);  
 //              } else {  
 //                      final int imgCount = imageStack.size();  
 //                      final String[] labels = new String[imgCount];  
 //  
 //                      BufferedImage img = ((BufferedImage) imageStack.get(0));  
 //                      FontMetrics fontMetrics = img.getGraphics().getFontMetrics();  
 //  
 //                      final int rowHeight = Math.max(fontMetrics.getHeight(), img  
 //                                      .getHeight());  
 //  
 //                      // calculate the total dimensions of the image  
 //                      int totalHeight = rowHeight * imgCount;  
 //                      int totalWidth = 0;  
 //  
 //                      for (int i = 0; i < imgCount; i++) {  
 //                              img = (BufferedImage) imageStack.get(i);  
 //  
 //                              Rule rule = rules[i];  
 //  
 //                              // does this rule have a label  
 //                              labels[i] = rule.getTitle();  
 //  
 //                              if (labels[i] == null) {  
 //                                      labels[i] = rule.getName();  
 //                              }  
 //  
 //                              int w = img.getWidth();  
 //  
 //                              if (labels[i] != null) {  
 //                                      Graphics g = img.getGraphics();  
 //                                      w += g.getFontMetrics().stringWidth(labels[i]);  
 //                              }  
 //  
 //                              totalWidth = Math.max(w, totalWidth);  
 //                      }  
 //  
 //                      // create the final image  
 //                      finalLegend = new BufferedImage(totalWidth, totalHeight,  
 //                                      BufferedImage.TYPE_INT_ARGB);  
 //  
 //                      Graphics2D finalGraphics = finalLegend.createGraphics();  
 //  
 //                      finalGraphics.setColor(Color.white);  
 //                      finalGraphics.fillRect(0, 0, totalWidth, totalHeight);  
 //  
 //                      int h = 0;  
 //  
 //                      for (int i = 0; i < imgCount; i++) {  
 //                              img = (BufferedImage) imageStack.get(i);  
 //  
 //                              // draw the image  
 //                              int y = h;  
 //  
 //                              if (img.getHeight() < rowHeight) {  
 //                                      // move the image to the center of the row  
 //                                      y += (int) ((rowHeight - img.getHeight()) / 2d);  
 //                              }  
 //  
 //                              finalGraphics.drawImage(img, 0, y, imgObs);  
 //  
 //                              // draw the label  
 //                              if (labels[i] != null) {  
 //                                      finalGraphics.setColor(Color.BLACK);  
 //  
 //                                      y = (h + rowHeight) - fontMetrics.getDescent();  
 //  
 //                                      if (fontMetrics.getHeight() < rowHeight) {  
 //                                              // move the baseline to the center of the row  
 //                                              y -= (int) ((rowHeight - fontMetrics.getHeight()) / 2d);  
 //                                      }  
 //  
 //                                      finalGraphics.drawString(labels[i], img.getWidth(), y);  
 //                              }  
 //  
 //                              h += rowHeight;  
 //                      }  
 //              }  
 //  
 //              return finalLegend;  
 //      }  
 //  
 //      /**  
 //       * DOCUMENT ME!  
 //       *  
 //       * @return  
 //       *  
 //       * @throws IllegalStateException  
 //       *             DOCUMENT ME!  
 //       */  
 //      public BufferedImage getLegendGraphic() {  
 //              if (this.legendGraphic == null) {  
 //                      throw new IllegalStateException();  
 //              }  
 //              return this.legendGraphic;  
 //      }  
   
         // /**  
         // * Paints a little rectangle in the color defined by the  
         // * {@link ColorMapEntry}  
         // *  
         // * unused  
         // *  
         // * @param cme  
         // * {@link ColorMapEntry}  
         // * @param cm  
         // * {@link ColorMap} to determine type (VALUES, INTERVALL )  
         // * @param iconWidth  
         // * Size of the rectangle  
         // * @param iconHeight  
         // * Size of the rectangle  
         // * @return {@link ImageIcon} of that color, maybe with a white border  
         // * @author Stefan Alfons Krüger  
         // */  
         // public static ImageIcon createImageForColorMapEntry(ColorMapEntry cme,  
         // ColorMap cm, Integer iconWidth, Integer iconHeight) {  
         //  
         // BufferedImage imageForRule = new BufferedImage(iconWidth, iconHeight,  
         // BufferedImage.TYPE_INT_ARGB);  
         //  
         // final Color color = StylingUtil.getColorFromColorMapEntry(cme);  
         //  
         // // Paint a block  
         // for (int x = 0; x < iconWidth; x++) {  
         // for (int y = 0; y < iconHeight; y++) {  
         // int rgb = color.getRGB();  
         // int rand = 2;  
         //  
         // // Paint a white border if the type is VALUES  
         // if ((x < rand) || (x > iconWidth - rand) || (y < rand)  
         // || (y > iconHeight - rand)) {  
         // if (cm.getType() == ColorMap.TYPE_VALUES) {  
         // rgb = Color.white.getRGB();  
         // }  
         // }  
         // imageForRule.setRGB(x, y, rgb);  
         // }  
         // }  
         // return new ImageIcon(imageForRule);  
         // }  
   
240          /**          /**
241           * Creates a little BufferedImage that presents the Style/Symbols used by           * Creates a little BufferedImage that presents the Style/Symbols used by
242           * the {@link MapLegend} to show a legend for the {@link SimpleFeatureType}           * the {@link MapLegend} to show a legend for the {@link SimpleFeatureType}

Legend:
Removed from v.515  
changed lines
  Added in v.516

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26