Skip to content

Instantly share code, notes, and snippets.

@winse
Created September 4, 2014 10:59
Show Gist options
  • Save winse/60b04926a9dde5307d1c to your computer and use it in GitHub Desktop.
Save winse/60b04926a9dde5307d1c to your computer and use it in GitHub Desktop.
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