Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2012 JBoss Inc
   * 
   * Licensed under the Apache License, Version 2.0 (the "License"); you may not
   * use this file except in compliance with the License. You may obtain a copy of
   * the License at
   * 
   * http://www.apache.org/licenses/LICENSE-2.0
   * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  * License for the specific language governing permissions and limitations under
  * the License.
  */
 package org.uberfire.client.animations;
 
 import java.util.List;
 
Run a list of animations in order.
 
 public class Sequencer {
 
     private int currentAnimationIndex = 0;
 
     //Simple holder for sequenced animation details
     private class AnimationConfiguration {
 
         final WrappedAnimation animation;
 
         final int              duration;
 
         AnimationConfiguration(final WrappedAnimation animation,
                                final int duration) {
             this. = animation;
             this. = duration;
         }
 
     }
 
     //A wrapper for sequenced animations allowing us to hook into the onComplete method to launch the next animation
     private class WrappedAnimation extends Animation {
 
         private final SequencedAnimation animation;
 
         WrappedAnimation(final SequencedAnimation animation) {
             this. = animation;
         }
 
         @Override
         public void onComplete() {
             //Pass through to the wrapped animation
             .onComplete();
             runNextAnimation();
         }
 
         @Override
         protected void onUpdate(double progress) {
             //Pass through to the wrapped animation
             .onUpdateprogress );
         }
 
         @Override
         public void cancel() {
             //Pass through to the wrapped animation
             .cancel();
         }
 
         @Override
         protected double interpolate(double progress) {
             //Pass through to the wrapped animation
             return .interpolateprogress );
         }
 
         @Override
         protected void onCancel() {
             //Pass through to the wrapped animation
             .onCancel();
         }
 
         @Override
         protected void onStart() {
             //Pass through to the wrapped animation
             .onStart();
         }
 
     }
 
     //The list of animations
     private List<AnimationConfigurationanimations = new ArrayList<AnimationConfiguration>();

    
Add an animation to the list of animations to be sequenced.

Parameters:
animation
duration
    public void add(final SequencedAnimation animation,
                    final int duration) {
        .addnew AnimationConfigurationnew WrappedAnimationanimation ),
                                                    duration ) );
    }

    
Run all animations.
    public void run() {
        runNextAnimation();
    }

    
Reset the sequence to the begining.
    public void reset() {
         = 0;
    }
    private void runNextAnimation() {
        if (  < .size() ) {
            final AnimationConfiguration config = .get++ );
            final WrappedAnimation animation = config.animation;
            final int duration = config.duration;
            animation.runduration );
        } else {
            reset();
        }
    }
New to GrepCode? Check out our FAQ X