package com.cxy.redisclient.presentation.console; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; import com.cxy.redisclient.integration.I18nFile; import com.cxy.redisclient.presentation.RedisClient; import com.cxy.redisclient.presentation.component.EditListener; public class ZRangeCmd extends DataCommand { private boolean withScore; private TableColumn tblclmnNewColumn; private TableColumn tblclmnMember; public ZRangeCmd(Console console, String cmd) { super(console, cmd); } @Override protected void initData(Composite composite) { String[] strs = cmd.trim().split(" "); withScore = strs[strs.length-1].equalsIgnoreCase("WITHSCORES"); Table table = new Table(composite, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 5)); table.setHeaderVisible(true); table.setLinesVisible(true); EditListener listener = new EditListener(table, false); table.addListener(SWT.MouseDown, listener); if(withScore){ tblclmnNewColumn = new TableColumn(table, SWT.NONE); tblclmnNewColumn.setWidth(88); tblclmnNewColumn.setText(RedisClient.i18nFile.getText(I18nFile.SCORE)); } tblclmnMember = new TableColumn(table, SWT.NONE); tblclmnMember.setWidth(164); tblclmnMember.setText(RedisClient.i18nFile.getText(I18nFile.MEMBER)); String[] data = result.getResult().split("\n"); if(withScore){ for(int i = 0 ; i < data.length/2; i ++){ TableItem item = new TableItem(table, SWT.NONE); String[] values = new String[]{data[i*2+1], data[i*2]}; item.setText(values); } }else{ for(int i = 0 ; i < data.length; i ++){ TableItem item = new TableItem(table, SWT.NONE); item.setText(data[i]); } } } @Override protected void refreshLangUI() { if(withScore) tblclmnNewColumn.setText(RedisClient.i18nFile.getText(I18nFile.SCORE)); tblclmnMember.setText(RedisClient.i18nFile.getText(I18nFile.MEMBER)); super.refreshLangUI(); } }