tblclmnNewColumn_2 = new TableColumn(table, SWT.NONE);
tblclmnNewColumn_2.setWidth(100);
tblclmnNewColumn_2.setText(RedisClient.i18nFile.getText(I18nFile.MESSAGE));
final JedisPubSub callback = new JedisPubSub() {
@Override
public void onMessage(String channel, String message) {
messageReceived(table, channel, message);
}
private void messageReceived(final Table table,
final String channel, final String message) {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
TableItem item = new TableItem(table, SWT.None);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS", Locale.getDefault());
String time = df.format(new Date());
String[] str = new String[]{time, channel, message};
item.setText(str);
table.setSelection(item);
}
});
}
@Override
public void onPMessage(String pattern, String channel,
String message) {
messageReceived(table, channel, message);
}
@Override
public void onSubscribe(String channel,
int subscribedChannels) {
// TODO Auto-generated method stub
}
@Override
public void onUnsubscribe(String channel,
int subscribedChannels) {
// TODO Auto-generated method stub
}
@Override
public void onPUnsubscribe(String pattern,
int subscribedChannels) {
// TODO Auto-generated method stub
}
@Override
public void onPSubscribe(String pattern,
int subscribedChannels) {
// TODO Auto-generated method stub
}
};
final Thread t = new Thread(new Runnable() {
public void run() {
PubSubService subscribe = new PubSubService();
subscribe.subscribe(id, callback, subChannel);
}
});
t.start();
tbtmSubItem.addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent e) {
callback.punsubscribe();
}
});
return tbtmSubItem;
}