private JPanel getNodePanel() {
        if (nodePanel == null) {
            nodePanel = new JPanel(new GridBagLayout());
            
            // Sub-panels
            int row = 0;
            nodePanel.add( 
                    getDeletePanel(),
                    new GridBagConstraints(0, row, 1, 1, 1, 1,
                            GridBagConstraints.WEST, GridBagConstraints.BOTH,
                            new Insets(2, 2, 2, 2), 0, 0));
            nodePanel.add(
                    getStatsPanel(),
                    new GridBagConstraints(1, row++, 4, 1, 1, 1,
                            GridBagConstraints.WEST, GridBagConstraints.BOTH,
                            new Insets(2, 2, 2, 2), 0, 0));
    
            nodePanel.add(
                    getDataPanel(),
                    new GridBagConstraints(0, row++, 5, 1, 1, 1,
                            GridBagConstraints.WEST, GridBagConstraints.BOTH,
                            new Insets(2, 2, 2, 2), 0, 0));
    
            nodePanel.add(
                    getNewChildPanel(),
                    new GridBagConstraints(0, row++, 5, 1, 1, 1,
                            GridBagConstraints.WEST, GridBagConstraints.BOTH,
                            new Insets(2, 2, 2, 2), 0, 0));
        }
        return nodePanel;
    }