add swing observer demo