Browse Source

Initial Commit

master
richie 6 years ago
commit
e40702dd81
  1. 1
      .gitignore
  2. 5
      README.md
  3. 126
      build.xml
  4. BIN
      install/fr-plugin-better-sql-editor-2.4.zip
  5. 0
      lib/report/.gitkeep
  6. 23
      plugin-bettersqleditor.iml
  7. 23
      plugin.xml
  8. BIN
      shop/full12_200.png
  9. BIN
      shop/full12_400.png
  10. 9
      src/com/fr/solution/plugin/better/sql/editor/BetterConstants.java
  11. 46
      src/com/fr/solution/plugin/better/sql/editor/BetterDBTableDataImpl.java
  12. 379
      src/com/fr/solution/plugin/better/sql/editor/BetterDBTableDataPane.java
  13. 27
      src/com/fr/solution/plugin/better/sql/editor/FullScreenSQLEditorDialog.java
  14. 61
      src/com/fr/solution/plugin/better/sql/editor/FullScreenSQLPane.java
  15. BIN
      src/com/fr/solution/plugin/better/sql/editor/images/full.png
  16. 13
      src/com/fr/solution/plugin/better/sql/editor/locale/BetterLocaleFinder.java
  17. 1
      src/com/fr/solution/plugin/better/sql/editor/locale/better.properties
  18. 1
      src/com/fr/solution/plugin/better/sql/editor/locale/better_en_US.properties
  19. 1
      src/com/fr/solution/plugin/better/sql/editor/locale/better_ja_JP.properties
  20. 1
      src/com/fr/solution/plugin/better/sql/editor/locale/better_zh_CN.properties

1
.gitignore vendored

@ -0,0 +1 @@
lib/report/*.jar

5
README.md

@ -0,0 +1,5 @@
# SQL全屏编辑
操作界面
![1](effect/better.png)
全屏界面
![2](effect/full.png)

126
build.xml

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="jar" name="plugin">
<!-- JDK路径,根据自己机器上实际位置修改-->
<property name="jdk.home" value="/Library/Java/JavaVirtualMachines/JDK1.8/Contents/Home"/>
<property name="libs" value="${basedir}/lib"/>
<property name="publicLibs" value=""/>
<property name="reportLibs" value="${basedir}/lib/report"/>
<property name="destLoc" value="."/>
<property name="classes" value="classes"/>
<xmlproperty file="${basedir}/plugin.xml"/>
<property name="current-version" value="${plugin.version}"/>
<!-- 插件版本-->
<property name="plugin-version" value="${current-version}"/>
<!-- 插件名字-->
<property name="plugin-name" value="better-sql-editor"/>
<property name="plugin-jar" value="fr-plugin-${plugin-name}-${plugin-version}.jar"/>
<target name="prepare">
<delete dir="${classes}"/>
<delete dir="fr-plugin-${plugin-name}-${plugin-version}"/>
<xmlproperty file="${basedir}/plugin.xml"/>
<delete dir="${destLoc}/${plugin.name}"/>
</target>
<path id="compile.classpath">
<fileset dir="${libs}">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${publicLibs}">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${reportLibs}">
<include name="**/*.jar"/>
</fileset>
</path>
<patternset id="resources4Jar">
<exclude name="**/.settings/**"/>
<exclude name=".classpath"/>
<exclude name=".project"/>
<exclude name="**/*.java"/>
<exclude name="**/*.db"/>
<exclude name="**/*.g"/>
<exclude name="**/package.html"/>
</patternset>
<target name="copy_resources">
<echo message="从${resources_from}拷贝图片,JS,CSS等资源文件"/>
<delete dir="tmp"/>
<copy todir="tmp">
<fileset dir="${resources_from}\src">
<patternset refid="resources4Jar"/>
</fileset>
</copy>
<copy todir="${classes}">
<fileset dir="tmp"/>
</copy>
<delete dir="tmp"/>
</target>
<target name="compile_javas">
<echo message="编译${compile_files}下的Java文件"/>
<javac destdir="${classes}" debug="false" optimize="on" source="${source_jdk_version}"
target="${target_jdk_version}"
fork="true" memoryMaximumSize="512m" listfiles="false" srcdir="${basedir}"
executable="${compile_jdk_version}/bin/javac">
<src path="${basedir}/src"/>
<exclude name="**/.svn/**"/>
<compilerarg line="-encoding UTF8 "/>
<classpath refid="compile.classpath"/>
</javac>
</target>
<target name="jar_classes">
<echo message="打Jar包:${jar_name}"/>
<delete file="${basedir}/${jar_name}"/>
<jar jarfile="${basedir}/${jar_name}">
<fileset dir="${classes}">
</fileset>
</jar>
</target>
<target name="super_jar" depends="prepare">
<antcall target="copy_resources">
<param name="resources_from" value="${basedir}"/>
</antcall>
<antcall target="compile_javas">
<param name="source_jdk_version" value="1.6"/>
<param name="target_jdk_version" value="1.6"/>
<param name="compile_jdk_version" value="${jdk.home}"/>
<param name="compile_files" value="${basedir}/src"/>
</antcall>
<echo message="compile plugin success!"/>
<antcall target="jar_classes">
<param name="jar_name" value="${plugin-jar}"/>
</antcall>
<delete dir="${classes}"/>
</target>
<target name="jar" depends="super_jar">
<antcall target="zip"/>
</target>
<target name="zip">
<property name="plugin-folder" value="fr-plugin-${plugin-name}-${plugin-version}"/>
<echo message="----------zip files----------"/>
<mkdir dir="${plugin-folder}"/>
<copy todir="${plugin-folder}">
<fileset dir=".">
<include name="${plugin-jar}"/>
<include name="plugin.xml"/>
</fileset>
<fileset dir="${libs}">
<include name="*.jar"/>
<include name="*.dll"/>
</fileset>
</copy>
<zip destfile="${basedir}/${plugin-folder}.zip" basedir=".">
<include name="${plugin-folder}/*.jar"/>
<include name="${plugin-folder}/*.dll"/>
<include name="${plugin-folder}/plugin.xml"/>
</zip>
<move file="${plugin-folder}.zip" todir="${destLoc}/install"/>
</target>
</project>

BIN
install/fr-plugin-better-sql-editor-2.4.zip

Binary file not shown.

0
lib/report/.gitkeep

23
plugin-bettersqleditor.iml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/../../../env/8.0/WebReport/WEB-INF/classes" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="lib" level="project" />
<orderEntry type="module" module-name="base" />
<orderEntry type="module" module-name="base-basic" />
<orderEntry type="module" module-name="base-calculate" />
<orderEntry type="module" module-name="base-data" />
<orderEntry type="module" module-name="base-file" />
<orderEntry type="module" module-name="base-performance" />
<orderEntry type="module" module-name="base-stable" />
<orderEntry type="module" module-name="chart-base" />
<orderEntry type="module" module-name="designer_base" />
<orderEntry type="module" module-name="engine" />
</component>
</module>

23
plugin.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><plugin>
<id>com.fr.solution.plugin.better.sql.editor</id>
<name><![CDATA[数据集中SQL可全屏]]></name>
<active>yes</active>
<version>2.4</version>
<env-version>8.0</env-version>
<jartime>2015-12-20</jartime>
<vendor>solution</vendor>
<description><![CDATA[在数据库数据集中,自带的编写SQL的区域比较小,在编写和查看比较大的SQL语句时很不方便,该插件提供SQL编辑区域全屏功能]]></description>
<change-notes><![CDATA[
[2018-05-23]修复服务器数据集无法新建的问题。<br/>
[2015-12-20]修复在新版本中无法使用的情况。<br/>
[2016-03-25]国际化。<br/>
]]>
</change-notes>
<extra-core>
<LocaleFinder class="com.fr.solution.plugin.better.sql.editor.locale.BetterLocaleFinder"/>
</extra-core>
<extra-designer>
<TableDataDefineProvider class="com.fr.solution.plugin.better.sql.editor.BetterDBTableDataImpl"/>
<ServerTableDataDefineProvider class="com.fr.solution.plugin.better.sql.editor.BetterDBTableDataImpl"/>
</extra-designer>
</plugin>

BIN
shop/full12_200.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
shop/full12_400.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

9
src/com/fr/solution/plugin/better/sql/editor/BetterConstants.java

@ -0,0 +1,9 @@
package com.fr.solution.plugin.better.sql.editor;
/**
* Created by richie on 16/3/25.
*/
public class BetterConstants {
public static final String PLUGIN_ID = "com.fr.solution.plugin.better.sql.editor";
}

46
src/com/fr/solution/plugin/better/sql/editor/BetterDBTableDataImpl.java

@ -0,0 +1,46 @@
package com.fr.solution.plugin.better.sql.editor;
import com.fr.base.TableData;
import com.fr.data.impl.DBTableData;
import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane;
import com.fr.design.fun.ServerTableDataDefineProvider;
import com.fr.design.fun.impl.AbstractTableDataDefineProvider;
import com.fr.general.Inter;
/**
* @author richie
* @date 2015-06-04
* @since 8.0
*/
public class BetterDBTableDataImpl extends AbstractTableDataDefineProvider implements ServerTableDataDefineProvider {
@Override
public Class<? extends TableData> classForTableData() {
return DBTableData.class;
}
@Override
public Class<? extends TableData> classForInitTableData() {
return DBTableData.class;
}
@Override
public Class<? extends AbstractTableDataPane> appearanceForTableData() {
return BetterDBTableDataPane.class;
}
@Override
public String nameForTableData() {
return Inter.getLocText("DS-Database_Query");
}
@Override
public String prefixForTableData() {
return "ds";
}
@Override
public String iconPathForTableData() {
return "/com/fr/design/images/data/database.png";
}
}

379
src/com/fr/solution/plugin/better/sql/editor/BetterDBTableDataPane.java

@ -0,0 +1,379 @@
package com.fr.solution.plugin.better.sql.editor;
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.base.Parameter;
import com.fr.base.ParameterHelper;
import com.fr.data.core.db.TableProcedure;
import com.fr.data.impl.DBTableData;
import com.fr.data.impl.NameDatabaseConnection;
import com.fr.design.actions.UpdateAction;
import com.fr.design.border.UIRoundedBorder;
import com.fr.design.constants.UIConstants;
import com.fr.design.data.datapane.connect.ConnectionTableProcedurePane;
import com.fr.design.data.datapane.preview.PreviewTablePane;
import com.fr.design.data.datapane.sqlpane.SQLEditPane;
import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane;
import com.fr.design.data.tabledata.tabledatapane.MaxMemRowCountPanel;
import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.BasicPane;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
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.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants;
import com.fr.design.gui.syntax.ui.rtextarea.RTextScrollPane;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.menu.SeparatorDef;
import com.fr.design.menu.ToolBarDef;
import com.fr.general.ComparatorUtils;
import com.fr.general.Inter;
import com.fr.script.Calculator;
import com.fr.stable.ArrayUtils;
import com.fr.stable.ParameterProvider;
import com.fr.stable.StringUtils;
import javax.swing.*;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.util.ArrayList;
/**
* @author richie
* @date 2015-06-04
* @since 8.0
*/
public class BetterDBTableDataPane extends AbstractTableDataPane<DBTableData> {
private static final String PREVIEW_BUTTON = Inter.getLocText("Preview");
private static final String REFRESH_BUTTON = Inter.getLocText("Refresh");
private ConnectionTableProcedurePane connectionTableProcedurePane;
private UITableEditorPane<ParameterProvider> editorPane;
private SQLEditPane sqlTextPane;
private RTextScrollPane sqlTextScrollPane;
private UICheckBox isShareCheckBox;
private MaxMemRowCountPanel maxPanel;
private String pageQuery = null;
public BetterDBTableDataPane() {
this.setLayout(new BorderLayout(4, 4));
Box box = new Box(BoxLayout.Y_AXIS);
sqlTextPane = new SQLEditPane();
sqlTextPane.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_SQL);
JPanel northPane = new JPanel(new BorderLayout(4, 4));
JToolBar editToolBar = createToolBar();
northPane.add(editToolBar, BorderLayout.CENTER);
northPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 6, 0));
sqlTextScrollPane = new RTextScrollPane(sqlTextPane);
sqlTextScrollPane.setLineNumbersEnabled(true);
sqlTextScrollPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC));
sqlTextScrollPane.setPreferredSize(new Dimension(680, 600));
JPanel paraMeanPane = new JPanel(new BorderLayout());
paraMeanPane.setPreferredSize(new Dimension(680, 90));
UILabel paraMean = new UILabel(Inter.getLocText("Datasource-Param_DES"));
paraMeanPane.add(paraMean, BorderLayout.CENTER);
ParameterTableModel model = new ParameterTableModel() {
@Override
public UITableEditAction[] createAction() {
return (UITableEditAction[]) ArrayUtils.add(super.createDBTableAction(), new RefreshAction());
}
};
editorPane = new UITableEditorPane<ParameterProvider>(model);
box.add(northPane);
box.add(sqlTextScrollPane);
box.add(paraMeanPane);
box.add(editorPane);
JPanel sqlSplitPane = new JPanel(new BorderLayout(4, 4));
sqlSplitPane.add(box, BorderLayout.CENTER);
// 左边的Panel,上面是选择DatabaseConnection的ComboBox,下面DatabaseConnection对应的Table
connectionTableProcedurePane = new ConnectionTableProcedurePane();
connectionTableProcedurePane.addDoubleClickListener(new ConnectionTableProcedurePane.DoubleClickSelectedNodeOnTreeListener() {
@Override
public void actionPerformed(TableProcedure target) {
Document document = sqlTextPane.getDocument();
try {
document.insertString(sqlTextPane.getCaretPosition(), target.toString(), null);
} catch (BadLocationException e) {
FRContext.getLogger().error(e.getMessage(), e);
}
// 这里开始作色,本来可以给sqlTextPane添加DocumentListener来实现的,
// 后来发现insertString的时候,锁定了JTextPane,不能调用setXXX来作色,先这样了.
// sqlTextPane.syntaxTexts();
sqlTextPane.requestFocus();
}
});
sqlTextPane.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent e) {
}
public void focusLost(FocusEvent e) {
if (isPreviewOrRefreshButton(e)) {
checkParameter();
}
}
});
this.add(connectionTableProcedurePane, BorderLayout.WEST);
this.add(sqlSplitPane, BorderLayout.CENTER);
}
private boolean isPreviewOrRefreshButton (FocusEvent e) {
if (e.getOppositeComponent() != null) {
String name = e.getOppositeComponent().getName();
return ComparatorUtils.equals(name, PREVIEW_BUTTON) || ComparatorUtils.equals(name, REFRESH_BUTTON);
}
return false;
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText("DS-Database_Query");
}
private void refresh() {
String[] paramTexts = new String[2];
paramTexts[0] = sqlTextPane.getText();
paramTexts[1] = pageQuery;
java.util.List<ParameterProvider> existParameterList = editorPane.update();
Parameter[] ps = existParameterList == null ? new Parameter[0] : existParameterList.toArray(new Parameter[existParameterList.size()]);
editorPane.populate(ParameterHelper.analyzeAndUnionSameParameters(paramTexts, ps));
}
private JToolBar createToolBar() {
// p:工具栏.
ToolBarDef toolBarDef = new ToolBarDef();
toolBarDef.addShortCut(new PreviewAction());
toolBarDef.addShortCut(SeparatorDef.DEFAULT);
toolBarDef.addShortCut(new EditPageQueryAction());
toolBarDef.addShortCut(SeparatorDef.DEFAULT);
toolBarDef.addShortCut(new FullScreenAction());
isShareCheckBox = new UICheckBox(Inter.getLocText("Is_Share_DBTableData"));
maxPanel = new MaxMemRowCountPanel();
maxPanel.setBorder(null);
UIToolbar editToolBar = ToolBarDef.createJToolBar();
toolBarDef.updateToolBar(editToolBar);
editToolBar.add(isShareCheckBox);
editToolBar.add(maxPanel);
return editToolBar;
}
private void checkParameter() {
String[] paramTexts = new String[2];
paramTexts[0] = sqlTextPane.getText();
paramTexts[1] = pageQuery;
Parameter[] parameters = ParameterHelper.analyze4Parameters(paramTexts, false);
if (parameters.length < 1 && editorPane.update().size() < 1) {
return;
}
boolean isIn = true;
java.util.List<ParameterProvider> list = editorPane.update();
java.util.List<String> name = new ArrayList<String>();
for (int i = 0; i < list.size(); i++) {
name.add(list.get(i).getName());
}
for (int i = 0; i < parameters.length; i++) {
if (!name.contains(parameters[i].getName())) {
isIn = false;
break;
}
}
if (list.size() == parameters.length && isIn) {
return;
}
// bug:34175 删了是否刷新对话框, 均直接刷新
refresh();
}
@Override
public void populateBean(DBTableData dbtabledata) {
ParameterProvider[] parameters = null;
Calculator c = Calculator.createCalculator();
parameters = dbtabledata.getParameters(c);
editorPane.populate(parameters);
com.fr.data.impl.Connection db = null;
String query = null;
boolean isShare = false;
int maxMemeryRow = -1;
db = dbtabledata.getDatabase();
query = dbtabledata.getQuery();
isShare = dbtabledata.isShare();
maxMemeryRow = dbtabledata.getMaxMemRowCount();
this.pageQuery = dbtabledata.getPageQuerySql();
this.connectionTableProcedurePane.setSelectedDatabaseConnection(db);
this.sqlTextPane.setText(query);
this.sqlTextPane.requestFocus();
this.sqlTextPane.moveCaretPosition(this.sqlTextPane.getCaretPosition());
isShareCheckBox.setSelected(isShare);
maxPanel.setValue(maxMemeryRow);
}
@Override
public DBTableData updateBean() {
String dbName = this.connectionTableProcedurePane.getSelectedDatabaseConnnectonName();
if (StringUtils.isBlank(dbName) || StringUtils.isBlank(this.sqlTextPane.getText())) {
try {
throw new Exception(Inter.getLocText("Connect_SQL_Cannot_Null") + ".");
} catch (Exception e) {
// JOptionPane.showMessageDialog(DBTableDataPane.this,
// Inter.getLocText("Connect_SQL_Cannot_Null") + ".");
}
}
java.util.List<ParameterProvider> parameterList = editorPane.update();
Parameter[] parameters = parameterList.toArray(new Parameter[parameterList.size()]);
DBTableData dbTableData = new DBTableData();
dbTableData.setDatabase(new NameDatabaseConnection(dbName));
// p:必须先设置Parameters数组,因为setQuery里面会自动设置的
dbTableData.setParameters(parameters);
dbTableData.setQuery(this.sqlTextPane.getText());
dbTableData.setShare(isShareCheckBox.isSelected());
dbTableData.setMaxMemRowCount(maxPanel.getValue());
dbTableData.setPageQuerySql(this.pageQuery);
return dbTableData;
}
protected class RefreshAction extends UITableEditAction {
public RefreshAction() {
this.setName(REFRESH_BUTTON);
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/control/refresh.png"));
}
public void actionPerformed(ActionEvent e) {
refresh();
}
@Override
public void checkEnabled() {
}
}
private class FullScreenAction extends UpdateAction {
public FullScreenAction() {
this.setName(Inter.getLocText("Plugin-Better_SQL_Editor"));
this.setMnemonic('P');
this.setSmallIcon(BaseUtils.readIcon("/com/fr/solution/plugin/better/sql/editor/images/full.png"));
}
public void actionPerformed(ActionEvent evt) {
final FullScreenSQLPane fullScreenSQLPane = new FullScreenSQLPane(sqlTextPane.getText());
FullScreenSQLEditorDialog dialog = new FullScreenSQLEditorDialog(DesignerContext.getDesignerFrame(), fullScreenSQLPane);
dialog.setSize(Toolkit.getDefaultToolkit().getScreenSize());
dialog.addDialogActionListener(new DialogActionAdapter() {
@Override
public void doOk() {
sqlTextPane.setText(fullScreenSQLPane.getText());
}
@Override
public void doCancel() {
}
});
dialog.setVisible(true);
}
}
private class PreviewAction extends UpdateAction {
public PreviewAction() {
this.setName(PREVIEW_BUTTON);
this.setMnemonic('P');
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/preview.png"));
}
public void actionPerformed(ActionEvent evt) {
checkParameter();
PreviewTablePane.previewTableData(BetterDBTableDataPane.this.updateBean());
}
}
private class EditPageQueryAction extends UpdateAction {
public EditPageQueryAction() {
this.setName(Inter.getLocText("LayerPageReport_PageQuery"));
this.setMnemonic('L');
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/text.png"));
}
public void actionPerformed(ActionEvent e) {
final PageQueryPane pane = new PageQueryPane();
pane.populate(pageQuery);
BasicDialog dialog = pane.showWindow(DesignerContext.getDesignerFrame());
dialog.addDialogActionListener(new DialogActionAdapter() {
public void doOk() {
pageQuery = pane.update();
checkParameter();
}
});
dialog.setVisible(true);
}
}
private class PageQueryPane extends BasicPane {
private SQLEditPane pageQueryPane;
public PageQueryPane() {
this.initComponents();
}
public void initComponents() {
this.setLayout(new BorderLayout());
pageQueryPane = new SQLEditPane();
this.add(new JScrollPane(pageQueryPane));
}
public void populate(String text) {
if (StringUtils.isBlank(text)) {
return;
}
pageQueryPane.setText(text);
}
public String update() {
String text = pageQueryPane.getText();
if (StringUtils.isBlank(text)) {
return null;
} else {
return text;
}
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText("LayerPageReport_Define_PageQuerySQL");
}
}
}

27
src/com/fr/solution/plugin/better/sql/editor/FullScreenSQLEditorDialog.java

@ -0,0 +1,27 @@
package com.fr.solution.plugin.better.sql.editor;
import com.fr.design.dialog.BasicPane;
import com.fr.design.dialog.UIDialog;
import java.awt.*;
/**
* @author richie
* @date 2015-06-04
* @since 8.0
*/
public class FullScreenSQLEditorDialog extends UIDialog {
public FullScreenSQLEditorDialog(Frame parent, BasicPane pane) {
super(parent, pane);
}
public FullScreenSQLEditorDialog(Dialog parent, BasicPane pane) {
super(parent, pane);
}
@Override
public void checkValid() throws Exception {
}
}

61
src/com/fr/solution/plugin/better/sql/editor/FullScreenSQLPane.java

@ -0,0 +1,61 @@
package com.fr.solution.plugin.better.sql.editor;
import com.fr.design.data.datapane.sqlpane.SQLEditPane;
import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.syntax.ui.rtextarea.RTextScrollPane;
import com.fr.general.Inter;
import com.fr.plugin.ExtraClassManager;
import com.fr.stable.fun.FunctionHelper;
import com.fr.stable.fun.FunctionProcessor;
import com.fr.stable.fun.impl.AbstractFunctionProcessor;
import java.awt.*;
/**
* @author richie
* @date 2015-06-04
* @since 8.0
*/
public class FullScreenSQLPane extends BasicPane {
private static final FunctionProcessor SQL = new AbstractFunctionProcessor() {
@Override
public int getId() {
return FunctionHelper.generateFunctionID(BetterConstants.PLUGIN_ID);
}
public String getLocaleKey() {
return Inter.getLocText("Plugin-Better_SQL_Editor");
}
@Override
public String toString() {
return Inter.getLocText("Plugin-Better_SQL_Editor");
}
};
private SQLEditPane sqlTextPane;
public FullScreenSQLPane(String text) {
FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor();
if (processor != null) {
processor.recordFunction(SQL);
}
setLayout(new BorderLayout());
sqlTextPane = new SQLEditPane();
sqlTextPane.setText(text);
RTextScrollPane sqlTextScrollPane = new RTextScrollPane(sqlTextPane);
sqlTextScrollPane.setLineNumbersEnabled(true);
add(sqlTextScrollPane, BorderLayout.CENTER);
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText("Plugin-Better_SQL_Editor");
}
public String getText() {
return sqlTextPane.getText();
}
}

BIN
src/com/fr/solution/plugin/better/sql/editor/images/full.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 B

13
src/com/fr/solution/plugin/better/sql/editor/locale/BetterLocaleFinder.java

@ -0,0 +1,13 @@
package com.fr.solution.plugin.better.sql.editor.locale;
import com.fr.stable.fun.impl.AbstractLocaleFinder;
/**
* Created by richie on 16/3/25.
*/
public class BetterLocaleFinder extends AbstractLocaleFinder {
@Override
public String find() {
return "com/fr/solution/plugin/better/sql/editor/locale/better";
}
}

1
src/com/fr/solution/plugin/better/sql/editor/locale/better.properties

@ -0,0 +1 @@
Plugin-Better_SQL_Editor=Better SQL Editor

1
src/com/fr/solution/plugin/better/sql/editor/locale/better_en_US.properties

@ -0,0 +1 @@
Plugin-Better_SQL_Editor=Better SQL Editor

1
src/com/fr/solution/plugin/better/sql/editor/locale/better_ja_JP.properties

@ -0,0 +1 @@
Plugin-Better_SQL_Editor=SQL\u30A8\u30C7\u30A3\u30BF\u30FC

1
src/com/fr/solution/plugin/better/sql/editor/locale/better_zh_CN.properties

@ -0,0 +1 @@
Plugin-Better_SQL_Editor=SQL\u7F16\u8F91\u5668
Loading…
Cancel
Save