redis数据集插件。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

87 lines
2.2 KiB

package com.fr.plugin.db.redis.ui;
import com.fr.data.impl.NameDatabaseConnection;
import com.fr.design.i18n.Toolkit;
import com.fr.plugin.db.redis.core.RedisTableData;
import com.fr.plugin.db.redis.core.order.OrderValue;
import com.fr.script.Calculator;
import com.fr.stable.ParameterProvider;
import com.fr.stable.StringUtils;
import javax.swing.*;
import java.util.List;
public class RedisTableDataPane extends RedisBaseTableDataPane<RedisTableData> {
private RedisQueryPane queryPane;
public RedisTableDataPane() {
super();
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Plugin-Redis_Query");
}
protected JComponent createQueryPane() {
if (queryPane == null) {
queryPane = new RedisQueryPane();
}
return queryPane;
}
public String[] paramTexts() {
return new String[]{queryPane.getQuery(), queryPane.getScript()};
}
@Override
public OrderValue getOrderValue() {
return queryPane.getOrderValue();
}
@Override
public void populateBean(RedisTableData tableData) {
if (tableData == null) {
return;
}
Calculator c = Calculator.createCalculator();
editorPane.populate(tableData.getParameters(c));
chosePane.populateConnection(tableData.getDatabase());
queryPane.setQuery(tableData.getQuery());
queryPane.setScript(tableData.getScript());
queryPane.setOrderValue(tableData.getOrderValue());
}
@Override
public RedisTableData updateBean() {
RedisTableData tableData = new RedisTableData();
String connectionName = chosePane.getSelectRedisConnectionName();
if (StringUtils.isNotEmpty(connectionName)) {
tableData.setDatabase(new NameDatabaseConnection(connectionName));
}
List<ParameterProvider> parameterList = editorPane.update();
ParameterProvider[] parameters = parameterList.toArray(new ParameterProvider[parameterList.size()]);
tableData.setParameters(parameters);
tableData.setQuery(queryPane.getQuery());
tableData.setScript(queryPane.getScript());
tableData.setOrderValue(queryPane.getOrderValue());
return tableData;
}
}