Ok so to add a bit to this:
I tried to override the TerraPromptSkin (TerraExtendedPromptSkin.java) class
so I could have some control on the buttonPressed event.
Here is an extract of the mock class:
private ButtonPressListener optionButtonPressListener = new
ButtonPressListener() {
public void buttonPressed(Button button) {
int optionIndex = optionButtonBoxPane.indexOf(button);
if (optionIndex >= 0) {
//Prompt prompt = (Prompt)getComponent();
//prompt.setSelectedOptionIndex(optionIndex);
//prompt.close(true);
}
}
};
@Override
public void install(Component component) {
ExtendedPrompt prompt = (ExtendedPrompt) component;
// We backup the options
ArrayList options = new ArrayList(prompt.getOptions());
// We reset the options so the subclass doesn't create the
buttons that we
want to override
prompt.getOptions().remove(0, options.getLength());
super.install(component);
BXMLSerializer bxmlSerializer = new BXMLSerializer();
try {
bxmlSerializer.readObject(TerraPromptSkin.class,
"terra_prompt_skin.bxml");
} catch(Exception exception) {
throw new RuntimeException(exception);
}
optionButtonBoxPane = (BoxPane)
bxmlSerializer.getNamespace().get("optionButtonBoxPane");
// We set the options back and create buttons with our custom
listeners
prompt.setOptions(options);
for (Object option : options) {
PushButton optionButton = new PushButton(option);
optionButton.setStyleName(TerraPromptSkin.class.getPackage().getName() +
"." + TerraTheme.COMMAND_BUTTON_STYLE);
for (ButtonPressListener listener :
optionButton.getButtonPressListeners()) {
optionButton.getButtonPressListeners().remove(listener);
}
optionButton.getButtonPressListeners().add(optionButtonPressListener);
optionButtonBoxPane.add(optionButton);
}
}
When putting a breakpoint in both the listener (at int optionIndex =
optionButtonBoxPane.indexOf(button);) and the install function (at
ExtendedPrompt prompt = (ExtendedPrompt) component;). The code definitely
goes through my install function. However, if I click on the prompt button,
it doesn't stop at my listener breakpoint and the prompt just closes.
Any ideas on what I'm doing wrong here would be much appreciated.
Regards,
Matt
--
View this message in context:
http://apache-pivot-users.399431.n3.nabble.com/Prompt-override-option-click-event-tp3999325p4001268.html
Sent from the Apache Pivot - Users mailing list archive at Nabble.com.