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.JLabel;
import javax.swing.JPanel;
import ext_tools.ExtTool;
import ext_tools.ToolsInformation;
public class ToolsRepositoryPanel extends JPanel {
ToolsInformation tools;
public ToolsRepositoryPanel(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("Install"));
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.gridy++;
gbc.gridx = 0;
gbc.weightx = 1.0;
gbc.anchor = GridBagConstraints.WEST;
JLabel lbl = new JLabel(tool.cmdline);
add(lbl, gbc);
gbc.gridy++;
}
gbc.gridy++;
gbc.weightx = 1.0;
gbc.weighty = 1.0;
gbc.fill = GridBagConstraints.BOTH;
add(new JPanel(), gbc);
revalidate();
repaint();
}
}