adding setVisible() still need to work out some other bugs
fixed set visibility, except for custom button.