@Override
 public void setVisible(boolean visible) {
   super.setVisible(visible);
   if (this.guiButton != null) {
     if (visible) {
       this.guiButton.xPosition = this.realX;
       this.guiButton.yPosition = this.realY;
     } else {
       this.guiButton.xPosition = FAR;
       this.guiButton.yPosition = FAR;
     }
   }
 }
  /**
   * The following actions are performed:
   *
   * <ul>
   *   <li>Defaults maxLength, minLength (if not set) to maxLength of parent field
   * </ul>
   *
   * {@inheritDoc}
   */
  @Override
  public void performFinalize(Object model, LifecycleElement parent) {
    super.performFinalize(model, parent);

    if (parent instanceof InputField) {
      InputField field = (InputField) parent;
      if (getMaxLength() == null) {
        setMaxLength(field.getMaxLength());
      }

      if (getMinLength() == null) {
        setMinLength(field.getMinLength());
      }
    }
  }