From cb285cbfddfc0b633d6b8cdb4dc0d2bd2b8b51ef Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 05 Jan 2012 17:34:05 -0500 Subject: [PATCH] Fixed bug in receive hook for repositories in subfolders --- src/com/gitblit/client/RegistrationsDialog.java | 80 +++++++++++++++++++++++++++++----------- 1 files changed, 58 insertions(+), 22 deletions(-) diff --git a/src/com/gitblit/client/RegistrationsDialog.java b/src/com/gitblit/client/RegistrationsDialog.java index ae53d5f..d40e333 100644 --- a/src/com/gitblit/client/RegistrationsDialog.java +++ b/src/com/gitblit/client/RegistrationsDialog.java @@ -38,14 +38,22 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; +/** + * Displays a list of registrations and allows management of server + * registrations. + * + * @author James Moger + * + */ public class RegistrationsDialog extends JDialog { interface RegistrationListener { - boolean deleteRegistrations(List<GitblitRegistration> list); - - void loginPrompt(GitblitRegistration reg); void login(GitblitRegistration reg); + + boolean saveRegistration(String name, GitblitRegistration reg); + + boolean deleteRegistrations(List<GitblitRegistration> list); } private static final long serialVersionUID = 1L; @@ -56,7 +64,7 @@ private JTable registrationsTable; - private RegistrationsModel model; + private RegistrationsTableModel model; public RegistrationsDialog(List<GitblitRegistration> registrations, RegistrationListener listener) { @@ -83,16 +91,17 @@ private void initialize() { NameRenderer nameRenderer = new NameRenderer(); - model = new RegistrationsModel(registrations); - registrationsTable = Utils.newTable(model); + model = new RegistrationsTableModel(registrations); + registrationsTable = Utils.newTable(model, Utils.DATE_FORMAT); registrationsTable.setRowHeight(nameRenderer.getFont().getSize() + 8); - String id = registrationsTable.getColumnName(RegistrationsModel.Columns.Name.ordinal()); + String id = registrationsTable + .getColumnName(RegistrationsTableModel.Columns.Name.ordinal()); registrationsTable.getColumn(id).setCellRenderer(nameRenderer); registrationsTable.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { - login(false); + login(); } } }); @@ -100,8 +109,7 @@ final JButton create = new JButton(Translation.get("gb.create")); create.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { - RegistrationsDialog.this.setVisible(false); - listener.loginPrompt(GitblitRegistration.LOCALHOST); + create(); } }); @@ -109,15 +117,15 @@ login.setEnabled(false); login.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { - login(false); + login(); } }); - final JButton loginPrompt = new JButton(Translation.get("gb.login") + "..."); - loginPrompt.setEnabled(false); - loginPrompt.addActionListener(new ActionListener() { + final JButton edit = new JButton(Translation.get("gb.edit")); + edit.setEnabled(false); + edit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { - login(true); + edit(); } }); @@ -139,7 +147,7 @@ boolean singleSelection = registrationsTable.getSelectedRowCount() == 1; boolean selected = registrationsTable.getSelectedRow() > -1; login.setEnabled(singleSelection); - loginPrompt.setEnabled(singleSelection); + edit.setEnabled(singleSelection); delete.setEnabled(selected); } }); @@ -147,7 +155,7 @@ JPanel controls = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 0)); controls.add(create); controls.add(login); - controls.add(loginPrompt); + controls.add(edit); controls.add(delete); final Insets insets = new Insets(5, 5, 5, 5); @@ -159,6 +167,7 @@ return insets; } }; + centerPanel.add(new HeaderPanel(Translation.get("gb.servers"), null), BorderLayout.NORTH); centerPanel.add(new JScrollPane(registrationsTable), BorderLayout.CENTER); centerPanel.add(controls, BorderLayout.SOUTH); @@ -166,15 +175,42 @@ getContentPane().add(centerPanel, BorderLayout.CENTER); } - private void login(boolean prompt) { + private void login() { int viewRow = registrationsTable.getSelectedRow(); int modelRow = registrationsTable.convertRowIndexToModel(viewRow); GitblitRegistration reg = registrations.get(modelRow); RegistrationsDialog.this.setVisible(false); - if (prompt) { - listener.loginPrompt(reg); - } else { - listener.login(reg); + listener.login(reg); + } + + private void create() { + EditRegistrationDialog dialog = new EditRegistrationDialog(getOwner()); + dialog.setLocationRelativeTo(this); + dialog.setVisible(true); + GitblitRegistration reg = dialog.getRegistration(); + if (reg == null) { + return; + } + if (listener.saveRegistration(reg.name, reg)) { + model.list.add(reg); + model.fireTableDataChanged(); + } + } + + private void edit() { + int viewRow = registrationsTable.getSelectedRow(); + int modelRow = registrationsTable.convertRowIndexToModel(viewRow); + GitblitRegistration reg = registrations.get(modelRow); + String originalName = reg.name; + EditRegistrationDialog dialog = new EditRegistrationDialog(getOwner(), reg, false); + dialog.setLocationRelativeTo(this); + dialog.setVisible(true); + reg = dialog.getRegistration(); + if (reg == null) { + return; + } + if (listener.saveRegistration(originalName, reg)) { + model.fireTableDataChanged(); } } -- Gitblit v1.9.1