home *** CD-ROM | disk | FTP | other *** search
/ BUG 15 / BUGCD1998_06.ISO / aplic / jbuilder / jsamples.z / ResourceableTextItemPainter.java < prev    next >
Encoding:
Java Source  |  1997-07-30  |  2.7 KB  |  91 lines

  1. package borland.samples.intl.util;
  2.  
  3. import java.awt.*;
  4. import java.util.*;
  5.  
  6. import borland.jbcl.view.*;
  7. import borland.jbcl.model.*;
  8. import borland.jbcl.util.*;
  9.  
  10. /**
  11.  * ResourceableTextItemPainter - a resourceable text item painter.
  12.  * Assumes the text to paint is actually a lookup key into a specified
  13.  * resource bundle.  The string retrieved from the resource bundle
  14.  * becomes the item to be painted.
  15.  */
  16. public class ResourceableTextItemPainter implements ItemPainter {
  17.   TextItemPainter textItemPainter;
  18.   ResourceBundle resourceBundle;
  19.  
  20.   /**
  21.    * By default, a TextItemPainter is used to paint text.
  22.    */
  23.   public ResourceableTextItemPainter() {
  24.     textItemPainter = new TextItemPainter();
  25.   }
  26.  
  27.   /**
  28.    * By default, use the specified TextItemPainter to paint text.
  29.    *
  30.    * @param textItemPainter TextItemPainter to use to paint text
  31.    */
  32.   public ResourceableTextItemPainter(TextItemPainter textItemPainter) {
  33.     this.textItemPainter = textItemPainter;
  34.   }
  35.  
  36.   /**
  37.    * Sets the resource bundle in which to look up items to display.
  38.    *
  39.    * @param resourceBundle resourceBundle to use for key lookups
  40.    */
  41.   public void setResourceBundle(ResourceBundle resourceBundle) {
  42.     this.resourceBundle = resourceBundle;
  43.   }
  44.  
  45.   /**
  46.    * Returns the resource bundle used to look up resource keys.
  47.    *
  48.    * @return resource bundle for key lookups.
  49.    */
  50.   public ResourceBundle getResourceBundle() {
  51.     return resourceBundle;
  52.   }
  53.  
  54.   /**
  55.    * Sets the TextItemPainter used to display text.
  56.    *
  57.    * @param textItemPainter TextItemPainter to use.
  58.    */
  59.   public void setTextItemPainter(TextItemPainter textItemPainter) {
  60.     this.textItemPainter = textItemPainter;
  61.   }
  62.  
  63.   /**
  64.    * Returns TextItemPainter used to display text.
  65.    *
  66.    * @return TextItemPainter in use.
  67.    */
  68.   public TextItemPainter getTextItemPainter() {
  69.     return textItemPainter;
  70.   }
  71.  
  72.   // required for implementation of ItemPainter interface
  73.   public Dimension getPreferredSize(Object object, Graphics g, int state, ItemPaintSite site) {
  74.     if (!(object.toString().length() == 0) && resourceBundle != null) {
  75.       return textItemPainter.getPreferredSize(resourceBundle.getString(object.toString()), g, state, site);
  76.     } else {
  77.       return textItemPainter.getPreferredSize(object, g, state, site);
  78.     }
  79.   }
  80.  
  81.   // required for implementation of ItemPainter interface
  82.   public void paint(Object object, Graphics g, Rectangle r, int state, ItemPaintSite site) {
  83.     if (!(object.toString().length() == 0) && resourceBundle != null) {
  84.       textItemPainter.paint(resourceBundle.getString(object.toString()), g, r, state, site);
  85.     } else {
  86.       textItemPainter.paint(object, g, r, state, site);
  87.     }
  88.   }
  89.  
  90. }
  91.