API Reference 0.3.24dart_web_toolkit_uiAttachDetachException

AttachDetachException class

An exception that is thrown when the panel fails to attach or detach its children.

class AttachDetachException extends UmbrellaException {

 /**
  * The singleton command used to attach widgets.
  */
 static AttachExceptionCommand attachCommand = new AttachExceptionCommand();

 /**
  * The singleton command used to detach widgets.
  */
 static DetachExceptionCommand detachCommand = new DetachExceptionCommand();

 /**
  * <p>
  * Iterator through all child widgets, trying to perform the specified
  * {@link Command} for each. All widgets will be visited even if the Command
  * throws an exception. If one or more exceptions occur, they will be combined
  * and thrown as a single {@link AttachDetachException}.
  * </p>
  * <p>
  * Use this method when attaching or detaching a widget with children to
  * ensure that the logical and physical state of all children match the
  * logical and physical state of the parent.
  * </p>
  *
  * @param hasWidgets children to iterate
  * @param c the {@link Command} to try on all children
  */
 static void tryCommand(Iterator<Widget> hasWidgets, AttachCommand c) {
   Set<Exception> caught = null;
   for (;hasWidgets.moveNext(); ) {
     Widget w = hasWidgets.current;
     try {
       c.execute(w);
     } on Exception catch (e) {
       // Catch all exceptions to prevent some children from being attached
       // while others are not.
       if (caught == null) {
         caught = new Set<Exception>();
       }
       caught.add(e);
     }
   }

   // Throw the combined exceptions now that all children are attached.
   if (caught != null) {
     throw new AttachDetachException(caught);
   }
 }

 /**
  * <p>
  * Iterator through all child widgets, trying to perform the specified
  * {@link Command} for each. All widgets will be visited even if the Command
  * throws an exception. If one or more exceptions occur, they will be combined
  * and thrown as a single {@link AttachDetachException}.
  * </p>
  * <p>
  * Use this method when attaching or detaching a widget with children to
  * ensure that the logical and physical state of all children match the
  * logical and physical state of the parent.
  * </p>
  *
  * @param c the {@link Command} to try on all children
  * @param widgets children to iterate, null children are ignored
  */
 static void tryCommand2(AttachCommand c, List<IsWidget> widgets) {
   Set<Exception> caught = null;
   for (IsWidget w in widgets) {
     try {
       if (w != null) {
         c.execute(w.asWidget());
       }
     } on Exception catch (e) {
       // Catch all exceptions to prevent some children from being attached
       // while others are not.
       if (caught == null) {
         caught = new Set<Exception>();
       }
       caught.add(e);
     }
   }

   // Throw the combined exceptions now that all children are attached.
   if (caught != null) {
     throw new AttachDetachException(caught);
   }
 }

 /**
  * Construct a new {@link AttachDetachException}.
  *
  * @param causes the causes of the exception
  */
 AttachDetachException(Set<Exception> causes) : super (causes);
}

Extends

UmbrellaException > AttachDetachException

Static Properties

AttachExceptionCommand attachCommand #

The singleton command used to attach widgets.

static AttachExceptionCommand attachCommand = new AttachExceptionCommand()

DetachExceptionCommand detachCommand #

The singleton command used to detach widgets.

static DetachExceptionCommand detachCommand = new DetachExceptionCommand()

Static Methods

void tryCommand(Iterator<Widget> hasWidgets, AttachCommand c) #

Iterator through all child widgets, trying to perform the specified {@link Command} for each. All widgets will be visited even if the Command throws an exception. If one or more exceptions occur, they will be combined and thrown as a single {@link AttachDetachException}.

Use this method when attaching or detaching a widget with children to ensure that the logical and physical state of all children match the logical and physical state of the parent.

@param hasWidgets children to iterate @param c the {@link Command} to try on all children

static void tryCommand(Iterator<Widget> hasWidgets, AttachCommand c) {
 Set<Exception> caught = null;
 for (;hasWidgets.moveNext(); ) {
   Widget w = hasWidgets.current;
   try {
     c.execute(w);
   } on Exception catch (e) {
     // Catch all exceptions to prevent some children from being attached
     // while others are not.
     if (caught == null) {
       caught = new Set<Exception>();
     }
     caught.add(e);
   }
 }

 // Throw the combined exceptions now that all children are attached.
 if (caught != null) {
   throw new AttachDetachException(caught);
 }
}

void tryCommand2(AttachCommand c, List<IsWidget> widgets) #

Iterator through all child widgets, trying to perform the specified {@link Command} for each. All widgets will be visited even if the Command throws an exception. If one or more exceptions occur, they will be combined and thrown as a single {@link AttachDetachException}.

Use this method when attaching or detaching a widget with children to ensure that the logical and physical state of all children match the logical and physical state of the parent.

@param c the {@link Command} to try on all children @param widgets children to iterate, null children are ignored

static void tryCommand2(AttachCommand c, List<IsWidget> widgets) {
 Set<Exception> caught = null;
 for (IsWidget w in widgets) {
   try {
     if (w != null) {
       c.execute(w.asWidget());
     }
   } on Exception catch (e) {
     // Catch all exceptions to prevent some children from being attached
     // while others are not.
     if (caught == null) {
       caught = new Set<Exception>();
     }
     caught.add(e);
   }
 }

 // Throw the combined exceptions now that all children are attached.
 if (caught != null) {
   throw new AttachDetachException(caught);
 }
}

Constructors

new AttachDetachException(Set<Exception> causes) #

Construct a new {@link AttachDetachException}.

@param causes the causes of the exception

AttachDetachException(Set<Exception> causes) : super (causes);

Properties

final Set<Exception> causes #

inherited from UmbrellaException
Set<Exception> get causes => _causes;

Methods

String toString() #

inherited from UmbrellaException

Returns a string representation of this object.

docs inherited from Object
String toString() => makeMessage(_causes);