- Prioritized List of Improvements
- Highlights of User Feedback

Name of Reviewer: | Ray Ortigas
Current Trail Author(s): | Andy Quinn
Was the author contacted? | No If yes, Date:
Comments: Needs a rewrite.

#### Prioritized List of Improvements/Corrections:

Priority Scale:
(1-5)

1 = immediate attention required
3 = fix in next public push (2-3 weeks)
5 = when you get a chance...

1. At

   - GNUmakefile and Makefile do not have .gmk and .mk suffixes.
   - There is no beans/apis directory.
   - beans/demos renamed to beans/demo; beans/demos/sunw/demos renamed to beans/demo/sunw/demo.
   - beans/lib contains methodtracer.jar; this needs to be explained.

priority (1-5): 4

2. At the Java applet shown is not the one that is generated by following the instructions. We should have the correct screen shot to reduce confusion.

   priority (1-5): 4

3. At

   - Trying to complete step 4, many readers forget to enter a CR after the "Java-Bean: True" line, so when the manifest is added to the JAR, that line is omitted. We should have a warning about that.
   - You cannot find the sources for the font and color property editors at beans/apis/sun/beans/editors, since beans/apis doesn't even exist.

   priority (1-5): 4

4. At , near the bottom of the page, it says:

   "The ChangeReporter Bean need not implement the PropertyChangeListener interface; instead, the BeanBox generated adapter class implements PropertyChangeListener, and the adapter's propertyChange method calls the appropriate method in the target object (ChangeReporter)."

   The explanation for this is not given on this page, but on another page. Nevertheless, it definitely should be explained on this page too, even if briefly, because people are going to start wondering why this works.

   priority (1-5): 4

5. At

   There is no OurListBox class!!! It must have been removed in the recent release.

   Previous point notwithstanding, I still have no idea what an indexed property is after reading this lesson as well as the specification. While there is an example, there is no context for the example, which makes it useless. In my opinion, this lesson has to be rewritten from scratch.

   priority (1-5): 4

6. At ,in the section "Hooking Up Events in the BeanBox", it says that in the Juggler's EventTargetDialog,

   "This list contains Juggler methods that take no arguments, or arguments of type actionPerformed."

   "actionPerformed" should really be "ActionEvent".

   priority (1-5): 4

7. At in the section "Property Editors", it says that

   "To support the custom property editor, you need to override two more methods: Override supportsCustomEditor to return true, and override getCustomEditor to return a custom editor instance. ColorEditor.getCustomEditor returns this."

   Not to be too picky, but I think we want "implement" rather than "override", since PropertyEditor is an interface.

   priority (1-5): 4

8. In the section "How Property Editors are Associated with Properties", it says that

   "Property editors are discovered and associated with a given property by ... [e]xplicit association via a BeanInfo object. The Molecule demo Bean uses this technique. Within the MoleculeBeanInfo class, the Molecule Bean's property editor is set with the following line of code:

   pd.setPropertyEditorClass(MoleculeNameEditor.class);"

   Two things:

   1) We are setting the property editor for the Molecule Bean's "MoleculeName" property, not the MoleculeBean itself.

   2) What is "pd"? When you look at the code, it's a property descriptor. We should include the code that defines "pd" so that people know what is going on.

   priority (1-5): 4

9. In the section "The BDK Property Editors", there is a reference to beans/apis/sun/beans/editors, which doesn't exist.

   priority (1-5): 4

10. In the section "BDK Customizers", there is a reference to OurButtonCustomizer, which seems to have been replaced by ExplicitButtonCustomizer in the latest BDK.

    priority (1-5): 4

11. Also, there is the snippet: public BeanDescriptor getBeanDescriptor() { return new BeanDescriptor(beanClass, customizerClass); } ... private final static Class customizerClass = OurButtonCustomizer.class;

    We should add the line that defines beanClass.

    priority (1-5): 4

#### Highlights of User Feedback:

- Date:
  User1's email

- Date:
  User2's email

- Date:
  User3's email

- Date:
  User4's email