public Palette(int x, int y)
        {
            // Start out hidden.
            IsHidden = true;
            Position = new Point(x, y);

            ObjectFactory = new EntityFactory();

            // Instantiate new start states.
            _states.Add("Shape", new ShapePaletteState(this));
            _states.Add("Num", new NumPaletteState(this));
            _states.Add("Alph", new AlphPaletteState(this));

            // The states they go to.
            _states.Add("Size", new SizePaletteState(this));
            _states.Add("Color", new ColorPaletteState(this));
            _states.Add("Position", new PositionPaletteState(this));

            // Setup the initial, and next states.
            _states.Add("INITIAL", _states[InitialStateName]);
            // First is always Shape
            CurrentState = _states["INITIAL"];
            // Set the current state to the initial state.
            CurrentStateName = InitialStateName;

            // Make sure that it's unhidden!
            Show();
        }
        public void Reset()
        {
            // Create a new EntityFactory and let the GC deal with the old one.
            ObjectFactory = new EntityFactory();

            RequestStateChange("INITIAL");
            Hide();
        }