class FlagBitsPaneView
{
    private final JPanel panel;
    private final String flagHeader;
    private final String flagValue;
    private final Object[][] tableData;
    private final String[] columnNames;

    /**
     * Constructor
     * @param flagHeader String instance. Flag type.
     * @param flagValue String instance. Flag integer value.
     * @param tableRowData Object 2d array for table row data.
     * @param columnNames String array for column names.
     */
    FlagBitsPaneView(String flagHeader, String flagValue, Object[][] tableRowData, String[] columnNames)
    {
        this.flagHeader = flagHeader;
        this.flagValue = flagValue;
        this.tableData = tableRowData;
        this.columnNames = columnNames;
        panel = new JPanel();

        if (flagValue != null && tableData != null)
        {
            createView();
        }
    }

    private void createView()
    {<FILL_FUNCTION_BODY>}

    /**
     * Returns the view.
     * @return JPanel instance.
     */
    JPanel getPanel()
    {
        return panel;
    }
}

        panel.setLayout(new GridBagLayout());
        panel.setPreferredSize(new Dimension(300, 500));

        JLabel flagLabel = new JLabel(flagHeader);
        flagLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
        flagLabel.setFont(new Font(Font.MONOSPACED, Font.BOLD, 30));
        JPanel flagLabelPanel = new JPanel();
        flagLabelPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
        flagLabelPanel.add(flagLabel);

        JLabel flagValueLabel = new JLabel(flagValue);
        flagValueLabel.setAlignmentX(Component.LEFT_ALIGNMENT);
        flagValueLabel.setFont(new Font(Font.MONOSPACED, Font.BOLD, 20));

        JTable table = new JTable(tableData, columnNames);
        JScrollPane scrollPane = new JScrollPane(table);
        table.setFillsViewportHeight(true);
        scrollPane.setAlignmentX(Component.LEFT_ALIGNMENT);

        Box box = Box.createVerticalBox();
        box.add(flagValueLabel);
        box.add(scrollPane);
        box.setAlignmentX(Component.LEFT_ALIGNMENT);

        GridBagConstraints gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.weighty = 0.05;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        gbc.anchor = GridBagConstraints.PAGE_START;

        panel.add(flagLabelPanel, gbc);

        gbc.gridy = 2;
        gbc.weighty = 0.9;
        gbc.weightx = 1;
        gbc.fill = GridBagConstraints.BOTH;
        gbc.anchor = GridBagConstraints.BELOW_BASELINE;

        panel.add(box, gbc);
    
<no_super_class>