API Reference 0.3.24dart_web_toolkit_uiLayoutCommand

LayoutCommand class

A scheduled command used by animated layouts to ensure that only layout is ever performed for a panel within a given user event.

Note: This class assumes that {@link com.google.gwt.layout.client.Layout.Layer#getUserObject Layer.getUserObject()} will return the widget associated with a given layer.

class LayoutCommand implements ScheduledCommand {

 bool _scheduled = false;
 bool _canceled = false;
 int _duration = 0;
 LayoutAnimationCallback callback;
 Layout _layout;

 /**
  * Creates a new command for the given layout object.
  *
  * @param layout
  */
 LayoutCommand(this._layout);

 /**
  * Cancels this command. A subsequent call to
  * {@link #schedule(int, Layout.AnimationCallback)} will re-enable it.
  */
 void cancel() {
   // There's no way to "unschedule" a command, so we use a canceled flag.
   _canceled = true;
 }

 /**
  * Invokes the command.
  */
 void execute() {
   _scheduled = false;
   if (_canceled) {
     return;
   }

   doBeforeLayout();

   _layout.layout(_duration, new LayoutCommandAnimationCallback(this));
 }

 /**
  * Schedules a layout. The duration and callback passed to this method will
  * supercede any previous call that has not yet been executed.
  *
  * @param duration
  * @param callback
  */
 void schedule(int duration, LayoutAnimationCallback callback) {
   this._duration = duration;
   this.callback = callback;

   _canceled = false;
   if (!_scheduled) {
     _scheduled = true;
     //Scheduler.get().scheduleFinally(this);
     Scheduler.get().scheduleDeferred(this);
   }
 }

 /**
  * Called before the layout is executed. Override this method to perform any
  * work that needs to happen just before it.
  */
 void doBeforeLayout() {
 }
}

Implements

ScheduledCommand

Constructors

new LayoutCommand(Layout _layout) #

Creates a new command for the given layout object.

@param layout

LayoutCommand(this._layout);

Properties

LayoutAnimationCallback callback #

LayoutAnimationCallback callback

Methods

void cancel() #

Cancels this command. A subsequent call to {@link #schedule(int, Layout.AnimationCallback)} will re-enable it.

void cancel() {
 // There's no way to "unschedule" a command, so we use a canceled flag.
 _canceled = true;
}

void doBeforeLayout() #

Called before the layout is executed. Override this method to perform any work that needs to happen just before it.

void doBeforeLayout() {
}

void execute() #

Invokes the command.

void execute() {
 _scheduled = false;
 if (_canceled) {
   return;
 }

 doBeforeLayout();

 _layout.layout(_duration, new LayoutCommandAnimationCallback(this));
}

void schedule(int duration, LayoutAnimationCallback callback) #

Schedules a layout. The duration and callback passed to this method will supercede any previous call that has not yet been executed.

@param duration @param callback

void schedule(int duration, LayoutAnimationCallback callback) {
 this._duration = duration;
 this.callback = callback;

 _canceled = false;
 if (!_scheduled) {
   _scheduled = true;
   //Scheduler.get().scheduleFinally(this);
   Scheduler.get().scheduleDeferred(this);
 }
}