public void propertyChange(PropertyChangeEvent evt) {
ToolWindowDescriptor toolWindowDescriptor = (ToolWindowDescriptor) evt.getSource();
boolean visible = (Boolean) evt.getNewValue();
Component content = (visible) ? toolWindowDescriptor.getComponent() : null;
FloatingContainer container = (FloatingContainer) toolWindowDescriptor.getToolWindowContainer();
if (content == null && toolWindowDescriptor.getToolWindow().isVisible())
return;
container.propertyChange(evt);
container.setVisible(visible);
}