From b75734f0600c333d70a3659af82be54caf3cfd3e Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 21 Oct 2011 17:34:12 -0400
Subject: [PATCH] Revised settings RPC to be Map<String, SettingModel>.

---
 src/com/gitblit/client/SettingsModel.java |   24 +++++++++++++++++-------
 1 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/src/com/gitblit/client/SettingsModel.java b/src/com/gitblit/client/SettingsModel.java
index 2c7bff8..af3c1b6 100644
--- a/src/com/gitblit/client/SettingsModel.java
+++ b/src/com/gitblit/client/SettingsModel.java
@@ -18,13 +18,14 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 import javax.swing.table.AbstractTableModel;
 
-import com.gitblit.IStoredSettings;
+import com.gitblit.models.SettingModel;
 
 /**
- * Table model of IStoredSettings.
+ * Table model of Map<String, SettingModel>.
  * 
  * @author James Moger
  * 
@@ -33,7 +34,7 @@
 
 	private static final long serialVersionUID = 1L;
 
-	IStoredSettings settings;
+	Map<String, SettingModel> settings;
 
 	List<String> keys;
 
@@ -50,16 +51,16 @@
 		this(null);
 	}
 
-	public SettingsModel(IStoredSettings settings) {
+	public SettingsModel(Map<String, SettingModel> settings) {
 		setSettings(settings);
 	}
 
-	public void setSettings(IStoredSettings settings) {
+	public void setSettings(Map<String, SettingModel> settings) {
 		this.settings = settings;
 		if (settings == null) {
 			keys = new ArrayList<String>();
 		} else {
-			keys = new ArrayList<String>(settings.getAllKeys(null));
+			keys = new ArrayList<String>(settings.keySet());
 			Collections.sort(keys);
 		}
 	}
@@ -92,19 +93,28 @@
 	 * @return the Object.class
 	 */
 	public Class<?> getColumnClass(int columnIndex) {
+		if (Columns.Value.ordinal() == columnIndex) {
+			return SettingModel.class;
+		}
 		return String.class;
 	}
 
 	@Override
 	public Object getValueAt(int rowIndex, int columnIndex) {
 		String key = keys.get(rowIndex);
+		SettingModel setting = settings.get(key);
 		Columns col = Columns.values()[columnIndex];
 		switch (col) {
 		case Name:
 			return key;
 		case Value:
-			return settings.getString(key, "");
+			return setting;
 		}
 		return null;
 	}
+
+	public SettingModel get(int modelRow) {
+		String key = keys.get(modelRow);
+		return settings.get(key);
+	}
 }

--
Gitblit v1.9.1