All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.exigen.ie.constrainer.impl.UndoableIntImpl Maven / Gradle / Ivy

package com.exigen.ie.constrainer.impl;
import com.exigen.ie.constrainer.Constrainer;
import com.exigen.ie.constrainer.Undo;
import com.exigen.ie.constrainer.UndoImpl;
import com.exigen.ie.constrainer.Undoable;
import com.exigen.ie.constrainer.UndoableInt;
import com.exigen.ie.tools.Reusable;
import com.exigen.ie.tools.ReusableFactory;

/**
 * A generic implementation of the UndoableInt.
 */
//public final class UndoableIntImpl extends UndoableOnceImpl implements UndoableInt
public final class UndoableIntImpl extends UndoableImpl implements UndoableInt
{
  private int _value;

  /**
   * Constructor with a given value.
   */
  public UndoableIntImpl(Constrainer constrainer, int value)
  {
    this(constrainer,value,"");
  }

  /**
   * Constructor with a given value and name.
   */
  public UndoableIntImpl(Constrainer constrainer, int value, String name)
  {
    super(constrainer, name);
    _value = value;
  }

  public int value()
  {
    return _value;
  }

  public void setValue(int value)
  {
    if(value != _value)
    {
      addUndo();
      _value = value;
    }
  }

  /**
   * Sets the current value.
   */
  void forceValue(int value)
  {
    _value = value;
  }

  public Undo createUndo()
  {
    return UndoUndoableInt.getUndo();
  }

  /**
   * Returns a String representation of this object.
   * @return a String representation of this object.
   */
  public String toString()
  {
    return name() + "[" + _value + "]";
  }

  /**
   * Undo Class for UndoUndoableInt.
   */
  static class UndoUndoableInt extends UndoImpl
  {

    static ReusableFactory _factory = new ReusableFactory()
    {
        protected Reusable createNewElement()
        {
          return new UndoUndoableInt();
        }

    };

    static UndoUndoableInt getUndo()
    {
      return (UndoUndoableInt) _factory.getElement();
    }

    private int _value;

    public void undoable(Undoable u)
    {
      super.undoable(u);
      UndoableInt var = (UndoableInt) u;
      _value = var.value();
    }

    public void undo()
    {
      UndoableIntImpl var = (UndoableIntImpl) undoable();
      var._value = _value;
      super.undo();
    }

    /**
     * Returns a String representation of this object.
     * @return a String representation of this object.
     */
    public String toString()
    {
      return "UndoUndoableInt "+undoable();
    }

  } // ~UndoUndoableInt

} // ~UndoableIntImpl




© 2015 - 2024 Weber Informatics LLC | Privacy Policy