public class App extends DefaultApplication<StackPane> {
@Override
public Class<? extends Model> firstModelClass() {
return MainPageModel.class;
}
public static void main(String[] args) {
launch(args);
}
}
@BootComponent
public class MainPageModel extends DefaultFXMLModel<MainPageModel> {
@Override
protected void initModel() {
listen(AppWaves.DO_CHANGE);
}
@Override
@OnWave(AppWaves.DO_CHANGE_ACTION)
protected void processWave(Wave wave) {
System.out.println(wave.waveType().action());
}
}
public interface AppWaves {
String DO_CHANGE_ACTION="DO_CHANGE";
WaveType DO_CHANGE= WBuilder.waveType(DO_CHANGE_ACTION);
}public class SecondPageController extends AbstractFXMLController<SecondPageModel,View<SecondPageModel,?,?>>{
public void onOk(ActionEvent actionEvent) {
MainPageController controller= (MainPageController) model().getModel(MainPageModel.class).getFXMLController();
controller.txtMessage.setText("Hello, world");
}
public void onButton2(ActionEvent actionEvent) {
model().sendWave(AppWaves.DO_CHANGE);
}
}
when i insert @OnWave annotation in MainPageModel, the app can't load MainPageModel, all the code in the MainPageModel do not execute, I use the secend way: put listen() in the initModel,
and add public void doChange(final Wave wave) {...} in the MainPageModel, when call sendWave, it was not executed.--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "JRebirth Users".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse jrebirth-users+unsubscribe@googlegroups.com.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.
Here the fixed project
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse jrebirth-user...@googlegroups.com.
model().sendWave(AppWaves.DO_CHANGE, WBuilder.waveData(AppWaves.MESSAGE, "second"));
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse jrebirth-users+unsubscribe@googlegroups.com.
public class App extends DefaultApplication<StackPane> {
@Override
public Class<? extends Model> firstModelClass() {
return MainPageModel.class;
}
public static void main(String[] args) {
launch(args);
}
}
public interface AppWaves {
WaveItemBase<String> MESSAGE = new WaveItemBase<String>() {
};
String DO_CHANGE_ACTION = "CHANGE";
WaveType DO_CHANGE = WBuilder.waveType(DO_CHANGE_ACTION).items(MESSAGE);
}
public class MainPageModel extends DefaultFXMLModel<MainPageModel> {
@OnWave(AppWaves.DO_CHANGE_ACTION)
public void doChange(String message, Wave wave) {
((MainPageController)getFXMLController()).txtMessage.setText(message);
}
}
public class SecondPageController extends AbstractFXMLController<SecondPageModel, View<SecondPageModel, ?, ?>> {
public Label lbtlMessage;
public void onButton2(ActionEvent actionEvent) {
model().sendWave(AppWaves.DO_CHANGE, WBuilder.waveData(AppWaves.MESSAGE, "second"));
}
}
maven dependencies
<dependencies>
<dependency>
<groupId>org.jrebirth.af</groupId>
<artifactId>core</artifactId>
<version>8.5.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jrebirth.af</groupId>
<artifactId>component</artifactId>
<version>8.5.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse jrebirth-users+unsubscribe@googlegroups.com.