提交 ef1861c6 编写于 作者: S serge-rider

Nested SQL editor refactoring

上级 79fbab32
...@@ -39,6 +39,7 @@ import org.eclipse.swt.events.FocusEvent; ...@@ -39,6 +39,7 @@ import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener; import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite; import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.part.MultiPageEditorSite; import org.eclipse.ui.part.MultiPageEditorSite;
import org.eclipse.ui.texteditor.IDocumentProvider; import org.eclipse.ui.texteditor.IDocumentProvider;
...@@ -49,6 +50,7 @@ import org.jkiss.dbeaver.model.exec.DBCExecutionContext; ...@@ -49,6 +50,7 @@ import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.exec.compile.DBCCompileLog; import org.jkiss.dbeaver.model.exec.compile.DBCCompileLog;
import org.jkiss.dbeaver.model.exec.compile.DBCSourceHost; import org.jkiss.dbeaver.model.exec.compile.DBCSourceHost;
import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode; import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.runtime.AbstractJob; import org.jkiss.dbeaver.model.runtime.AbstractJob;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.sql.SQLUtils; import org.jkiss.dbeaver.model.sql.SQLUtils;
...@@ -84,28 +86,31 @@ public abstract class SQLEditorNested<T extends DBSObject> ...@@ -84,28 +86,31 @@ public abstract class SQLEditorNested<T extends DBSObject>
//setHasVerticalRuler(false); //setHasVerticalRuler(false);
} }
@Override public IDatabaseEditorInput getDatabaseEditorInput() {
public IDatabaseEditorInput getEditorInput() {
return (IDatabaseEditorInput)super.getEditorInput(); return (IDatabaseEditorInput)super.getEditorInput();
} }
@Override @Override
public T getSourceObject() public T getSourceObject()
{ {
IDatabaseEditorInput editorInput = getEditorInput(); IEditorInput editorInput = getEditorInput();
if (editorInput == null) { if (!(editorInput instanceof IDatabaseEditorInput)) {
return null; return null;
} }
return (T) editorInput.getDatabaseObject(); return (T) ((IDatabaseEditorInput)editorInput).getDatabaseObject();
} }
@Override @Override
public DBCExecutionContext getExecutionContext() { public DBCExecutionContext getExecutionContext() {
IDatabaseEditorInput editorInput = getEditorInput(); IEditorInput editorInput = getEditorInput();
if (editorInput == null) { if (!(editorInput instanceof IDatabaseEditorInput)) {
return null; return null;
} }
return editorInput.getExecutionContext(); return ((IDatabaseEditorInput)editorInput).getExecutionContext();
}
public DBPPropertySource getInputPropertySource() {
return getDatabaseEditorInput().getPropertySource();
} }
@Override @Override
...@@ -273,8 +278,7 @@ public abstract class SQLEditorNested<T extends DBSObject> ...@@ -273,8 +278,7 @@ public abstract class SQLEditorNested<T extends DBSObject>
@Override @Override
protected IAnnotationModel createAnnotationModel(Object element) throws CoreException { protected IAnnotationModel createAnnotationModel(Object element) throws CoreException {
IDatabaseEditorInput editorInput = SQLEditorNested.this.getEditorInput(); DBSObject databaseObject = getSourceObject();
DBSObject databaseObject = editorInput.getDatabaseObject();
DBNDatabaseNode node = DBeaverCore.getInstance().getNavigatorModel().getNodeByObject(databaseObject); DBNDatabaseNode node = DBeaverCore.getInstance().getNavigatorModel().getNodeByObject(databaseObject);
IResource resource = DBeaverIDECore.resolveWorkspaceResource(databaseObject); IResource resource = DBeaverIDECore.resolveWorkspaceResource(databaseObject);
if (resource != null) { if (resource != null) {
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
package org.jkiss.dbeaver.ui.editors.sql; package org.jkiss.dbeaver.ui.editors.sql;
import org.eclipse.jface.action.*; import org.eclipse.jface.action.*;
import org.eclipse.ui.IEditorInput;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBPDataSource; import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPScriptObject; import org.jkiss.dbeaver.model.DBPScriptObject;
...@@ -59,14 +60,16 @@ public class SQLSourceViewer<T extends DBPScriptObject & DBSObject> extends SQLE ...@@ -59,14 +60,16 @@ public class SQLSourceViewer<T extends DBPScriptObject & DBSObject> extends SQLE
} }
protected Map<String, Object> getSourceOptions() { protected Map<String, Object> getSourceOptions() {
IDatabaseEditorInput editorInput = getEditorInput(); IEditorInput editorInput = getEditorInput();
Collection<String> attributeNames = editorInput.getAttributeNames();
Map<String, Object> options = new HashMap<>(); Map<String, Object> options = new HashMap<>();
options.put(DBPScriptObject.OPTION_DDL_SOURCE, true); if (editorInput instanceof IDatabaseEditorInput) {
if (!attributeNames.isEmpty()) { Collection<String> attributeNames = ((IDatabaseEditorInput)editorInput).getAttributeNames();
for (String name : attributeNames) { options.put(DBPScriptObject.OPTION_DDL_SOURCE, true);
Object attribute = editorInput.getAttribute(name); if (!attributeNames.isEmpty()) {
options.put(name, attribute); for (String name : attributeNames) {
Object attribute = ((IDatabaseEditorInput)editorInput).getAttribute(name);
options.put(name, attribute);
}
} }
} }
return options; return options;
......
...@@ -68,7 +68,7 @@ public class DB2RoutineDDLEditor extends SQLSourceViewer<DB2Routine> { ...@@ -68,7 +68,7 @@ public class DB2RoutineDDLEditor extends SQLSourceViewer<DB2Routine> {
{ {
for (DB2DDLFormat format : DB2DDLFormat.values()) { for (DB2DDLFormat format : DB2DDLFormat.values()) {
if (format.ordinal() == ddlFormatCombo.getSelectionIndex()) { if (format.ordinal() == ddlFormatCombo.getSelectionIndex()) {
getEditorInput().getDatabaseObject().getDataSource().getContainer().getPreferenceStore() getSourceObject().getDataSource().getContainer().getPreferenceStore()
.setValue(DB2Constants.PREF_KEY_DDL_FORMAT, format.name()); .setValue(DB2Constants.PREF_KEY_DDL_FORMAT, format.name());
refreshPart(this, true); refreshPart(this, true);
break; break;
......
...@@ -34,7 +34,7 @@ public class ExasolSourceViewEditor extends SQLSourceViewer<ExasolSourceObject> ...@@ -34,7 +34,7 @@ public class ExasolSourceViewEditor extends SQLSourceViewer<ExasolSourceObject>
@Override @Override
protected void setSourceText(DBRProgressMonitor monitor, String sourceText) protected void setSourceText(DBRProgressMonitor monitor, String sourceText)
{ {
getEditorInput().getPropertySource().setPropertyValue(monitor, "objectDefinitionText", sourceText); getInputPropertySource().setPropertyValue(monitor, "objectDefinitionText", sourceText);
} }
} }
...@@ -45,7 +45,7 @@ public class MySQLPackageBodyEditor extends SQLSourceViewer<MySQLSourceObject> { ...@@ -45,7 +45,7 @@ public class MySQLPackageBodyEditor extends SQLSourceViewer<MySQLSourceObject> {
@Override @Override
protected void setSourceText(DBRProgressMonitor monitor, String sourceText) { protected void setSourceText(DBRProgressMonitor monitor, String sourceText) {
getEditorInput().getPropertySource().setPropertyValue( getInputPropertySource().setPropertyValue(
monitor, monitor,
"extendedDefinitionText", "extendedDefinitionText",
sourceText); sourceText);
......
...@@ -39,7 +39,7 @@ public class MySQLSourceViewEditor extends SQLSourceViewer<MySQLSourceObject> { ...@@ -39,7 +39,7 @@ public class MySQLSourceViewEditor extends SQLSourceViewer<MySQLSourceObject> {
@Override @Override
protected void setSourceText(DBRProgressMonitor monitor, String sourceText) protected void setSourceText(DBRProgressMonitor monitor, String sourceText)
{ {
getEditorInput().getPropertySource().setPropertyValue(monitor, "objectDefinitionText", sourceText); getInputPropertySource().setPropertyValue(monitor, "objectDefinitionText", sourceText);
} }
} }
\ No newline at end of file
...@@ -63,7 +63,7 @@ public class OracleObjectDDLEditor extends SQLSourceViewer<OracleTable> { ...@@ -63,7 +63,7 @@ public class OracleObjectDDLEditor extends SQLSourceViewer<OracleTable> {
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
for (OracleDDLFormat format : OracleDDLFormat.values()) { for (OracleDDLFormat format : OracleDDLFormat.values()) {
if (format.ordinal() == ddlFormatCombo.getSelectionIndex()) { if (format.ordinal() == ddlFormatCombo.getSelectionIndex()) {
getEditorInput().getDatabaseObject().getDataSource().getContainer().getPreferenceStore().setValue( getSourceObject().getDataSource().getContainer().getPreferenceStore().setValue(
OracleConstants.PREF_KEY_DDL_FORMAT, format.name()); OracleConstants.PREF_KEY_DDL_FORMAT, format.name());
refreshPart(this, true); refreshPart(this, true);
break; break;
......
...@@ -34,7 +34,7 @@ public class OracleSourceDeclarationEditor extends SQLSourceViewer<OracleSourceO ...@@ -34,7 +34,7 @@ public class OracleSourceDeclarationEditor extends SQLSourceViewer<OracleSourceO
@Override @Override
protected void setSourceText(DBRProgressMonitor monitor, String sourceText) { protected void setSourceText(DBRProgressMonitor monitor, String sourceText) {
getEditorInput().getPropertySource().setPropertyValue( getInputPropertySource().setPropertyValue(
monitor, monitor,
OracleConstants.PROP_OBJECT_DEFINITION, OracleConstants.PROP_OBJECT_DEFINITION,
sourceText); sourceText);
......
...@@ -42,7 +42,7 @@ public class OracleSourceDefinitionEditor extends SQLSourceViewer<OracleSourceOb ...@@ -42,7 +42,7 @@ public class OracleSourceDefinitionEditor extends SQLSourceViewer<OracleSourceOb
@Override @Override
protected void setSourceText(DBRProgressMonitor monitor, String sourceText) { protected void setSourceText(DBRProgressMonitor monitor, String sourceText) {
getEditorInput().getPropertySource().setPropertyValue( getInputPropertySource().setPropertyValue(
monitor, monitor,
OracleConstants.PROP_OBJECT_BODY_DEFINITION, OracleConstants.PROP_OBJECT_BODY_DEFINITION,
sourceText); sourceText);
......
...@@ -44,7 +44,7 @@ public class SchedulerJobActionEditor extends SQLSourceViewer<OracleSchedulerJob ...@@ -44,7 +44,7 @@ public class SchedulerJobActionEditor extends SQLSourceViewer<OracleSchedulerJob
@Override @Override
protected void setSourceText(DBRProgressMonitor monitor, String sourceText) { protected void setSourceText(DBRProgressMonitor monitor, String sourceText) {
getEditorInput().getPropertySource().setPropertyValue( getInputPropertySource().setPropertyValue(
monitor, monitor,
OracleConstants.PROP_OBJECT_BODY_DEFINITION, OracleConstants.PROP_OBJECT_BODY_DEFINITION,
sourceText); sourceText);
......
...@@ -18,14 +18,8 @@ ...@@ -18,14 +18,8 @@
package org.jkiss.dbeaver.ext.postgresql.ui.editors; package org.jkiss.dbeaver.ext.postgresql.ui.editors;
import org.eclipse.jface.action.Action; import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ControlContribution;
import org.eclipse.jface.action.IContributionManager; import org.eclipse.jface.action.IContributionManager;
import org.eclipse.jface.action.Separator; import org.eclipse.jface.action.Separator;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.jkiss.dbeaver.ext.postgresql.PostgreConstants; import org.jkiss.dbeaver.ext.postgresql.PostgreConstants;
import org.jkiss.dbeaver.ext.postgresql.model.*; import org.jkiss.dbeaver.ext.postgresql.model.*;
import org.jkiss.dbeaver.model.DBIcon; import org.jkiss.dbeaver.model.DBIcon;
...@@ -33,7 +27,6 @@ import org.jkiss.dbeaver.model.DBPScriptObject; ...@@ -33,7 +27,6 @@ import org.jkiss.dbeaver.model.DBPScriptObject;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.ui.ActionUtils; import org.jkiss.dbeaver.ui.ActionUtils;
import org.jkiss.dbeaver.ui.DBeaverIcons; import org.jkiss.dbeaver.ui.DBeaverIcons;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.editors.sql.SQLSourceViewer; import org.jkiss.dbeaver.ui.editors.sql.SQLSourceViewer;
import org.jkiss.utils.CommonUtils; import org.jkiss.utils.CommonUtils;
...@@ -74,7 +67,7 @@ public class PostgreSourceViewEditor extends SQLSourceViewer<PostgreScriptObject ...@@ -74,7 +67,7 @@ public class PostgreSourceViewEditor extends SQLSourceViewer<PostgreScriptObject
@Override @Override
protected void setSourceText(DBRProgressMonitor monitor, String sourceText) protected void setSourceText(DBRProgressMonitor monitor, String sourceText)
{ {
getEditorInput().getPropertySource().setPropertyValue(monitor, "objectDefinitionText", sourceText); getInputPropertySource().setPropertyValue(monitor, "objectDefinitionText", sourceText);
} }
@Override @Override
...@@ -93,7 +86,7 @@ public class PostgreSourceViewEditor extends SQLSourceViewer<PostgreScriptObject ...@@ -93,7 +86,7 @@ public class PostgreSourceViewEditor extends SQLSourceViewer<PostgreScriptObject
} }
@Override @Override
public void run() { public void run() {
getEditorInput().setAttribute(DBPScriptObject.OPTION_DEBUGGER_SOURCE, !isChecked()); getDatabaseEditorInput().setAttribute(DBPScriptObject.OPTION_DEBUGGER_SOURCE, !isChecked());
refreshPart(PostgreSourceViewEditor.this, true); refreshPart(PostgreSourceViewEditor.this, true);
} }
}, true)); }, true));
...@@ -142,7 +135,7 @@ public class PostgreSourceViewEditor extends SQLSourceViewer<PostgreScriptObject ...@@ -142,7 +135,7 @@ public class PostgreSourceViewEditor extends SQLSourceViewer<PostgreScriptObject
private boolean isInDebugMode() { private boolean isInDebugMode() {
return CommonUtils.getBoolean( return CommonUtils.getBoolean(
getEditorInput().getAttribute(DBPScriptObject.OPTION_DEBUGGER_SOURCE), false); getDatabaseEditorInput().getAttribute(DBPScriptObject.OPTION_DEBUGGER_SOURCE), false);
} }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册