package com.fr.plugin.db.redis.ui; import com.fanruan.api.data.ConnectionKit; import com.fanruan.api.design.DesignKit; import com.fanruan.api.util.StringKit; 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 javax.swing.*; import java.util.List; public class RedisTableDataPane extends RedisBaseTableDataPane { private RedisQueryPane queryPane; public RedisTableDataPane() { super(); } @Override protected String title4PopupWindow() { return DesignKit.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 (StringKit.isNotEmpty(connectionName)) { tableData.setDatabase(ConnectionKit.createNameConnection(connectionName)); } List 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; } }