package com.fr.plugin.db.redis.ui; import com.fr.design.data.datapane.sqlpane.SQLEditPane; import com.fr.design.dialog.BasicPane; import com.fr.design.editor.ValueEditorPane; import com.fr.design.gui.ilable.ActionLabel; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextarea.DescriptionTextArea; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.SiteCenter; import com.fr.log.FineLoggerFactory; import com.fr.plugin.db.redis.core.order.OrderValue; import com.fr.plugin.db.redis.ui.value.IndexValuePaneFactory; import com.fr.plugin.db.redis.util.RedisDesignUtils; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.net.URI; public class RedisQueryPane extends BasicPane { private SQLEditPane sqlTextPane; private ValueEditorPane dbIndexEditor; private RSyntaxTextArea scriptTextPane; public RedisQueryPane() { setLayout(new BorderLayout()); sqlTextPane = new SQLEditPane(); scriptTextPane = new RSyntaxTextArea(); dbIndexEditor = IndexValuePaneFactory.createValueEditorPane(); ActionLabel helpLabel = new ActionLabel(Toolkit.i18nText("Plugin-Redis_Help")); helpLabel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { Desktop.getDesktop().browse(URI.create(SiteCenter.getInstance().acquireUrlByKind("help.redis"))); } catch (IOException e1) { FineLoggerFactory.getLogger().error(e1.getMessage(), e1); } } }); DescriptionTextArea descriptionArea = new DescriptionTextArea(); descriptionArea.setWrapStyleWord(true); descriptionArea.setLineWrap(true); descriptionArea.setText(Toolkit.i18nText("Plugin-Redis_Script_Text_Description")); Component[][] coms = new Component[][]{ {new UILabel(Toolkit.i18nText("Plugin-Redis_DB_Index") + ":"), dbIndexEditor}, {GUICoreUtils.createBorderLayoutPane(new UILabel(Toolkit.i18nText("Plugin-Redis_Query_Condition") + ":"), BorderLayout.NORTH), RedisDesignUtils.createConditionTextPane(sqlTextPane, SyntaxConstants.SYNTAX_STYLE_SQL, 300)} }; // {GUICoreUtils.createBorderLayoutPane(new UILabel(Toolkit.i18nText("Plugin-Redis_Script_Text") + ":"), BorderLayout.NORTH), // RedisDesignUtils.createConditionTextPane(scriptTextPane, SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT, 200) // } double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double[] rowSize = {p, p}; double[] columnSize = {p, f}; add(TableLayoutHelper.createTableLayoutPane(coms, rowSize, columnSize)); } @Override protected String title4PopupWindow() { return "Query"; } public String getQuery() { return sqlTextPane.getText(); } public void setQuery(String query) { sqlTextPane.setText(query); } public OrderValue getOrderValue() { return (OrderValue) dbIndexEditor.update(); } public void setOrderValue(OrderValue orderValue) { dbIndexEditor.populate(orderValue); } public String getScript() { return scriptTextPane.getText(); } public void setScript(String script) { scriptTextPane.setText(script); } }