From f3ff376a5eb945f15329b66bbb7d69ed3ca2ce3f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 03 Aug 2012 20:39:50 -0400
Subject: [PATCH] Confirmed fix for GO settings manipulation (issue 85)
---
src/com/gitblit/client/JPalette.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 54 insertions(+), 6 deletions(-)
diff --git a/src/com/gitblit/client/JPalette.java b/src/com/gitblit/client/JPalette.java
index 19456e1..07900cb 100644
--- a/src/com/gitblit/client/JPalette.java
+++ b/src/com/gitblit/client/JPalette.java
@@ -18,6 +18,7 @@
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;
@@ -37,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>();
@@ -47,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>();
@@ -65,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>();
@@ -85,16 +94,44 @@
}
});
+ 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) {
@@ -110,9 +147,20 @@
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) {
@@ -161,7 +209,7 @@
@Override
public String getColumnName(int column) {
- return "Name";
+ return Translation.get("gb.name");
}
public Class<?> getColumnClass(int columnIndex) {
--
Gitblit v1.9.1