private void menuItemVisiblityPropertiesActionPerformed(ActionEvent pEvent) {
        final TableViewAdapter modelAdapter = (TableViewAdapter) getModel();
        TableViewColumn[] columns = modelAdapter.getModel().getColumns();

        if (mDialogVisiblity == null) {
            initDialogVisiblity();
        }

        mDialogVisiblity.getContentPane().removeAll();
        mGridLayout.setRows(columns.length + 1);

        for (int i = 0; i < columns.length; i++) {
            final TableViewColumn column = columns[i];
            final JCheckBox checkBoxColumn = new JCheckBox(column.getName());
            checkBoxColumn.setSelected(modelAdapter.isVisible(columns[i]));
            mDialogVisiblity.getContentPane().add(checkBoxColumn, null);

            checkBoxColumn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent pEvent) {
                    mMenuItemHide.setEnabled(modelAdapter.setVisible(column, checkBoxColumn.isSelected()));
                }

            });
        }

        mDialogVisiblity.getContentPane().add(mButtonVisiblityOK, null);
        mDialogVisiblity.pack();
        mDialogVisiblity.setLocation(mLastMouseClickedPosition);
        mDialogVisiblity.setVisible(true);
    }