private void nodeSelect(TreeSelectionEvent evt) {
        try {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) widgets.getLastSelectedPathComponent();
            if (node != null) {
                if (!node.getUserObject().equals("Widgets")) {
                    DefaultMutableTreeNode pNode = (DefaultMutableTreeNode) node.getParent();
                    if (pNode != null) {
                        if (!pNode.getUserObject().equals("Widgets")) {
                            String ps = String.valueOf(pNode.getUserObject());
                            String cs = String.valueOf(node.getUserObject());
                            int p = Integer.parseInt(ps.substring(7, ps.length())); //parent
                            int c = Integer.parseInt(cs.substring(6, cs.length())); //child
                            setInformation(p, c);
                        }
                    }
                }
            }
        } catch (NullPointerException e) {
            System.out.println("Hi I'm a GUI and I return null pointers all the fucking time");
        }
    }