The QuickNotepadToolBar Class
Prev | Chapter 18. Implementing a Simple Plugin | Next

## The QuickNotepadToolBar Class

There is nothing remarkable about the toolbar panel that is placed inside the `QuickNotepad` object. The constructor shows the continued use of items from the plugin's properties file.

    public class QuickNotepadToolPanel extends JPanel
    {
        private QuickNotepad pad;
        private JLabel label;

        public QuickNotepadToolPanel(QuickNotepad qnpad)
        {
            pad = qnpad;
            JToolBar toolBar = new JToolBar();
            toolBar.setFloatable(false);

            toolBar.add(makeCustomButton("quicknotepad.choose-file",
                new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                        QuickNotepadToolPanel.this.pad.chooseFile();
                    }
                }));
            toolBar.add(makeCustomButton("quicknotepad.save-file",
                new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                        QuickNotepadToolPanel.this.pad.saveFile();
                    }
                }));
            toolBar.add(makeCustomButton("quicknotepad.copy-to-buffer",
                new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                        QuickNotepadToolPanel.this.pad.copyToBuffer();
                    }
                }));
            label = new JLabel(pad.getFilename(),
                SwingConstants.RIGHT);
            label.setForeground(Color.black);
            label.setVisible(jEdit.getProperty(
                QuickNotepadPlugin.OPTION_PREFIX
                + "show-filepath").equals("true"));
            this.setLayout(new BorderLayout(10, 0));
            this.add(BorderLayout.WEST, toolBar);
            this.add(BorderLayout.CENTER, label);
            this.setBorder(BorderFactory.createEmptyBorder(0, 0, 3, 10));
        }

        ...

    }

The method `makeCustomButton()` provides uniform attributes for the three toolbar buttons corresponding to three of the plugin's use actions. The menu titles for the user actions serve double duty as tooltip text for the buttons. There is also a `propertiesChanged()` method for the toolbar that sets the text and visibility of the label containing the notepad file path.

Prev | Up | Next
The QuickNotepad Class | Home | The QuickNotepadOptionPane Class