@Override
  public void handleCustomDrawableEvent(Object source, int eventType, Drawable d1, Drawable d2) {
    // System.out.println("drawable event called");
    switch (eventType) {
      case CustomEvent.SWAP_DRAWABLE:
        int i = this.drawables.indexOf(d1);
        drawables.set(i, d2);
        d2.addEventListener(this);
        System.out.println("drawable swapped");

        break;
    }
  }
  @Override
  public void handleCustomDrawableEvent(Object source, int eventType, Drawable d) {
    System.out.println("drawable event called");
    switch (eventType) {
      case CustomEvent.DRAWABLE_CREATED:
        this.addDrawable(d);
        d.addEventListener(this);
        // System.out.println("drawable created");
        break;

      case CustomEvent.REMOVE_DRAWABLE:
        this.removeDrawable(d);
        d.removeEventListener(this);
        // System.out.println("drawable removed");
        // System.out.println("condensing holes");
        break;

      case CustomEvent.SHAPE_LOAD_REQUESTED:
        this.fireDrawableEvent(CustomEvent.SHAPE_LOAD_REQUESTED, d);
        break;
    }
    System.out.println("num drawables=" + this.drawables.size());
  }