|
|
|
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;
|
|
|
|
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() {
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|