@Override
    public void setVisible(boolean visible) {
        //
        // Centering About windows 
        //
        if (visible && fWhichAbout != kMessageReceived) {
            ComponentUtil.centerComponent(this, fParentFrame.getLocation(), fParentFrame.getSize());
        }
        //
        // Restore / Save the location of Message Received Dialog.
        //
        if (fWhichAbout == kMessageReceived) {
            if (visible) {
                ComponentUtil.fitComponentIntoScreen(this, fPropertiesDB.getRcvDialogLocation());
            } else {
                fPropertiesDB.setRcvDialogLocation(getLocation());
                fPropertiesDB.saveProperties(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, ""));
            }
        }
        //
        // Update memory usage if necesary
        //
        if (visible && fWhichAbout == kSystemProperties) {
            updateMemoryInformation();
        }

        super.setVisible(visible);
    }