code: public void addPainter(Painter<T> painter)
      {
          Collection<Painter<T>> old = new ArrayList<Painter<T>>(getPainters());
          
          this.painters.add(painter);    
          
          if (painter instanceof AbstractPainter)
          {
              ((AbstractPainter<?>) painter).addPropertyChangeListener(handler);
          }
  
          setDirty(true);
          firePropertyChange("painters", old, getPainters());
      }
docs: Adds a painter to the queue of painters
  @param painter the painter that is added