提交 b52d0853 编写于 作者: S Serge Rider

Code converters refactoring

上级 12328451
......@@ -77,6 +77,7 @@ Export-Package: org.jkiss.dbeaver,
org.jkiss.dbeaver.ui.editors.entity.properties,
org.jkiss.dbeaver.ui.editors.object,
org.jkiss.dbeaver.ui.editors.sql,
org.jkiss.dbeaver.ui.editors.sql.convert,
org.jkiss.dbeaver.ui.editors.sql.generator,
org.jkiss.dbeaver.ui.editors.sql.handlers,
org.jkiss.dbeaver.ui.editors.sql.indent,
......
......@@ -1037,7 +1037,7 @@
</and>
</enabledWhen>
</handler>
<handler commandId="org.jkiss.dbeaver.core.edit.copy.special" class="org.jkiss.dbeaver.ui.editors.sql.handlers.CopySourceCodeHandler">
<handler commandId="org.jkiss.dbeaver.core.edit.copy.special" class="org.jkiss.dbeaver.ui.editors.sql.convert.CopySourceCodeHandler">
<enabledWhen><reference definitionId="org.jkiss.dbeaver.core.ui.sql.editor.base"/></enabledWhen>
</handler>
......@@ -3146,19 +3146,19 @@
<target id="unformatted"
label="Unformatted text"
description="Converts SQL text into unformatted single line plain text"
class="org.jkiss.dbeaver.ui.editors.sql.convert.UnformattedSQLConverter"/>
<target id="java" label="Java" description="Converts SQL text into Java source code" class="org.jkiss.dbeaver.ui.editors.sql.convert.JavaSQLConverter">
class="org.jkiss.dbeaver.ui.editors.sql.convert.impl.UnformattedSQLConverter"/>
<target id="java" label="Java" description="Converts SQL text into Java source code" class="org.jkiss.dbeaver.ui.editors.sql.convert.impl.JavaSQLConverter">
<property id="keep-formatting" label="Keep formatting" type="boolean" description="Keeps original formatting (whitespaces)" required="false" defaultValue="false"/>
<property id="line-delimiter" label="Line delimiter" type="string" description="Delimiter for source code lines. Usually \n or space" required="false" defaultValue=" "/>
</target>
<target id="cpp" label="C/C++" description="Converts SQL text into C/C++ source code" class="org.jkiss.dbeaver.ui.editors.sql.convert.CPPSQLConverter">
<target id="cpp" label="C/C++" description="Converts SQL text into C/C++ source code" class="org.jkiss.dbeaver.ui.editors.sql.convert.impl.CPPSQLConverter">
<property id="keep-formatting" label="Keep formatting" type="boolean" description="Keeps original formatting (whitespaces)" required="false" defaultValue="false"/>
<property id="line-delimiter" label="Line delimiter" type="string" description="Delimiter for source code lines. Usually \n or space" required="false" defaultValue=" "/>
</target>
<target id="html"
label="HTML"
description="Converts SQL text into colored HTML snippet"
class="org.jkiss.dbeaver.ui.editors.sql.convert.HTMLSQLConverter"/>
class="org.jkiss.dbeaver.ui.editors.sql.convert.impl.HTMLSQLConverter"/>
</extension>
<extension
......
......@@ -15,14 +15,13 @@
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.sql.convert;
package org.jkiss.dbeaver.registry.sql;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.ui.controls.resultset.ResultSetPresentationDescriptor;
import java.util.ArrayList;
import java.util.List;
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.sql.convert;
package org.jkiss.dbeaver.registry.sql;
import org.eclipse.core.runtime.IConfigurationElement;
import org.jkiss.dbeaver.DBException;
......@@ -24,6 +24,7 @@ import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.registry.AbstractContextDescriptor;
import org.jkiss.dbeaver.registry.RegistryConstants;
import org.jkiss.dbeaver.ui.editors.sql.convert.ISQLTextConverter;
import java.util.ArrayList;
import java.util.List;
......
......@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.sql.handlers;
package org.jkiss.dbeaver.ui.editors.sql.convert;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
......@@ -38,12 +38,12 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.registry.sql.SQLConverterRegistry;
import org.jkiss.dbeaver.registry.sql.SQLTargetConverterDescriptor;
import org.jkiss.dbeaver.runtime.properties.PropertySourceCustom;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.dialogs.sql.BaseSQLDialog;
import org.jkiss.dbeaver.ui.editors.sql.SQLEditor;
import org.jkiss.dbeaver.ui.editors.sql.convert.ISQLTextConverter;
import org.jkiss.dbeaver.ui.editors.sql.convert.SQLConverterRegistry;
import org.jkiss.dbeaver.ui.editors.sql.convert.SQLTargetConverterDescriptor;
import org.jkiss.dbeaver.ui.properties.PropertyTreeViewer;
import org.jkiss.dbeaver.utils.RuntimeUtils;
import org.jkiss.utils.CommonUtils;
......@@ -89,6 +89,7 @@ public class CopySourceCodeHandler extends AbstractHandler {
private SQLTargetConverterDescriptor curFormat;
private Map<String, Object> options = new HashMap<>();
private String result;
private PropertySourceCustom propertySource;
TargetFormatDialog(SQLEditor editor, TextSelection selection) {
super(editor.getSite(), "Choose format", null);
......@@ -171,6 +172,9 @@ public class CopySourceCodeHandler extends AbstractHandler {
private void updateResult() {
try {
if (curFormat != null) {
propertySource = new PropertySourceCustom(curFormat.getProperties(), options);
propsViewer.loadProperties(propertySource);
ISQLTextConverter converter = curFormat.createInstance();
result = converter.convertText(
editor.getSQLDialect(),
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.sql.convert;
package org.jkiss.dbeaver.ui.editors.sql.convert.impl;
import org.jkiss.utils.CommonUtils;
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.sql.convert;
package org.jkiss.dbeaver.ui.editors.sql.convert.impl;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
......@@ -27,10 +27,8 @@ import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.sql.SQLDialect;
import org.jkiss.dbeaver.model.sql.SQLSyntaxManager;
import org.jkiss.dbeaver.ui.TextUtils;
import org.jkiss.dbeaver.ui.editors.sql.convert.ISQLTextConverter;
import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLRuleManager;
import org.jkiss.dbeaver.ui.editors.sql.syntax.tokens.SQLCommentToken;
import org.jkiss.utils.Pair;
import java.util.Map;
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.sql.convert;
package org.jkiss.dbeaver.ui.editors.sql.convert.impl;
import org.jkiss.utils.CommonUtils;
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.sql.convert;
package org.jkiss.dbeaver.ui.editors.sql.convert.impl;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
......@@ -23,6 +23,7 @@ import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.sql.SQLDialect;
import org.jkiss.dbeaver.model.sql.SQLSyntaxManager;
import org.jkiss.dbeaver.ui.editors.sql.convert.ISQLTextConverter;
import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLRuleManager;
import org.jkiss.utils.CommonUtils;
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.sql.convert;
package org.jkiss.dbeaver.ui.editors.sql.convert.impl;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
......@@ -25,6 +25,7 @@ import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.sql.SQLDialect;
import org.jkiss.dbeaver.model.sql.SQLSyntaxManager;
import org.jkiss.dbeaver.ui.TextUtils;
import org.jkiss.dbeaver.ui.editors.sql.convert.ISQLTextConverter;
import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLRuleManager;
import org.jkiss.dbeaver.ui.editors.sql.syntax.tokens.SQLCommentToken;
import org.jkiss.utils.Pair;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册