home *** CD-ROM | disk | FTP | other *** search
/ BUG 15 / BUGCD1998_06.ISO / aplic / jbuilder / jsamples.z / ResourceableLineItemDetailPainter.java < prev    next >
Text File  |  1997-07-24  |  2KB  |  64 lines

  1. package borland.samples.intl.application;
  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.  * Custom model-view item painter for painting localized values for
  12.  * the orderLineItemDataSet's details column.  Uses the
  13.  * non-localized value in the details column as the lookup key
  14.  * into its resource bundle, then paints the localized value.
  15.  */
  16. public class ResourceableLineItemDetailPainter implements ItemPainter {
  17.   TextItemPainter textItemPainter;
  18.   ResourceBundle resourceBundle;
  19.  
  20.   public ResourceableLineItemDetailPainter(Insets margins, int alignment) {
  21.     textItemPainter = new SelectableTextItemPainter(alignment, margins);
  22.   }
  23.  
  24.   public ResourceableLineItemDetailPainter() {
  25.     textItemPainter = new SelectableTextItemPainter();
  26.   }
  27.  
  28.   public void setResourceBundle(ResourceBundle resourceBundle) {
  29.     this.resourceBundle = resourceBundle;
  30.   }
  31.  
  32.   public ResourceBundle getResourceBundle() {
  33.     return resourceBundle;
  34.   }
  35.  
  36.   public Dimension getPreferredSize(Object object, Graphics g, int state, ItemPaintSite site) {
  37.     if (object.toString().length() != 0 && resourceBundle != null) {
  38.       StringTokenizer tokenizer = new StringTokenizer(object.toString(), ",", false);
  39.       String text = "";
  40.       while (tokenizer.hasMoreTokens()) {
  41.     text += resourceBundle.getString(tokenizer.nextToken());
  42.       }
  43.       return textItemPainter.getPreferredSize(text, g, state, site);
  44.     } else {
  45.       return textItemPainter.getPreferredSize(object, g, state, site);
  46.     }
  47.   }
  48.  
  49.   public void paint(Object object, Graphics g, Rectangle r, int state, ItemPaintSite site) {
  50.     if (object.toString().length() != 0 && resourceBundle != null) {
  51.       StringTokenizer tokenizer = new StringTokenizer(object.toString(), ",", false);
  52.       String text = "";
  53.       while (tokenizer.hasMoreTokens()) {
  54.     text += resourceBundle.getString(tokenizer.nextToken()) + " ";
  55.       }
  56.       textItemPainter.paint(text, g, r, state, site);
  57.     } else {
  58.       textItemPainter.paint(object, g, r, state, site);
  59.     }
  60.   }
  61.  
  62. }
  63.  
  64.