MTCheckbox.java :  » Java-2D » mt4j » org » mt4jx » components » visibleComponents » widgets » Java Open Source

Java Open Source » Java 2D » mt4j 
mt4j » org » mt4jx » components » visibleComponents » widgets » MTCheckbox.java
package org.mt4jx.components.visibleComponents.widgets;

import org.mt4j.components.css.style.CSSStyle;
import org.mt4j.input.inputProcessors.componentProcessors.tapProcessor.TapProcessor;
import org.mt4j.util.MTColor;

import processing.core.PApplet;

/**
 * The Class MTCheckbox.
 */
public class MTCheckbox extends MTForm implements BooleanForm{

  /** The boolean value. */
  private boolean booleanValue = false;;  
  
  /** The background color. */
  private MTColor backgroundColor;
  
  /** The stroke color. */
  private MTColor strokeColor;
  
  /**
   * Instantiates a new MTCheckBox
   * @param pApplet the applet
   * @param size the size of the side of the square
   */
  public MTCheckbox(PApplet pApplet, float size) {
    super(pApplet, 0, 0, size, size, MTForm.BOOLEAN);
    
    this.setCssForceDisable(true);
    
    this.backgroundColor = new MTColor(MTColor.YELLOW);
    this.setFillColor(backgroundColor);
    this.setNoFill(true);
    this.setNoStroke(false);
    this.setStrokeWeight(2f);
    this.style();
  }
  
  
  @Override
  protected void setDefaultGestureActions() {
    this.registerInputProcessor(new TapProcessor(getRenderer()));
    this.addGestureListener(TapProcessor.class, new BooleanTapListener());
  }

  private void style() {
    //Is the Item CSSStyle? If no, take standard colors
    if (this.isCSSStyled()) {
      CSSStyle vss = this.getCssHelper().getVirtualStyleSheet();
      this.setStrokeWeight(vss.getBorderWidth());
      this.setLineStipple(vss.getBorderStylePattern());
      
      if (vss.isModifiedBackgroundColor()) this.backgroundColor = vss.getBackgroundColor();
      else backgroundColor = MTColor.YELLOW;
      if (vss.isModifiedBorderColor()) strokeColor = vss.getBorderColor();
      else strokeColor = MTColor.WHITE;
    } else {
      this.backgroundColor = MTColor.YELLOW;
      this.strokeColor = MTColor.WHITE;
    }
    
    if (!brightEnough(backgroundColor)) {
      this.backgroundColor = MTColor.YELLOW;
    }
    this.setFillColor(backgroundColor);
    this.setStrokeColor(strokeColor);
  }
  
  private boolean brightEnough(MTColor color) {
    return color.getR() + color.getG() + color.getB() > 200 && color.getAlpha() > 200;

  }
  
  @Override
  public void applyStyleSheet() {
    System.out.println("Styling now. CSSID: " + this.getCSSID());
    style();
  }
  
  /* (non-Javadoc)
   * @see org.mt4jx.components.generic.MTForm#getBooleanValue()
   */
  @Override
  public boolean getBooleanValue() {
    return booleanValue;
  }

  /* (non-Javadoc)
   * @see org.mt4jx.components.generic.MTForm#getStringValue()
   */
  @Override
  public String getStringValue() {
    return String.valueOf(this.getBooleanValue());
  }

  /* (non-Javadoc)
   * @see org.mt4jx.components.generic.MTForm#getNumericValue()
   */
  @Override
  public float getNumericValue() {
    if (this.getBooleanValue() == true) return 1;
    else return 0;
  }

  /* (non-Javadoc)
   * @see org.mt4jx.components.generic.MTForm#setBooleanValue(boolean)
   */
  @Override
  public void setBooleanValue(boolean value) {
    this.booleanValue = value;
    if (this.booleanValue == true) {
      this.setNoFill(false);
    } else {
      this.setNoFill(true);
    }
  }


}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.