| | |
| | | import java.awt.BorderLayout;
|
| | | import java.awt.Color;
|
| | | import java.awt.Dimension;
|
| | | import java.awt.Font;
|
| | | import java.awt.GridBagLayout;
|
| | | import java.awt.GridLayout;
|
| | | import java.awt.event.ActionEvent;
|
| | |
| | | private static final long serialVersionUID = 1L;
|
| | | private PaletteModel<T> availableModel;
|
| | | private PaletteModel<T> selectedModel;
|
| | | private JButton add;
|
| | | private JButton subtract;
|
| | | private JButton up;
|
| | | private JButton down;
|
| | |
|
| | | public JPalette() {
|
| | | this(false);
|
| | | }
|
| | |
|
| | | public JPalette(boolean controlOrder) {
|
| | | super(new BorderLayout(5, 5));
|
| | |
|
| | | availableModel = new PaletteModel<T>();
|
| | |
| | | final JTable available = new JTable(availableModel);
|
| | | final JTable selected = new JTable(selectedModel);
|
| | |
|
| | | JButton add = new JButton("->");
|
| | | add = new JButton("->");
|
| | | add.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent event) {
|
| | | List<T> move = new ArrayList<T>();
|
| | |
| | | selectedModel.fireTableDataChanged();
|
| | | }
|
| | | });
|
| | | JButton subtract = new JButton("<-");
|
| | | subtract = new JButton("<-");
|
| | | subtract.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent event) {
|
| | | List<T> move = new ArrayList<T>();
|
| | |
| | | }
|
| | | });
|
| | |
|
| | | up = new JButton("\u2191");
|
| | | up.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent event) {
|
| | | int row = selected.getSelectedRow();
|
| | | if (row > 0) {
|
| | | T o = selectedModel.list.remove(row);
|
| | | selectedModel.list.add(row - 1, o);
|
| | | selectedModel.fireTableDataChanged();
|
| | | }
|
| | | }
|
| | | });
|
| | |
|
| | | down = new JButton("\u2193");
|
| | | down.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent event) {
|
| | | int row = selected.getSelectedRow();
|
| | | if (row < selected.getRowCount() - 1) {
|
| | | T o = selectedModel.list.remove(row);
|
| | | selectedModel.list.add(row + 1, o);
|
| | | selectedModel.fireTableDataChanged();
|
| | | }
|
| | | }
|
| | | });
|
| | |
|
| | | JPanel controls = new JPanel(new GridLayout(0, 1, 0, 5));
|
| | | controls.add(add);
|
| | | controls.add(subtract);
|
| | | if (controlOrder) {
|
| | | controls.add(up);
|
| | | controls.add(down);
|
| | | }
|
| | |
|
| | | JPanel center = new JPanel(new GridBagLayout());
|
| | | center.add(controls);
|
| | |
|
| | | add(newListPanel("Available", available), BorderLayout.WEST);
|
| | | add(newListPanel(Translation.get("gb.available"), available), BorderLayout.WEST);
|
| | | add(center, BorderLayout.CENTER);
|
| | | add(newListPanel("Selected", selected), BorderLayout.EAST);
|
| | | add(newListPanel(Translation.get("gb.selected"), selected), BorderLayout.EAST);
|
| | | }
|
| | |
|
| | | private JPanel newListPanel(String label, JTable table) {
|
| | | NameRenderer nameRenderer = new NameRenderer();
|
| | | table.setCellSelectionEnabled(false);
|
| | | table.setRowSelectionAllowed(true);
|
| | | table.setRowHeight(nameRenderer.getFont().getSize() + 8);
|
| | | table.getTableHeader().setReorderingAllowed(false);
|
| | | table.setGridColor(new Color(0xd9d9d9));
|
| | | table.setBackground(Color.white);
|
| | |
| | | JScrollPane jsp = new JScrollPane(table);
|
| | | jsp.setPreferredSize(new Dimension(225, 175));
|
| | | JPanel panel = new JPanel(new BorderLayout());
|
| | | panel.add(new JLabel(label), BorderLayout.NORTH);
|
| | | JLabel jlabel = new JLabel(label);
|
| | | jlabel.setFont(jlabel.getFont().deriveFont(Font.BOLD));
|
| | | panel.add(jlabel, BorderLayout.NORTH);
|
| | | panel.add(jsp, BorderLayout.CENTER);
|
| | | return panel;
|
| | | }
|
| | | |
| | | @Override
|
| | | public void setEnabled(boolean enabled) {
|
| | | super.setEnabled(enabled);
|
| | | add.setEnabled(enabled);
|
| | | subtract.setEnabled(enabled);
|
| | | up.setEnabled(enabled);
|
| | | down.setEnabled(enabled);
|
| | | }
|
| | |
|
| | | public void setObjects(List<T> all, List<T> selected) {
|
| | |
| | |
|
| | | @Override
|
| | | public String getColumnName(int column) {
|
| | | return "Name";
|
| | | return Translation.get("gb.name");
|
| | | }
|
| | |
|
| | | public Class<?> getColumnClass(int columnIndex) {
|