Hi, welcome to Pivot!
The short answer is, no the "initListeners" code doesn't have to be
called directly from "initialize" -- it just has to be called from
"somewhere" before the button is pressed.
From your code it is not clear when/how the "MyPanelController"
constructor would be called. If it is ever called (from somewhere) then
it would work. But, my guess would be that you don't ever instantiate
the "MyPanelController" class, or else it only gets instantiated at some
point after the button is pressed. So, perhaps you could share a bit
more of your code so we can understand better.
HTH,
~Roger
On 8/2/14 12:52 PM, ninjathehunter wrote:
Hi
I am writing a GUI app using Pivot.
I have a panel that looks like:
public class MyPanel extends BoxPane implements Bindable {
@BXML private PushButton myButton = null;
@Override
public void initialize(final Map<String, Object> namespace, URL
location, Resources resources) {
}
public PushButton getMyButton() {
return myButton;
}
}
I have another class which does this:
public class MyPanelController {
private MyPanel myPanel;
private Window myWindow;
public MyPanelController(MyPanel myPanel, Window myWindow) {
this.myPanel = myPanel;
this.myWindow = myWindow;
initListeners();
}
private void initListeners() {
PushButton myButton = view.getMyButton();
myButton.getButtonPressListeners().add(new ButtonPressListener(){
@Override
public void buttonPressed(Button button) {
Alert.alert(MessageType.INFO, "Button Clicked!!!",
view.getFrame());
}
});
}
}
With this code, when the button is clicked, the press listner code is not
executed.
However, if I put the same event listner configuration to the initialize
method inside MyPanel, it works:
public class MyPanel extends BoxPane implements Bindable {
@BXML private PushButton myButton = null;
@Override
public void initialize(final Map<String, Object> namespace, URL
location, Resources resources) {
myButton.getButtonPressListeners().add(new ButtonPressListener(){
@Override
public void buttonPressed(Button button) {
Alert.alert(MessageType.INFO, "Button Clicked!!!",
view.getFrame());
}
});
}
public PushButton getMyButton() {
return myButton;
}
}
My question is whether the listner handling configuration must be inside the
initialize block for it to work??
Thank you very much.
--
View this message in context:
http://apache-pivot-users.399431.n3.nabble.com/Cannot-config-a-button-press-listener-outside-the-initialize-method-of-Bindable-tp4022979.html
Sent from the Apache Pivot - Users mailing list archive at Nabble.com.