home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / Chip_1998-11_cd.bin / tema / Cafe / prosrc.bin / ImageViewerBeanInfo.java < prev    next >
Text File  |  1998-03-18  |  5KB  |  169 lines

  1. /*
  2.  * @(#ImageViewerBeanInfo.java
  3.  *
  4.  * Copyright (c) 1997 Symantec Corporation. All Rights Reserved.
  5.  *
  6.  */
  7.  
  8. package symantec.itools.db.awt;
  9.  
  10. import java.beans.*;
  11. import symantec.itools.beans.*;
  12. import java.util.ResourceBundle;
  13.  
  14.  
  15. /**
  16.  * BeanInfo for the ImageViewer component.
  17.  *
  18.  */
  19.  
  20. public class ImageViewerBeanInfo extends SimpleBeanInfo {
  21.  
  22.     /**
  23.      * Constructs a ImageViewerBeanInfo object.
  24.      */
  25.     public ImageViewerBeanInfo() {
  26.     }
  27.  
  28.     /**
  29.      * Gets BeanInfo for the superclass of this bean.
  30.      * @return BeanInfo[] containing this bean's superclass BeanInfo
  31.      */
  32.  
  33.     public BeanInfo[] getAdditionalBeanInfo() {
  34.         try {
  35.             java.util.Vector v = new java.util.Vector();
  36.             BeanInfo[] rv;
  37.             BeanInfo b;
  38.             Class c = beanClass.getSuperclass();
  39.  
  40.             while (c.isAssignableFrom(Object.class) != true) {
  41.                 b = Introspector.getBeanInfo(c);
  42.                 v.addElement(b);
  43.                 c = c.getSuperclass();
  44.             }
  45.             rv = new BeanInfo[v.size()];
  46.             v.copyInto(rv);
  47.  
  48.             return rv;
  49.         }
  50.         catch (IntrospectionException e) { throw new Error(e.toString());}
  51.     }
  52.  
  53.     /**
  54.      * Gets the SymantecBeanDescriptor for this bean.
  55.      * @return an object of type SymantecBeanDescriptor
  56.      * @see symantec.itools.beans.SymantecBeanDescriptor
  57.      */
  58.     public BeanDescriptor getBeanDescriptor() {
  59.         SymantecBeanDescriptor bd = new SymantecBeanDescriptor(beanClass);
  60.         bd.setFolder("dbAWARE");
  61.         bd.setToolbar("dbAWARE");
  62.         // bd.setValue("VPO_Object", new Boolean(true));
  63.         bd.setWinHelp("0x123CA");
  64.  
  65.         return (BeanDescriptor) bd;
  66.     }
  67.  
  68.     /**
  69.      * Gets an image that may be used to visually represent this bean
  70.      * (in the toolbar, on a form, etc).
  71.      * @param iconKind the type of icon desired, one of: BeanInfo.ICON_MONO_16x16,
  72.      * BeanInfo.ICON_COLOR_16x16, BeanInfo.ICON_MONO_32x32, or BeanInfo.ICON_COLOR_32x32.
  73.      * @return an image for this bean, always color even if requested monochrome
  74.      * @see BeanInfo#ICON_MONO_16x16
  75.      * @see BeanInfo#ICON_COLOR_16x16
  76.      * @see BeanInfo#ICON_MONO_32x32
  77.      * @see BeanInfo#ICON_COLOR_32x32
  78.      */
  79.     public java.awt.Image getIcon(int iconKind) {
  80.         if (iconKind == BeanInfo.ICON_MONO_16x16 ||
  81.             iconKind == BeanInfo.ICON_COLOR_16x16) {
  82.             java.awt.Image img = loadImage("ImageViewerC16.gif");
  83.             return img;
  84.         }
  85.  
  86.         if (iconKind == BeanInfo.ICON_MONO_32x32 ||
  87.             iconKind == BeanInfo.ICON_COLOR_32x32) {
  88.             java.awt.Image img = loadImage("ImageViewerC32.gif");
  89.             return img;
  90.         }
  91.  
  92.         return null;
  93.     }
  94.  
  95.     /**
  96.      * Gets an array of descriptions of the methods used for "connections" by
  97.      * Visual CafΘ's Interaction Wizard.
  98.      * Included in each method description is a CONNECTIONS ConnectionDescriptor.
  99.      * @return method descriptions for this bean
  100.      * @see symantec.itools.beans.ConnectionDescriptor#CONNECTIONS
  101.      */
  102.     public MethodDescriptor[] getMethodDescriptors() {
  103.         Class[] args;
  104.         ConnectionDescriptor connection;
  105.         java.util.Vector connections;
  106.         java.util.Vector md = new java.util.Vector();
  107.  
  108.         try{
  109.             args = new Class[1];
  110.             args[0] = java.lang.String.class ;
  111.             MethodDescriptor fetchImage = new MethodDescriptor(beanClass.getMethod("fetchImage", args));
  112.  
  113.             connections = new java.util.Vector();
  114.  
  115.             {
  116.                 connection = new ConnectionDescriptor();
  117.                 connection.setForm("input");
  118.                 connection.setType("String");
  119.                 StringBuffer  code = new StringBuffer();
  120.                 code.append("%name%.fetchImage(%arg%);\n");
  121.                 connection.setExpr(code.toString());
  122.                 connection.setShortDescription("Fetch an image from");
  123.                 connections.addElement(connection);
  124.             }
  125.  
  126.             fetchImage.setValue(ConnectionDescriptor.CONNECTIONS, connections);
  127.             md.addElement(fetchImage);
  128.         } catch (Exception e) { throw new Error("setFileName:: " + e.toString()); }
  129.  
  130.         MethodDescriptor[] rv = new MethodDescriptor[md.size()];
  131.         md.copyInto(rv);
  132.  
  133.         return rv;
  134.     }
  135.  
  136.     /**
  137.      * Gets an array of descriptions of this bean's properties.
  138.      * @return property descriptions for this bean
  139.      */
  140.     public PropertyDescriptor[] getPropertyDescriptors() {
  141.         ResourceBundle prop = ResourceBundle.getBundle("symantec.itools.db.resources.PropBundle");
  142.  
  143.         try{
  144.  
  145.         PropertyDescriptor dataBinding = new PropertyDescriptor("dataBinding", beanClass);
  146.         dataBinding.setBound(false);
  147.         dataBinding.setConstrained(false);
  148.         dataBinding.setDisplayName(prop.getString("dataBinding"));
  149.         dataBinding.setPropertyEditorClass(symantec.itools.db.beans.binding.NameEditor.class);
  150.  
  151.         PropertyDescriptor[] rv = {
  152.             dataBinding,
  153.             };
  154.  
  155.         return rv;
  156.         } catch (IntrospectionException e) { throw new Error(e.toString()); }
  157.     }
  158.  
  159.     /**
  160.      * Returns the index of the property expected to be changed most often by the designer.
  161.      */
  162.     public int getDefaultPropertyIndex() {
  163.         return 0;    //  the index for our default property is always 0
  164.     }
  165.  
  166.     private final static Class beanClass = ImageViewer.class;
  167.  
  168. }    //  end of class ImageViewerBeanInfo|
  169.