dqp.addActionListener(this);
    protected void init(SymbolReferenceLibrary srl, List trees) {        // ///////////////////        // Create the tree window by creating the scroll pane and add        // the tree to it.        GridBagLayout outergridbag = new GridBagLayout();        GridBagConstraints outerc = new GridBagConstraints();        JPanel setChoicePanel = new JPanel();        JLabel setChoiceLabel = new JLabel("Symbol Set:");        JComboBox setChoices = new JComboBox(trees.toArray());        setChoices.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                JComboBox jcb = (JComboBox) e.getSource();                setSelectedTreeHolder((SymbolTreeHolder) jcb.getSelectedItem());            }        });        currentSymbolTreeHolder = (SymbolTreeHolder) setChoices.getSelectedItem();        setChoicePanel.add(setChoiceLabel);        setChoicePanel.add(setChoices);        treeView = new JScrollPane(currentSymbolTreeHolder.getTree());        setLayout(outergridbag);        outerc.fill = GridBagConstraints.BOTH;        outerc.gridwidth = GridBagConstraints.REMAINDER;        outerc.weighty = 0.0;        outerc.insets = new Insets(5, 10, 5, 10);        outergridbag.setConstraints(setChoicePanel, outerc);        add(setChoicePanel);        outerc.weightx = 1.0;        outerc.weighty = 1.0;        outerc.gridwidth = GridBagConstraints.RELATIVE;        outergridbag.setConstraints(treeView, outerc);        add(treeView);        // Add the symbol preview area to the right of the tree        JPanel symbolPanel = PaletteHelper.createVerticalPanel(" Current Symbol ");        setImageIcon(getNotFoundImageIcon());        symbolPanel.add(symbolImageLabel);        outerc.weightx = 0.0;        outerc.gridwidth = GridBagConstraints.REMAINDER;        outergridbag.setConstraints(symbolPanel, outerc);        dqp = new DimensionQueryPanel(getDesiredIconDimension());        dqp.addActionListener(this);        outergridbag.setConstraints(dqp, outerc);        symbolPanel.add(dqp);        add(symbolPanel);        // ///////////////////        optionPanel = PaletteHelper.createVerticalPanel(" Symbol Attributes ");        optionPanel.add(((SymbolTreeHolder) setChoices.getSelectedItem()).getOptionPanel());        outergridbag.setConstraints(optionPanel, outerc);        add(optionPanel);        // ///////////////////        // gridbag2 is for the name panel and the recent symbols.        GridBagLayout gridbag2 = new GridBagLayout();        GridBagConstraints c2 = new GridBagConstraints();        JPanel namePanel = new JPanel();        namePanel.setLayout(gridbag2);        c2.weightx = 0;        c2.anchor = GridBagConstraints.WEST;        JLabel nameLabel = new JLabel("Symbol Code: ");        gridbag2.setConstraints(nameLabel, c2);        namePanel.add(nameLabel);        c2.fill = GridBagConstraints.HORIZONTAL;        c2.weightx = 1.0;        if (nameField == null) {            nameField = new JTextField(EMPTY_CODE);        }        nameField.addActionListener(this);        nameField.setActionCommand(NAMEFIELD_CMD);        gridbag2.setConstraints(nameField, c2);        namePanel.add(nameField);        createImageFileButton = new JButton("Create Image File");        createImageFileButton.addActionListener(this);        createImageFileButton.setActionCommand(CREATE_IMAGE_CMD);        createImageFileButton.setEnabled(false);        createImageFileButton.setVisible(allowCreateImage);        c2.weightx = 0.0;        gridbag2.setConstraints(createImageFileButton, c2);        namePanel.add(createImageFileButton);        outerc.weighty = 0.0;        outerc.gridwidth = GridBagConstraints.REMAINDER;        outergridbag.setConstraints(namePanel, outerc);        add(namePanel);        // ///////////////////        // Just call this to make sure that the stuff in the name        // field matches the selected JTree        setSelectedTreeHolder(currentSymbolTreeHolder);    }