private FilterPanel() {

        this.setLayout(new GridLayout(gcDataSubTypeList.size(), 1));

        for (Object obj : gcDataSubTypeList) {

            FilterJCheckBox checkBox = new FilterJCheckBox(obj);

            checkBox.setSelected(ControlData.filterObjects.contains(obj));

            this.add(checkBox);

            checkBox.addItemListener(new ItemListener() {

                @Override
                public void itemStateChanged(ItemEvent e) {
                    FilterJCheckBox checkBox = (FilterJCheckBox) (e
                            .getItemSelectable());
                    if (checkBox.isSelected()) {
                        ControlData.filterObjects.add(checkBox.filterObj);
                    } else {
                        ControlData.filterObjects.remove(checkBox.filterObj);
                    }

                    GCViewerFrame.gcViewer.repaintGCViewer();
                }
            });
        }
    }