Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * This command will show a Node for a given time and then start a fading transition
- * to make it progressively disappears before detaching it from the scene.
- */
- public class DetachLaterModelCommand extends DefaultUIBeanCommand<DisplayTemporaryModelWaveBean> implements CommandBean<DisplayTemporaryModelWaveBean> {
- @Override
- protected void execute(Wave wave) {
- waitAndDisappear(getWaveBean(wave));
- }
- /**
- * Manage message life and disappearing
- */
- protected void waitAndDisappear(final DisplayTemporaryModelWaveBean waveBean) {
- Node node = waveBean.getShowModel().getRootNode();
- waveBean.setHideModel(waveBean.getShowModel());
- final FadeTransition disappearTransition = FadeTransitionBuilder.create()
- .autoReverse(false)
- .cycleCount(1)
- .fromValue(node.getOpacity()).toValue(0).delay(waveBean.getShowDuration())
- .duration(waveBean.getFadingDuration()).node(node).onFinished(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent arg0) {
- unconfigure(waveBean);
- }
- })
- .build();
- disappearTransition.play();
- node.setOnMouseMoved(new EventHandler<MouseEvent>() {
- @Override
- public void handle(MouseEvent event) {
- disappearTransition.setRate(-1);
- disappearTransition.setOnFinished(null);
- }
- });
- node.setOnMouseEntered(new EventHandler<MouseEvent>() {
- @Override
- public void handle(MouseEvent event) {
- disappearTransition.setRate(-1);
- disappearTransition.setOnFinished(null);
- }
- });
- node.setOnMouseExited(new EventHandler<MouseEvent>() {
- @Override
- public void handle(MouseEvent event) {
- waitAndDisappear(waveBean);
- }
- });
- }
- private void unconfigure(DisplayModelWaveBean waveBean) {
- Wave wave = WaveBuilder.create()
- .relatedClass(DetachModelCommand.class)
- .waveGroup(WaveGroup.CALL_COMMAND)
- .build();
- wave.linkWaveBean(waveBean);
- sendWave(wave);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement