package com.fr.plugin.db.redis.ui; import com.fanruan.api.design.DesignKit; import com.fanruan.api.design.ui.component.UIActionLabel; import com.fanruan.api.design.ui.component.UILabel; import com.fanruan.api.design.ui.component.code.SyntaxConstants; import com.fanruan.api.design.ui.component.code.UISyntaxTextArea; import com.fanruan.api.design.ui.container.BasicPane; import com.fanruan.api.design.ui.editor.ValueEditorPane; import com.fanruan.api.design.ui.layout.TableLayoutKit; import com.fanruan.api.design.util.GUICoreKit; import com.fanruan.api.log.LogKit; import com.fanruan.api.net.CloudKit; import com.fr.design.gui.itextarea.DescriptionTextArea; 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 UISyntaxTextArea sqlTextPane; private ValueEditorPane dbIndexEditor; private UISyntaxTextArea scriptTextPane; public RedisQueryPane() { setLayout(new BorderLayout()); sqlTextPane = new UISyntaxTextArea(); scriptTextPane = new UISyntaxTextArea(); dbIndexEditor = IndexValuePaneFactory.createValueEditorPane(); UIActionLabel helpLabel = new UIActionLabel(DesignKit.i18nText("Plugin-Redis_Help")); helpLabel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { Desktop.getDesktop().browse(URI.create(CloudKit.acquireUrlByKind("help.redis"))); } catch (IOException e1) { LogKit.error(e1.getMessage(), e1); } } }); DescriptionTextArea descriptionArea = new DescriptionTextArea(); descriptionArea.setWrapStyleWord(true); descriptionArea.setLineWrap(true); descriptionArea.setText(DesignKit.i18nText("Plugin-Redis_Script_Text_Description")); Component[][] coms = new Component[][]{ {new UILabel(DesignKit.i18nText("Plugin-Redis_DB_Index") + ":"), dbIndexEditor}, {GUICoreKit.createBorderLayoutPane(new UILabel(DesignKit.i18nText("Plugin-Redis_Query_Condition") + ":"), BorderLayout.NORTH), RedisDesignUtils.createConditionTextPane(sqlTextPane, SyntaxConstants.SYNTAX_STYLE_NONE, 300)} }; double p = TableLayoutKit.PREFERRED; double f = TableLayoutKit.FILL; double[] rowSize = {p, p}; double[] columnSize = {p, f}; add(TableLayoutKit.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); } }