protected void invalidate()
    {
        for(ComponentListener cl: componentListeners)
            cl.onComponentInvalidated(this);
        
        if(parent != null && parent instanceof AbstractContainer) {
            ((AbstractContainer)parent).invalidate();
        }
    }