From 4d44cf806ddfa8d051f2d6b1289fa3b67b0daf2e Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 21 Oct 2011 17:00:07 -0400
Subject: [PATCH] Cache repository sizes and default metrics for performance boost
---
src/com/gitblit/client/RepositoriesModel.java | 45 ++++++++++++++++++++++++++++++++++-----------
1 files changed, 34 insertions(+), 11 deletions(-)
diff --git a/src/com/gitblit/client/RepositoriesModel.java b/src/com/gitblit/client/RepositoriesModel.java
index 2a439fb..c1fead9 100644
--- a/src/com/gitblit/client/RepositoriesModel.java
+++ b/src/com/gitblit/client/RepositoriesModel.java
@@ -19,22 +19,25 @@
import java.util.Collections;
import java.util.Date;
import java.util.List;
-import java.util.Map;
import javax.swing.table.AbstractTableModel;
import com.gitblit.models.RepositoryModel;
+/**
+ * Table model of a list of repositories.
+ *
+ * @author James Moger
+ *
+ */
public class RepositoriesModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
- Map<String, RepositoryModel> repositories;
-
List<RepositoryModel> list;
enum Columns {
- Name, Description, Owner, Last_Change, Size;
+ Name, Description, Owner, Indicators, Last_Change, Size;
@Override
public String toString() {
@@ -42,15 +45,18 @@
}
}
- public RepositoriesModel(Map<String, RepositoryModel> repositories) {
- this.repositories = repositories;
- list = new ArrayList<RepositoryModel>(repositories.values());
- Collections.sort(list);
+ public RepositoriesModel() {
+ this(new ArrayList<RepositoryModel>());
+ }
+
+ public RepositoriesModel(List<RepositoryModel> repositories) {
+ this.list = repositories;
+ Collections.sort(this.list);
}
@Override
public int getRowCount() {
- return repositories.size();
+ return list.size();
}
@Override
@@ -61,7 +67,19 @@
@Override
public String getColumnName(int column) {
Columns col = Columns.values()[column];
- return col.toString();
+ switch (col) {
+ case Name:
+ return Translation.get("gb.name");
+ case Description:
+ return Translation.get("gb.description");
+ case Owner:
+ return Translation.get("gb.owner");
+ case Last_Change:
+ return Translation.get("gb.lastChange");
+ case Size:
+ return Translation.get("gb.size");
+ }
+ return "";
}
/**
@@ -74,6 +92,9 @@
public Class<?> getColumnClass(int columnIndex) {
Columns col = Columns.values()[columnIndex];
switch (col) {
+ case Name:
+ case Indicators:
+ return RepositoryModel.class;
case Last_Change:
return Date.class;
}
@@ -86,11 +107,13 @@
Columns col = Columns.values()[columnIndex];
switch (col) {
case Name:
- return model.name;
+ return model;
case Description:
return model.description;
case Owner:
return model.owner;
+ case Indicators:
+ return model;
case Last_Change:
return model.lastChange;
case Size:
--
Gitblit v1.9.1