package ext_tools.preferences;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import org.openstreetmap.josm.Main;
import ext_tools.ExtTool;
import ext_tools.ToolsInformation;
public class MyToolsPanel extends JPanel {
ToolsInformation tools;
public MyToolsPanel(ToolsInformation tools) {
super(new GridBagLayout());
this.tools = tools;
}
public void refresh() {
removeAll();
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridy = 0;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets(2, 5, 2, 5);
for (final ExtTool tool : tools.getToolsList()) {
gbc.gridx = 0;
gbc.weightx = 1.0;
gbc.anchor = GridBagConstraints.WEST;
final JCheckBox cbTool = new JCheckBox(tool.getName());
cbTool.setSelected(tool.isEnabled());
cbTool.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tool.setEnabled(cbTool.isSelected());
}
});
add(cbTool, gbc);
gbc.gridx = 1;
gbc.weightx = 0;
gbc.anchor = GridBagConstraints.EAST;
final JButton bEdit = new JButton(tr("Edit"));
bEdit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
JDialog dlg = new EditToolDialog(tool);
dlg.setVisible(true);
dlg.dispose();
refresh();
}
});
add(bEdit, gbc);
gbc.gridx = 2;
final JButton bDel = new JButton("X");
bDel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
if (JOptionPane.showConfirmDialog(Main.parent,
tr("Delete tool \"{0}\"?", tool.name),
tr("Are you sure?"),
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION)
{
tools.removeTool(tool);
refresh();
}
}
});
add(bDel, gbc);
gbc.gridy++;
}
gbc.gridx = 0;
gbc.fill = GridBagConstraints.NONE;
gbc.anchor = GridBagConstraints.WEST;
final JButton bNew = new JButton(tr("New tool..."));
bNew.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
ExtTool tool = new ExtTool();
JDialog dlg = new EditToolDialog(tool);
dlg.setVisible(true);
dlg.dispose();
if (tool.name != null && (!"".equals(tool.name))) {
tools.addTool(tool);
tool.setEnabled(true);
}
refresh();
}
});
add(bNew, gbc);
gbc.gridy++;
gbc.weightx = 1.0;
gbc.weighty = 1.0;
gbc.fill = GridBagConstraints.BOTH;
add(new JPanel(), gbc);
revalidate();
repaint();
}
}