FormCardHandler.notifyButtonClick()

Dave Makower writes:
 > I'm observing some strange behavior with the FormCardHandler class.  (Using
 > Jigsaw 1.0a3)
 > 
 > I have an editor class which extends GenericResourceEditor.  In the
 > defineCards() method, I call a method that has the following code:
 > 
 >    MyHandler handler = new MyHandler(target);
 >    FormCardResource card = defineCard(handler, "MyCardName", "MyCardTitle");
 >    card.addButton("Generate");
 >    card.addButton("Delete");
 > 
 > Then, in the notifyButtonClick() method for the class MyHandler, I have the
 > following code:
 > 
 >    System.out.println("Got button click: \"" + label + "\".");
 > 
 > The strange thing is that no matter which button I click, the label seems
 > to be "Generate" -- never "Delete".  That is, the println statement always
 > causes the following console output:
 > 
 >    Got button click: "Generate".
 > 
 > Why is this?

That's strange, here are a few hints to chase the bug:

a) Check the generated HTML, and make sure the buttons have the
   correct labels there (it should be the case).

b) Hack the FormCardResource.lookup method, and add some traces, here
   is a sample of what can be done:

   public boolean lookup(LookupState ls, LookupResult lr) 
	throws HTTPException
    {
	if ( super.lookup(ls, lr) )
	    return true;
	String label = ls.getNextComponent() ;
	// Is this a valid button ?
	for (int i = 0 ; i < vbuttons.size() ; i++) {
	    String button = (String) vbuttons.elementAt(i) ;
System.out.println("FormCardResource: checking "+button+" against "+label);
	    if ( button.equals(label) ) {
		// Notify the button click:
		try {
System.out.println("FormcardResource: found "+label);
		    handler.notifyButtonClick(label) ;
		} catch (FormProcessingException ex) {
		    lr.setTarget(null);
		    return false;
		}
		lr.setTarget(this);
		return true;
	    }
	}
	// Unknown button:
	lr.setTarget(null);
	return true;
    }

Let me know what happens with these traces...

Anselm.

Received on Tuesday, 5 November 1996 07:32:34 UTC