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/StatusPanel.java | 100 ++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 76 insertions(+), 24 deletions(-) diff --git a/src/com/gitblit/client/StatusPanel.java b/src/com/gitblit/client/StatusPanel.java index 551d865..f22d69c 100644 --- a/src/com/gitblit/client/StatusPanel.java +++ b/src/com/gitblit/client/StatusPanel.java @@ -21,14 +21,21 @@ import java.awt.Font; import java.awt.GridLayout; import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.IOException; +import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; +import com.gitblit.Constants; +import com.gitblit.Constants.RpcRequest; import com.gitblit.models.ServerStatus; import com.gitblit.utils.ByteFormat; +import com.gitblit.utils.TimeUtils; /** * This panel displays the server status. @@ -38,62 +45,86 @@ public class StatusPanel extends JPanel { private static final long serialVersionUID = 1L; - private final Insets insets = new Insets(5, 5, 5, 5); + private final GitblitClient gitblit; private JLabel bootDate; + private JLabel url; private JLabel servletContainer; private JLabel heapMaximum; private JLabel heapAllocated; private JLabel heapUsed; - private PropertiesTableModel model; - private HeaderPanel headerPanel; + private PropertiesTableModel tableModel; + private HeaderPanel header; + private JLabel version; + private JLabel releaseDate; - public StatusPanel() { + public StatusPanel(GitblitClient gitblit) { super(); + this.gitblit = gitblit; initialize(); } - public StatusPanel(ServerStatus status) { - this(); - setStatus(status); - } - private void initialize() { + JButton refreshStatus = new JButton(Translation.get("gb.refresh")); + refreshStatus.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + refreshStatus(); + } + }); + + version = new JLabel(); + releaseDate = new JLabel(); bootDate = new JLabel(); + url = new JLabel(); servletContainer = new JLabel(); heapMaximum = new JLabel(); heapAllocated = new JLabel(); heapUsed = new JLabel(); - JPanel fieldsPanel = new JPanel(new GridLayout(0, 1)); + JPanel fieldsPanel = new JPanel(new GridLayout(0, 1, 0, Utils.MARGIN)) { + + private static final long serialVersionUID = 1L; + + @Override + public Insets getInsets() { + return Utils.INSETS; + } + }; + fieldsPanel.add(createFieldPanel("gb.version", version)); + fieldsPanel.add(createFieldPanel("gb.releaseDate", releaseDate)); fieldsPanel.add(createFieldPanel("gb.bootDate", bootDate)); + fieldsPanel.add(createFieldPanel("gb.url", url)); fieldsPanel.add(createFieldPanel("gb.servletContainer", servletContainer)); fieldsPanel.add(createFieldPanel("gb.heapUsed", heapUsed)); fieldsPanel.add(createFieldPanel("gb.heapAllocated", heapAllocated)); fieldsPanel.add(createFieldPanel("gb.heapMaximum", heapMaximum)); - model = new PropertiesTableModel(); - JTable propertiesTable = Utils.newTable(model); + tableModel = new PropertiesTableModel(); + JTable propertiesTable = Utils.newTable(tableModel, Utils.DATE_FORMAT); String name = propertiesTable.getColumnName(PropertiesTableModel.Columns.Name.ordinal()); NameRenderer nameRenderer = new NameRenderer(); propertiesTable.setRowHeight(nameRenderer.getFont().getSize() + 8); propertiesTable.getColumn(name).setCellRenderer(nameRenderer); - JPanel centerPanel = new JPanel(new BorderLayout()); + JPanel centerPanel = new JPanel(new BorderLayout(Utils.MARGIN, Utils.MARGIN)); centerPanel.add(fieldsPanel, BorderLayout.NORTH); centerPanel.add(new JScrollPane(propertiesTable), BorderLayout.CENTER); - headerPanel = new HeaderPanel(Translation.get("gb.status"), "health_16x16.png"); - setLayout(new BorderLayout()); - add(headerPanel, BorderLayout.NORTH); + JPanel controls = new JPanel(new FlowLayout(FlowLayout.CENTER, Utils.MARGIN, 0)); + controls.add(refreshStatus); + + header = new HeaderPanel(Translation.get("gb.status"), "health_16x16.png"); + setLayout(new BorderLayout(Utils.MARGIN, Utils.MARGIN)); + add(header, BorderLayout.NORTH); add(centerPanel, BorderLayout.CENTER); + add(controls, BorderLayout.SOUTH); } private JPanel createFieldPanel(String key, JLabel valueLabel) { - JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 5)); + JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT, Utils.MARGIN, 0)); JLabel textLabel = new JLabel(Translation.get(key)); textLabel.setFont(textLabel.getFont().deriveFont(Font.BOLD)); - textLabel.setPreferredSize(new Dimension(120, valueLabel.getFont().getSize() + 4)); + textLabel.setPreferredSize(new Dimension(120, 10)); panel.add(textLabel); panel.add(valueLabel); return panel; @@ -101,19 +132,40 @@ @Override public Insets getInsets() { - return insets; + return Utils.INSETS; } - public void setStatus(ServerStatus status) { - headerPanel.setText(Translation.get("gb.status")); - bootDate.setText(status.bootDate.toString()); + protected void refreshStatus() { + GitblitWorker worker = new GitblitWorker(StatusPanel.this, RpcRequest.LIST_STATUS) { + @Override + protected Boolean doRequest() throws IOException { + gitblit.refreshStatus(); + return true; + } + + @Override + protected void onSuccess() { + updateTable(false); + } + }; + worker.execute(); + } + + protected void updateTable(boolean pack) { + ServerStatus status = gitblit.getStatus(); + header.setText(Translation.get("gb.status")); + version.setText(Constants.NAME + (status.isGO ? " GO v" : " WAR v") + status.version); + releaseDate.setText(status.releaseDate); + bootDate.setText(status.bootDate.toString() + " (" + TimeUtils.timeAgo(status.bootDate) + + ")"); + url.setText(gitblit.url); servletContainer.setText(status.servletContainer); ByteFormat byteFormat = new ByteFormat(); heapMaximum.setText(byteFormat.format(status.heapMaximum)); heapAllocated.setText(byteFormat.format(status.heapAllocated)); heapUsed.setText(byteFormat.format(status.heapAllocated - status.heapFree) + " (" + byteFormat.format(status.heapFree) + " " + Translation.get("gb.free") + ")"); - model.setProperties(status.systemProperties); - model.fireTableDataChanged(); + tableModel.setProperties(status.systemProperties); + tableModel.fireTableDataChanged(); } } -- Gitblit v1.9.1