Created
September 4, 2014 10:59
-
-
Save winse/60b04926a9dde5307d1c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/main/java/com/cxy/redisclient/integration/I18nFile.java b/src/main/java/com/cxy/redisclient/integration/I18nFile.java | |
index 1df1322..302e279 100644 | |
--- a/src/main/java/com/cxy/redisclient/integration/I18nFile.java | |
+++ b/src/main/java/com/cxy/redisclient/integration/I18nFile.java | |
@@ -49,6 +49,8 @@ public class I18nFile extends PropertyFile { | |
public static final String NAME = "NAME"; | |
public static final String TYPE = "TYPE"; | |
public static final String SIZE = "SIZE"; | |
+ public static final String COMMENT = "COMMENT"; | |
+ | |
public static final String ERROR = "ERROR"; | |
public static final String INFORMATION = "INFORMATION"; | |
public static final String OBJECTDELETE = "OBJECTDELETE"; | |
diff --git a/src/main/java/com/cxy/redisclient/presentation/RedisClient.java b/src/main/java/com/cxy/redisclient/presentation/RedisClient.java | |
index 57deadf..f8cc151 100644 | |
--- a/src/main/java/com/cxy/redisclient/presentation/RedisClient.java | |
+++ b/src/main/java/com/cxy/redisclient/presentation/RedisClient.java | |
@@ -81,6 +81,7 @@ import com.cxy.redisclient.presentation.string.NewStringDialog; | |
import com.cxy.redisclient.presentation.string.StringDataContent; | |
import com.cxy.redisclient.presentation.zset.NewZSetDialog; | |
import com.cxy.redisclient.presentation.zset.ZSetDataContent; | |
+import com.cxy.redisclient.provider.CLabelProvider; | |
import com.cxy.redisclient.service.ExportService; | |
import com.cxy.redisclient.service.FavoriteService; | |
import com.cxy.redisclient.service.HashService; | |
@@ -178,6 +179,7 @@ public class RedisClient { | |
private TableColumn tblclmnName; | |
private TableColumn tblclmnType; | |
private TableColumn tblclmnSize; | |
+ private TableColumn tblclmnComment; | |
private Button btnBackward; | |
private Button btnForward; | |
@@ -1016,6 +1018,10 @@ public class RedisClient { | |
orderColumnSelected(OrderBy.SIZE); | |
} | |
}); | |
+ | |
+ tblclmnComment = new TableColumn(table, SWT.NONE); | |
+ tblclmnComment.setWidth(100); | |
+ tblclmnComment.setText(i18nFile.getText(I18nFile.COMMENT)); | |
} | |
protected void updateMenuServer(boolean isTable, Menu menu) { | |
@@ -2638,8 +2644,10 @@ public class RedisClient { | |
for (DataNode node1 : knodes) { | |
TableItem item = new TableItem(table, SWT.NONE); | |
+ | |
+ String comment = CLabelProvider.INSTANCE.getComment(info.getContainerStr(), node1.getKey()); | |
item.setText(new String[] { node1.getKey(), | |
- node1.getType().toString(), String.valueOf(node1.getSize()) }); | |
+ node1.getType().toString(), String.valueOf(node1.getSize()), comment }); | |
switch (node1.getType()) { | |
case STRING: | |
if (node1.isPersist()) | |
@@ -3379,6 +3387,7 @@ public class RedisClient { | |
tblclmnName.setText(i18nFile.getText(I18nFile.NAME)); | |
tblclmnType.setText(i18nFile.getText(I18nFile.TYPE)); | |
tblclmnSize.setText(i18nFile.getText(I18nFile.SIZE)); | |
+ tblclmnComment.setText(i18nFile.getText(I18nFile.COMMENT)); | |
mainTabItem.setText(i18nFile.getText(I18nFile.REDISDATAEXPLORER)); | |
diff --git a/src/main/java/com/cxy/redisclient/presentation/component/Page.java b/src/main/java/com/cxy/redisclient/presentation/component/Page.java | |
index 39e7860..b483c5b 100644 | |
--- a/src/main/java/com/cxy/redisclient/presentation/component/Page.java | |
+++ b/src/main/java/com/cxy/redisclient/presentation/component/Page.java | |
@@ -3,16 +3,17 @@ package com.cxy.redisclient.presentation.component; | |
import com.cxy.redisclient.service.NodeService; | |
public abstract class Page implements IPage { | |
+ | |
protected int id; | |
protected int db; | |
protected String key; | |
- | |
- public Page(int id, int db, String key){ | |
+ | |
+ public Page(int id, int db, String key) { | |
this.id = id; | |
this.db = db; | |
this.key = key; | |
} | |
- | |
+ | |
@Override | |
public long getCount() { | |
NodeService service = new NodeService(); | |
diff --git a/src/main/java/com/cxy/redisclient/presentation/zset/ZSetDataContent.java b/src/main/java/com/cxy/redisclient/presentation/zset/ZSetDataContent.java | |
index fecce1a..4d3ba48 100644 | |
--- a/src/main/java/com/cxy/redisclient/presentation/zset/ZSetDataContent.java | |
+++ b/src/main/java/com/cxy/redisclient/presentation/zset/ZSetDataContent.java | |
@@ -34,6 +34,7 @@ public class ZSetDataContent extends DataContent { | |
private Button btnRefresh; | |
private TableColumn tblclmnNewColumn; | |
private TableColumn tblclmnMember; | |
+ private TableColumn tblclmnComment; | |
private PagingListener pageListener; | |
private ZSetService service = new ZSetService(); | |
private EditListener editListener; | |
@@ -83,6 +84,10 @@ public class ZSetDataContent extends DataContent { | |
tblclmnMember = new TableColumn(table, SWT.NONE); | |
tblclmnMember.setWidth(164); | |
tblclmnMember.setText(RedisClient.i18nFile.getText(I18nFile.MEMBER)); | |
+ | |
+ tblclmnComment = new TableColumn(table, SWT.NONE); | |
+ tblclmnComment.setWidth(164); | |
+ tblclmnComment.setText(RedisClient.i18nFile.getText(I18nFile.COMMENT)); | |
btnAdd = new Button(grpValues, SWT.NONE); | |
btnAdd.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1)); | |
@@ -191,6 +196,7 @@ public class ZSetDataContent extends DataContent { | |
grpValues.setText(RedisClient.i18nFile.getText(I18nFile.VALUES)); | |
tblclmnNewColumn.setText(RedisClient.i18nFile.getText(I18nFile.SCORE)); | |
tblclmnMember.setText(RedisClient.i18nFile.getText(I18nFile.MEMBER)); | |
+ tblclmnComment.setText(RedisClient.i18nFile.getText(I18nFile.COMMENT)); | |
btnAdd.setText(RedisClient.i18nFile.getText(I18nFile.ADD)); | |
btnDelete.setText(RedisClient.i18nFile.getText(I18nFile.DELETE)); | |
btnApply.setText(RedisClient.i18nFile.getText(I18nFile.APPLY)); | |
diff --git a/src/main/java/com/cxy/redisclient/presentation/zset/ZSetPage.java b/src/main/java/com/cxy/redisclient/presentation/zset/ZSetPage.java | |
index e700555..a10d3bc 100644 | |
--- a/src/main/java/com/cxy/redisclient/presentation/zset/ZSetPage.java | |
+++ b/src/main/java/com/cxy/redisclient/presentation/zset/ZSetPage.java | |
@@ -3,6 +3,7 @@ package com.cxy.redisclient.presentation.zset; | |
import redis.clients.jedis.Tuple; | |
import com.cxy.redisclient.presentation.component.Page; | |
+import com.cxy.redisclient.provider.CLabelProvider; | |
import com.cxy.redisclient.service.ZSetService; | |
public class ZSetPage extends Page { | |
@@ -22,16 +23,17 @@ public class ZSetPage extends Page { | |
@Override | |
public String[] getText(int row) { | |
- String[] values = new String[]{"", ""}; | |
- | |
- int index = row-start; | |
- if(index == -1) | |
- return new String[]{"", ""}; | |
- if(index < page.length){ | |
+ String[] values = new String[] { "", "", "" }; | |
+ | |
+ int index = row - start; | |
+ if (index == -1) | |
+ return new String[] { "", "", "" }; | |
+ if (index < page.length) { | |
Tuple tuple = (Tuple) page[index]; | |
- values = new String[]{String.valueOf(tuple.getScore()), tuple.getElement()}; | |
+ String comment = CLabelProvider.INSTANCE.getComment(this.key, tuple); | |
+ values = new String[] { String.valueOf(tuple.getScore()), tuple.getElement(), comment }; | |
} | |
- | |
+ | |
return values; | |
} | |
diff --git a/src/main/java/com/cxy/redisclient/provider/CLabelProvider.java b/src/main/java/com/cxy/redisclient/provider/CLabelProvider.java | |
new file mode 100755 | |
index 0000000..a1f9d92 | |
--- /dev/null | |
+++ b/src/main/java/com/cxy/redisclient/provider/CLabelProvider.java | |
@@ -0,0 +1,29 @@ | |
+package com.cxy.redisclient.provider; | |
+ | |
+import java.util.ServiceLoader; | |
+ | |
+public interface CLabelProvider { | |
+ | |
+ // tuple or string | |
+ String getComment(String key, Object data); | |
+ | |
+ boolean apply(String key); | |
+ | |
+ Accessor INSTANCE = new Accessor(); | |
+ | |
+ class Accessor { | |
+ | |
+ private static ServiceLoader<CLabelProvider> commentProviders = ServiceLoader.load(CLabelProvider.class); | |
+ | |
+ public String getComment(String key, Object data) { | |
+ for (CLabelProvider provider : commentProviders) { | |
+ if (provider.apply(key)) { | |
+ return provider.getComment(key, data); | |
+ } | |
+ } | |
+ | |
+ return ""; | |
+ } | |
+ | |
+ } | |
+} | |
diff --git a/src/main/resources/META-INF/services/com.cxy.redisclient.provider.CLabelProvider b/src/main/resources/META-INF/services/com.cxy.redisclient.provider.CLabelProvider | |
new file mode 100755 | |
index 0000000..5b87cf1 | |
--- /dev/null | |
+++ b/src/main/resources/META-INF/services/com.cxy.redisclient.provider.CLabelProvider | |
@@ -0,0 +1 @@ | |
+com.cxy.redisclient.provider.ScoreIPLabelProvider | |
\ No newline at end of file |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment