Advertisement
Guest User

FadingDetachCommand

a guest
Jul 21st, 2015
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.29 KB | None | 0 0
  1. /**
  2.  * This command will show a Node for a given time and then start a fading transition
  3.  * to make it progressively disappears before detaching it from the scene.
  4.  */
  5. public class DetachLaterModelCommand extends DefaultUIBeanCommand<DisplayTemporaryModelWaveBean> implements CommandBean<DisplayTemporaryModelWaveBean> {
  6.  
  7.     @Override
  8.     protected void execute(Wave wave) {
  9.         waitAndDisappear(getWaveBean(wave));
  10.     }
  11.  
  12.     /**
  13.      * Manage message life and disappearing
  14.      */
  15.     protected void waitAndDisappear(final DisplayTemporaryModelWaveBean waveBean) {
  16.         Node node = waveBean.getShowModel().getRootNode();
  17.         waveBean.setHideModel(waveBean.getShowModel());
  18.         final FadeTransition disappearTransition = FadeTransitionBuilder.create()
  19.                 .autoReverse(false)
  20.                 .cycleCount(1)
  21.                 .fromValue(node.getOpacity()).toValue(0).delay(waveBean.getShowDuration())
  22.                 .duration(waveBean.getFadingDuration()).node(node).onFinished(new EventHandler<ActionEvent>() {
  23.                     @Override
  24.                     public void handle(ActionEvent arg0) {
  25.                         unconfigure(waveBean);
  26.                     }
  27.                 })
  28.                 .build();
  29.         disappearTransition.play();
  30.         node.setOnMouseMoved(new EventHandler<MouseEvent>() {
  31.             @Override
  32.             public void handle(MouseEvent event) {
  33.                 disappearTransition.setRate(-1);
  34.                 disappearTransition.setOnFinished(null);
  35.             }
  36.         });
  37.         node.setOnMouseEntered(new EventHandler<MouseEvent>() {
  38.             @Override
  39.             public void handle(MouseEvent event) {
  40.                 disappearTransition.setRate(-1);
  41.                 disappearTransition.setOnFinished(null);
  42.             }
  43.         });
  44.         node.setOnMouseExited(new EventHandler<MouseEvent>() {
  45.             @Override
  46.             public void handle(MouseEvent event) {
  47.                 waitAndDisappear(waveBean);
  48.             }
  49.         });
  50.     }
  51.  
  52.     private void unconfigure(DisplayModelWaveBean waveBean) {
  53.         Wave wave = WaveBuilder.create()
  54.                 .relatedClass(DetachModelCommand.class)
  55.                 .waveGroup(WaveGroup.CALL_COMMAND)
  56.                 .build();
  57.         wave.linkWaveBean(waveBean);
  58.         sendWave(wave);
  59.     }
  60.  
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement