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.

104 lines
3.0 KiB

package com.fr.plugin.db.redis.ui;
import com.fr.base.BaseUtils;
import com.fr.base.ParameterHelper;
import com.fr.data.impl.NameDatabaseConnection;
import com.fr.design.actions.UpdateAction;
import com.fr.design.data.datapane.preview.PreviewTablePane;
import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
import com.fr.design.gui.itableeditorpane.UITableEditAction;
import com.fr.design.gui.itableeditorpane.UITableEditorPane;
import com.fr.design.gui.itoolbar.UIToolbar;
7 years ago
import com.fr.design.i18n.Toolkit;
import com.fr.design.menu.ToolBarDef;
import com.fr.general.ComparatorUtils;
import com.fr.general.Inter;
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.ArrayUtils;
import com.fr.stable.ParameterProvider;
import com.fr.stable.StringUtils;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.FocusEvent;
import java.util.ArrayList;
import java.util.List;
public class RedisTableDataPane extends RedisBaseTableDataPane<RedisTableData> {
private RedisQueryPane queryPane;
public RedisTableDataPane() {
super();
}
@Override
protected String title4PopupWindow() {
7 years ago
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;
}
}