package com.fr.plugin.db.redis.ui; import com.fanruan.api.data.ConnectionKit; import com.fanruan.api.util.StringKit; import com.fr.plugin.db.redis.core.RedisScriptTableData; 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; /** * @author richie * @version 10.0 * Created by richie on 2019-03-18 */ public class RedisScriptTableDataPane extends RedisBaseTableDataPane { private RedisScriptPane scriptPane; public RedisScriptTableDataPane() { super(); } @Override protected JComponent createQueryPane() { if (scriptPane == null) { scriptPane = new RedisScriptPane(); } return scriptPane; } @Override protected String[] paramTexts() { return new String[]{scriptPane.getScript()}; } @Override public OrderValue getOrderValue() { return scriptPane.getOrderValue(); } @Override public void populateBean(RedisScriptTableData tableData) { if (tableData == null) { return; } Calculator c = Calculator.createCalculator(); editorPane.populate(tableData.getParameters(c)); chosePane.populateConnection(tableData.getDatabase()); scriptPane.setScript(tableData.getScript()); scriptPane.setOrderValue(tableData.getOrderValue()); scriptPane.setEngineType(tableData.getEngineType()); } @Override public RedisScriptTableData updateBean() { RedisScriptTableData tableData = new RedisScriptTableData(); 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.setScript(scriptPane.getScript()); tableData.setOrderValue(scriptPane.getOrderValue()); tableData.setEngineType(scriptPane.getEngineType()); return tableData; } }