/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.dataprocess.gui.util; import net.codjo.mad.gui.request.Position; import net.codjo.mad.gui.request.RequestToolBar; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JPanel; /** * */ public abstract class ClosePanel extends JPanel { private JButton closeButton; protected ClosePanel(String text) { closeButton = new JButton(text); closeButton.setName("closeButton"); initPanel(); } protected ClosePanel(String text, Icon icon, String toolTipText) { this(text); closeButton.setIcon(icon); if (toolTipText != null) { closeButton.setToolTipText(toolTipText); } } public JButton getCloseButton() { return closeButton; } private void initPanel() { setLayout(new FlowLayout(FlowLayout.RIGHT)); closeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { dispose(); } }); add(closeButton); } protected abstract void dispose(); public void addToRequestToolbar(RequestToolBar toolBar) { toolBar.addComponent(closeButton, Position.last()); RequestToolBar.doEffect(toolBar); } public void removeFromRequestToolbar(RequestToolBar toolBar) { toolBar.remove(closeButton); RequestToolBar.doEffect(toolBar); } }