code: public static void bindPopped (final Value<Boolean> popped, final Position pos,
                                     final Widget target, final Thunk thunk)
      {
          Preconditions.checkNotNull(target, "target");
          Preconditions.checkNotNull(thunk, "thunk");
          popped.addListenerAndTrigger(new Value.Listener<Boolean>() {
              public void valueChanged (Boolean visible) {
                  if (visible) {
                      popped.removeListener(this);
                      bindPopped(popped, pos, target, thunk.createPopup());
                  }
              }
          });
      }
docs: Binds the popped up state of a popup to the supplied boolean value and vice versa (i.e. if
  the popup is popped down, the value will be updated to false). The popup is not created
  until the first time the value is true.