public boolean checkToolTips() {
    boolean 			result;
    Class<?>			cls;
    BeanInfo			info;
    PropertyDescriptor[]	desc;
    int				i;
    Vector<String>		missing;
    String			suffix;
    
    print("Tool tips...");
    
    result = true;
    suffix = "TipText";
    cls    = getObject().getClass();
    
    // get properties
    try {
      info = Introspector.getBeanInfo(cls, Object.class);
      desc = info.getPropertyDescriptors();
    }
    catch (Exception e) {
      e.printStackTrace();
      desc = null;
    }

    // test for TipText methods
    if (desc != null) {
      missing = new Vector<String>();
      
      for (i = 0; i < desc.length; i++) {
	// skip property?
	if (m_IgnoredProperties.contains(desc[i].getName()))
	  continue;
	if ((desc[i].getReadMethod() == null) || (desc[i].getWriteMethod() == null))
	  continue;
	  
	try {
	  cls.getMethod(desc[i].getName() + suffix, (Class[]) null);
	}
	catch (Exception e) {
	  result = false;
	  missing.add(desc[i].getName() + suffix);
	}
      }
      
      if (result)
	println("yes");
      else
	println("no (missing: " + missing + ")");

    }
    else {
      println("maybe");
    }
    
    return result;
  }