private void initComponents() {

        searchQuery = new JTextField();
        filter = new JButton();
        jScrollPane1 = new JScrollPane();
        widgetInformation = new JTextPane();
        jScrollPane2 = new JScrollPane();
        widgets = new JTree();

        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Interface Explorer by tholomew");
        setResizable(false);

        filter.setText("Search");
        filter.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {
                filterActionPerformed(evt);
            }
        });

        widgetInformation.setContentType("text/html");
        widgetInformation.setEditable(false);
        jScrollPane1.setViewportView(widgetInformation);
        for (int p : c.widgets.getValidParentIds()) {
            parents.add(new DefaultMutableTreeNode("Parent " + p));
            for (Widget w : c.widgets.get(p)) {
                if (w == null) {
                    continue;
                }
                parents.get(parents.size() - 1).add(new DefaultMutableTreeNode("Child " + w.getId()));
            }
            widgetsNode.add(parents.get(parents.size() - 1));
        }
        widgets.setModel(new DefaultTreeModel(widgetsNode));
        widgets.addTreeSelectionListener(new TreeSelectionListener() {

            @Override
            public void valueChanged(TreeSelectionEvent e) {
                nodeSelect(e);
            }
        });
        jScrollPane2.setViewportView(widgets);

        GroupLayout layout = new GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
                layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(searchQuery, GroupLayout.PREFERRED_SIZE, 368, GroupLayout.PREFERRED_SIZE).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED).addComponent(filter, GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE)).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane2).addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED).addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 251, GroupLayout.PREFERRED_SIZE).addContainerGap()));
        layout.setVerticalGroup(
                layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(searchQuery, GroupLayout.PREFERRED_SIZE, 23, GroupLayout.PREFERRED_SIZE).addComponent(filter)).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(jScrollPane2, GroupLayout.DEFAULT_SIZE, 454, Short.MAX_VALUE).addComponent(jScrollPane1)).addContainerGap()));

        pack();
    }