Package de.lessvoid.nifty.controls.dynamic.attributes

Source Code of de.lessvoid.nifty.controls.dynamic.attributes.ControlAttributes

package de.lessvoid.nifty.controls.dynamic.attributes;


import de.lessvoid.nifty.Nifty;
import de.lessvoid.nifty.controls.StandardControl;
import de.lessvoid.nifty.elements.Element;
import de.lessvoid.nifty.layout.LayoutPart;
import de.lessvoid.nifty.loaderv2.types.AttributesType;
import de.lessvoid.nifty.loaderv2.types.ControlType;
import de.lessvoid.nifty.loaderv2.types.EffectsType;
import de.lessvoid.nifty.loaderv2.types.ElementType;
import de.lessvoid.nifty.loaderv2.types.ImageType;
import de.lessvoid.nifty.loaderv2.types.LayerType;
import de.lessvoid.nifty.loaderv2.types.PanelType;
import de.lessvoid.nifty.loaderv2.types.PopupType;
import de.lessvoid.nifty.loaderv2.types.StyleType;
import de.lessvoid.nifty.loaderv2.types.TextType;
import de.lessvoid.nifty.screen.Screen;
import de.lessvoid.xml.xpp3.Attributes;

public class ControlAttributes {
  protected Attributes attributes = new Attributes();
  protected ControlInteractAttributes interact;
  protected ControlEffectsAttributes effects;
  private boolean isAutoId = false;
 
  public void setInteract(final ControlInteractAttributes controlInteract) {
    interact = controlInteract;
  }

  public void setEffects(final ControlEffectsAttributes controlEffects) {
    effects = controlEffects;
  }

  public void set(final String key, final String value) {
    attributes.set(key, value);
  }

  public String get(final String key) {
    return attributes.get(key);
  }

  public void setId(final String id) {
    isAutoId = false;
    attributes.set("id", id);
  }

  public void setAutoId(final String id) {
    isAutoId = true;
    attributes.set("id", id);
  }

  public boolean isAutoId() {
    return isAutoId;
  }

  public void setName(final String name) {
    attributes.set("name", name);
  }

  public void setHeight(final String height) {
    attributes.set("height", height);
  }

  public void setWidth(final String width) {
    attributes.set("width", width);
  }

  public void setX(final String x) {
    attributes.set("x", x);
  }

  public void setY(final String y) {
    attributes.set("y", y);
  }

  public void setAlign(final String align) {
    attributes.set("align", align);
  }

  public void setVAlign(final String valign) {
    attributes.set("valign", valign);
  }

  public void setPadding(final String padding) {
    attributes.set("padding", padding);
  }

  public void setPaddingLeft(final String paddingLeft) {
    attributes.set("paddingLeft", paddingLeft);
  }

  public void setPaddingRight(final String paddingRight) {
    attributes.set("paddingRight", paddingRight);
  }

  public void setPaddingTop(final String paddingTop) {
    attributes.set("paddingTop", paddingTop);
  }

  public void setPaddingBottom(final String paddingBottom) {
    attributes.set("paddingBottom", paddingBottom);
  }

  public void setChildClip(final String childClip) {
    attributes.set("childClip", childClip);
  }

  public void setVisible(final String visible) {
    attributes.set("visible", visible);
  }

  public void setVisibleToMouse(final String visibleToMouse) {
    attributes.set("visibleToMouse", visibleToMouse);
  }

  public void setChildLayout(final String childLayout) {
    attributes.set("childLayout", childLayout);
  }

  public void setFocusable(final String focusable) {
    attributes.set("focusable", focusable);
  }

  public void setFocusableInsertBeforeElementId(final String focusableInsertBeforeElementId) {
    attributes.set("focusableInsertBeforeElementId", focusableInsertBeforeElementId);
  }

  public void setFont(final String font) {
    attributes.set("font", font);
  }

  public void setTextHAlign(final String textHAlign) {
    attributes.set("textHAlign", textHAlign);
  }

  public void setTextVAlign(final String textVAlign) {
    attributes.set("textVAlign", textVAlign);
  }

  public void setColor(final String color) {
    attributes.set("color", color);
  }

  public void setSelectionColor(final String selectionColor) {
    attributes.set("selectionColor", selectionColor);
  }

  public void setText(final String text) {
    attributes.set("text", text);
  }

  public void setBackgroundColor(final String backgroundColor) {
    attributes.set("backgroundColor", backgroundColor);
  }

  public void setBackgroundImage(final String backgroundImage) {
    attributes.set("backgroundImage", backgroundImage);
  }

  public void setImageMode(final String imageMode) {
    attributes.set("imageMode", imageMode);
  }

  public void setFilename(final String filename) {
    attributes.set("filename", filename);
  }

  public void setInset(final String inset) {
    attributes.set("inset", inset);
  }

  public void setController(final String controller) {
    attributes.set("controller", controller);
  }

  public void setInputMapping(final String inputMapping) {
    attributes.set("inputMapping", inputMapping);
  }

  public void setStyle(final String style) {
    attributes.set("style", style);
  }

  public void setInteractAttribute(final String name, final String value) {
    ensureInteract();
    interact.setAttribute(name, value);
  }

  public void setInteractOnClick(final String onClick) {
    ensureInteract();
    interact.setOnClick(onClick);
  }

  public void setInteractOnRelease(final String onRelease) {
    ensureInteract();
    interact.setOnRelease(onRelease);
  }

  public void setInteractOnMouseOver(final String onMouseOver) {
    ensureInteract();
    interact.setOnMouseOver(onMouseOver);
  }

  public void setInteractOnClickRepeat(final String onClickRepeat) {
    ensureInteract();
    interact.setOnClickRepeat(onClickRepeat);
  }

  public void setInteractOnClickMouseMove(final String onClickMouseMove) {
    ensureInteract();
    interact.setOnClickMouseMove(onClickMouseMove);
  }

  public void setInteractOnClickAlternateKey(final String onClickAlternateKey) {
    ensureInteract();
    interact.setOnClickAlternateKey(onClickAlternateKey);
  }

  private void ensureInteract() {
    if (interact == null) {
      interact = new ControlInteractAttributes();
    }
  }

  public void setEffectsAttribute(final String name, final String value) {
    ensureEffects();
    effects.setAttribute(name, value);
  }

  public void setEffectsOverlay(final String overlay) {
    ensureEffects();
    effects.setOverlay(overlay);
  }

  public void addEffectsOnStartScreen(final ControlEffectAttributes effectParam) {
    ensureEffects();
    effects.addOnStartScreen(effectParam);
  }

  public void addEffectsOnEndScreen(final ControlEffectAttributes effectParam) {
    ensureEffects();
    effects.addOnEndScreen(effectParam);
  }

  public void addEffectsOnHover(final ControlEffectOnHoverAttributes effectParam) {
    ensureEffects();
    effects.addOnHover(effectParam);
  }

  public void addEffectsOnStartHover(final ControlEffectOnHoverAttributes effectParam) {
    ensureEffects();
    effects.addOnStartHover(effectParam);
  }

  public void addEffectsOnEndHover(final ControlEffectOnHoverAttributes effectParam) {
    ensureEffects();
    effects.addOnEndHover(effectParam);
  }

  public void addEffectsOnClick(final ControlEffectAttributes effectParam) {
    ensureEffects();
    effects.addOnClick(effectParam);
  }

  public void addEffectsOnFocus(final ControlEffectAttributes effectParam) {
    ensureEffects();
    effects.addOnFocus(effectParam);
  }

  public void addEffectsOnLostFocus(final ControlEffectAttributes effectParam) {
    ensureEffects();
    effects.addOnLostFocus(effectParam);
  }

  public void addEffectsOnGetFocus(final ControlEffectAttributes effectParam) {
    ensureEffects();
    effects.addOnGetFocus(effectParam);
  }

  public void addEffectsOnActive(final ControlEffectAttributes effectParam) {
    ensureEffects();
    effects.addOnActive(effectParam);
  }

  public void addEffectsOnShow(final ControlEffectAttributes effectParam) {
    ensureEffects();
    effects.addOnShow(effectParam);
  }

  public void addEffectsOnHide(final ControlEffectAttributes effectParam) {
    ensureEffects();
    effects.addOnHide(effectParam);
  }

  public void addEffectsOnCustom(final ControlEffectAttributes effectParam) {
    ensureEffects();
    effects.addOnCustom(effectParam);
  }

  private void ensureEffects() {
    if (effects == null) {
      effects = new ControlEffectsAttributes();
    }
  }

  protected Element createControlInternal(
      final Nifty nifty,
      final Screen screen,
      final Element parent) {
    ControlType controlType = new ControlType(attributes);
    return buildControl(nifty, screen, parent, controlType, new LayoutPart());
  }

  protected Element createText(
      final Nifty nifty,
      final Screen screen,
      final Element parent) {
    TextType textType = new TextType(attributes);
    return buildControl(nifty, screen, parent, textType, new LayoutPart());
  }

  protected Element createPanel(
      final Nifty nifty,
      final Screen screen,
      final Element parent) {
    PanelType panelType = new PanelType(attributes);
    return buildControl(nifty, screen, parent, panelType, new LayoutPart());
  }

  protected void registerPopup(final Nifty nifty) {
    PopupType popupType = new PopupType(attributes);
    popupType.translateSpecialValues(nifty, null);
    nifty.registerPopup(popupType);
  }

  protected Element createLayer(
      final Nifty nifty,
      final Screen screen,
      final Element parent) {
    LayerType layerType = new LayerType(attributes);
    return buildControl(nifty, screen, parent, layerType, nifty.getRootLayerFactory().createRootLayerLayoutPart(nifty));
  }

  protected Element createImage(
      final Nifty nifty,
      final Screen screen,
      final Element parent) {
    ImageType imageType = new ImageType(attributes);
    return buildControl(nifty, screen, parent, imageType, new LayoutPart());
  }

  private Element buildControl(
      final Nifty nifty,
      final Screen screen,
      final Element parent,
      final ElementType elementType,
      final LayoutPart layoutPart) {
    if (effects != null) {
      elementType.setEffect(effects.create());
    }
    if (interact != null) {
      elementType.setInteract(interact.create());
    }
    elementType.prepare(nifty, screen, parent.getElementType());
    elementType.connectParentControls(parent);
    Element element = elementType.create(
      parent,
      nifty,
      screen,
      layoutPart);

    parent.layoutElements();
    screen.layoutLayers();
    return element;
  }

  protected StandardControl getStandardControl() {
    return new StandardControl() {
      public Element createControl(final Nifty nifty, final Screen screen, final Element parent) throws Exception {
        return createControlInternal(nifty, screen, parent);
      }
    };
  }

  public void refreshAttributes(final Attributes attrib) {
    attrib.refreshFromAttributes(attributes);
  }

  public void refreshEffects(final EffectsType effects) {
    if (this.effects != null) {
      effects.refreshFromAttributes(this.effects);
    }
  }

  public ElementType createType() {
    // you'll need to implement this in a sub class
    return null;
  }

  public void connect(final ElementType e) {
    if (effects != null) {
      e.setEffect(effects.create());
    }
    if (interact != null) {
      e.setInteract(interact.create());
    }
  }

  public StyleType createStyleType(final Attributes styleAttributes) {
    StyleType styleType = new StyleType(styleAttributes);
    if (attributes != null) {
      styleType.setAttributes(new AttributesType(attributes));
    }
    if (effects != null) {
      styleType.setEffect(effects.create());
    }
    if (interact != null) {
      styleType.setInteract(interact.create());
    }
    return styleType;
  }
}
TOP

Related Classes of de.lessvoid.nifty.controls.dynamic.attributes.ControlAttributes

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.