From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 25 Feb 2013 08:40:30 -0500 Subject: [PATCH] Merge pull request #75 from thefake/master --- src/com/gitblit/client/JPalette.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/com/gitblit/client/JPalette.java b/src/com/gitblit/client/JPalette.java index eb445b4..a0c2b25 100644 --- a/src/com/gitblit/client/JPalette.java +++ b/src/com/gitblit/client/JPalette.java @@ -38,8 +38,16 @@ 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>(); @@ -48,7 +56,7 @@ 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>(); @@ -66,7 +74,7 @@ selectedModel.fireTableDataChanged(); } }); - JButton subtract = new JButton("<-"); + subtract = new JButton("<-"); subtract.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { List<T> move = new ArrayList<T>(); @@ -86,9 +94,37 @@ } }); + 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); @@ -102,14 +138,13 @@ 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); table.getColumn(table.getColumnName(0)).setCellRenderer(nameRenderer); JScrollPane jsp = new JScrollPane(table); - jsp.setPreferredSize(new Dimension(225, 175)); + jsp.setPreferredSize(new Dimension(225, 160)); JPanel panel = new JPanel(new BorderLayout()); JLabel jlabel = new JLabel(label); jlabel.setFont(jlabel.getFont().deriveFont(Font.BOLD)); @@ -117,6 +152,15 @@ 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) { List<T> available = new ArrayList<T>(all); -- Gitblit v1.9.1