diff --git a/plugins/org.jkiss.dbeaver.ui.editors.base/src/org/jkiss/dbeaver/ui/editors/BaseTextEditorCommands.java b/plugins/org.jkiss.dbeaver.ui.editors.base/src/org/jkiss/dbeaver/ui/editors/BaseTextEditorCommands.java
new file mode 100644
index 0000000000000000000000000000000000000000..ba82635b8572d7fbe7e73a01fb9f299c6a6e7182
--- /dev/null
+++ b/plugins/org.jkiss.dbeaver.ui.editors.base/src/org/jkiss/dbeaver/ui/editors/BaseTextEditorCommands.java
@@ -0,0 +1,26 @@
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jkiss.dbeaver.ui.editors;
+
+/**
+ * BaseTextEditorCommands
+ */
+public class BaseTextEditorCommands {
+
+ public static final String CMD_CONTENT_FORMAT = "org.jkiss.dbeaver.ui.editors.text.content.format"; //$NON-NLS-1$
+
+}
\ No newline at end of file
diff --git a/plugins/org.jkiss.dbeaver.ui.editors.content/plugin.xml b/plugins/org.jkiss.dbeaver.ui.editors.content/plugin.xml
index 3ebb9580918bf9062f7ca09c6169208379bb9b01..ff83905d12287e79145eaf499db691326116a47d 100644
--- a/plugins/org.jkiss.dbeaver.ui.editors.content/plugin.xml
+++ b/plugins/org.jkiss.dbeaver.ui.editors.content/plugin.xml
@@ -3,5 +3,4 @@
-
diff --git a/plugins/org.jkiss.dbeaver.ui.editors.data/plugin.xml b/plugins/org.jkiss.dbeaver.ui.editors.data/plugin.xml
index fe8a501bd6542b3d628e6e60d01abd04973eae94..c49fc76f621403fa660ea71cc9289acc79b8f2af 100644
--- a/plugins/org.jkiss.dbeaver.ui.editors.data/plugin.xml
+++ b/plugins/org.jkiss.dbeaver.ui.editors.data/plugin.xml
@@ -625,6 +625,14 @@
+
+
+
+
+
+
+
+
diff --git a/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/editors/content/ContentEditorContributor.java b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/editors/content/ContentEditorContributor.java
index 9c039600692b43df7291a3eccecd6fb54b9eb57b..39555681b44f5df830da974122a7de5c4af656b1 100644
--- a/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/editors/content/ContentEditorContributor.java
+++ b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/editors/content/ContentEditorContributor.java
@@ -27,15 +27,20 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.*;
+import org.eclipse.ui.actions.RetargetAction;
import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
import org.eclipse.ui.texteditor.BasicTextEditorActionContributor;
+import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
+import org.eclipse.ui.texteditor.RetargetTextEditorAction;
import org.jkiss.dbeaver.model.DBIcon;
import org.jkiss.dbeaver.runtime.DBWorkbench;
+import org.jkiss.dbeaver.ui.ActionUtils;
import org.jkiss.dbeaver.ui.DBeaverIcons;
import org.jkiss.dbeaver.ui.UIIcon;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.data.IValueController;
import org.jkiss.dbeaver.ui.dialogs.DialogUtils;
+import org.jkiss.dbeaver.ui.editors.BaseTextEditorCommands;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
@@ -44,8 +49,7 @@ import java.lang.reflect.InvocationTargetException;
* Content Editor contributor.
* Uses text editor contributor to fill status bar and menu for possible integrated text editors.
*/
-public class ContentEditorContributor extends MultiPageEditorActionBarContributor
-{
+public class ContentEditorContributor extends MultiPageEditorActionBarContributor {
private final BasicTextEditorActionContributor textContributor;
private ContentEditor activeEditor;
//private IEditorPart activePage;
@@ -55,40 +59,34 @@ public class ContentEditorContributor extends MultiPageEditorActionBarContributo
private final IAction infoAction = new InfoAction();
private Combo encodingCombo;
- public ContentEditorContributor()
- {
+ public ContentEditorContributor() {
textContributor = new BasicTextEditorActionContributor();
}
- ContentEditor getEditor()
- {
+ ContentEditor getEditor() {
return activeEditor;
}
@Override
- public void init(IActionBars bars, IWorkbenchPage page)
- {
+ public void init(IActionBars bars, IWorkbenchPage page) {
super.init(bars, page);
textContributor.init(bars, page);
}
@Override
- public void init(IActionBars bars)
- {
+ public void init(IActionBars bars) {
super.init(bars);
textContributor.init(bars);
}
@Override
- public void dispose()
- {
+ public void dispose() {
textContributor.dispose();
super.dispose();
}
@Override
- public void setActiveEditor(IEditorPart part)
- {
+ public void setActiveEditor(IEditorPart part) {
super.setActiveEditor(part);
this.activeEditor = (ContentEditor) part;
@@ -108,15 +106,13 @@ public class ContentEditorContributor extends MultiPageEditorActionBarContributo
}
@Override
- public void setActivePage(IEditorPart activeEditor)
- {
+ public void setActivePage(IEditorPart activeEditor) {
//this.activePage = activeEditor;
this.textContributor.setActiveEditor(activeEditor);
}
@Override
- public void contributeToMenu(IMenuManager manager)
- {
+ public void contributeToMenu(IMenuManager manager) {
super.contributeToMenu(manager);
textContributor.contributeToMenu(manager);
@@ -127,18 +123,21 @@ public class ContentEditorContributor extends MultiPageEditorActionBarContributo
menu.add(new Separator());
menu.add(infoAction);
menu.add(new Separator());
+
+ IMenuManager editMenu = manager.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT);
+ if (editMenu != null) {
+ editMenu.add(ActionUtils.makeCommandContribution(UIUtils.getActiveWorkbenchWindow(), BaseTextEditorCommands.CMD_CONTENT_FORMAT));
+ }
}
@Override
- public void contributeToStatusLine(IStatusLineManager statusLineManager)
- {
+ public void contributeToStatusLine(IStatusLineManager statusLineManager) {
super.contributeToStatusLine(statusLineManager);
textContributor.contributeToStatusLine(statusLineManager);
}
@Override
- public void contributeToToolBar(IToolBarManager manager)
- {
+ public void contributeToToolBar(IToolBarManager manager) {
super.contributeToToolBar(manager);
textContributor.contributeToToolBar(manager);
// Execution
@@ -147,11 +146,9 @@ public class ContentEditorContributor extends MultiPageEditorActionBarContributo
manager.add(new Separator());
manager.add(infoAction);
manager.add(new Separator());
- manager.add(new ControlContribution("Encoding")
- {
+ manager.add(new ControlContribution("Encoding") {
@Override
- protected Control createControl(Composite parent)
- {
+ protected Control createControl(Composite parent) {
String curCharset = null;
if (getEditor() != null) {
curCharset = getEditor().getEditorInput().getEncoding();
@@ -188,8 +185,7 @@ public class ContentEditorContributor extends MultiPageEditorActionBarContributo
public abstract class SimpleAction extends Action {
- SimpleAction(String id, String text, String toolTip, DBIcon icon)
- {
+ SimpleAction(String id, String text, String toolTip, DBIcon icon) {
super(text, DBeaverIcons.getImageDescriptor(icon));
setId(id);
//setActionDefinitionId(id);
@@ -201,30 +197,24 @@ public class ContentEditorContributor extends MultiPageEditorActionBarContributo
}
- private class FileExportAction extends SimpleAction
- {
- FileExportAction()
- {
+ private class FileExportAction extends SimpleAction {
+ FileExportAction() {
super(IWorkbenchCommandConstants.FILE_EXPORT, "Export", "Save to File", UIIcon.SAVE_AS);
}
@Override
- public void run()
- {
+ public void run() {
getEditor().doSaveAs();
}
}
- private class FileImportAction extends SimpleAction
- {
- FileImportAction()
- {
+ private class FileImportAction extends SimpleAction {
+ FileImportAction() {
super(IWorkbenchCommandConstants.FILE_IMPORT, "Import", "Load from File", UIIcon.LOAD);
}
@Override
- public void run()
- {
+ public void run() {
final ContentEditor editor = getEditor();
if (editor == null) {
return;
@@ -238,12 +228,10 @@ public class ContentEditorContributor extends MultiPageEditorActionBarContributo
editor.getSite().getWorkbenchWindow().run(true, true, new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor)
- throws InvocationTargetException, InterruptedException
- {
+ throws InvocationTargetException, InterruptedException {
try {
editor.getEditorInput().loadFromExternalFile(loadFile, monitor);
- }
- catch (CoreException e) {
+ } catch (CoreException e) {
throw new InvocationTargetException(e);
}
}
@@ -254,29 +242,24 @@ public class ContentEditorContributor extends MultiPageEditorActionBarContributo
}
editor.setDirty(true);
editor.fireContentChanged();
- }
- catch (InvocationTargetException e) {
+ } catch (InvocationTargetException e) {
DBWorkbench.getPlatformUI().showError(
- "Can't load content",
+ "Can't load content",
"Can't load content from file '" + loadFile.getAbsolutePath() + "'",
e.getTargetException());
- }
- catch (InterruptedException e) {
+ } catch (InterruptedException e) {
// do nothing
}
}
}
- private class InfoAction extends SimpleAction
- {
- InfoAction()
- {
+ private class InfoAction extends SimpleAction {
+ InfoAction() {
super("org.jkiss.dbeaver.lob.actions.info", "Info", "Show column information", DBIcon.TREE_INFO);
}
@Override
- public void run()
- {
+ public void run() {
getEditor().toggleInfoBar();
}
}
diff --git a/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/editors/content/ContentFormatHandler.java b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/editors/content/ContentFormatHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..8e545175206e418e43aa2bdb021c8c65cf06b751
--- /dev/null
+++ b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/editors/content/ContentFormatHandler.java
@@ -0,0 +1,48 @@
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jkiss.dbeaver.ui.editors.content;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.TextViewer;
+import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.texteditor.AbstractTextEditor;
+
+public class ContentFormatHandler extends AbstractHandler {
+
+ public ContentFormatHandler() {
+ }
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ IEditorPart activeEditor = HandlerUtil.getActiveEditor(event);
+ if (activeEditor instanceof ContentEditor) {
+ IEditorPart editorPart = ((ContentEditor) activeEditor).getActiveEditor();
+ ITextViewer textViewer = editorPart.getAdapter(ITextViewer.class);
+ if (textViewer instanceof TextViewer) {
+ ((TextViewer)textViewer).doOperation(SourceViewer.FORMAT);
+ }
+ }
+ return null;
+ }
+
+
+}
diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
index 5627b5eeccaf170b2521e98d817675ba4c4cc36c..5c8be73474153ec714be1632b95cc736bfce764e 100644
--- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
+++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
@@ -55,6 +55,7 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.sql.*;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.ui.*;
+import org.jkiss.dbeaver.ui.editors.BaseTextEditorCommands;
import org.jkiss.dbeaver.ui.editors.EditorUtils;
import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorMessages;
import org.jkiss.dbeaver.ui.editors.sql.preferences.*;
@@ -514,7 +515,7 @@ public abstract class SQLEditorBase extends BaseTextEditor implements DBPContext
SQLEditorContributor.getActionResourcePrefix(SQLEditorContributor.ACTION_CONTENT_FORMAT_PROPOSAL),
this,
ISourceViewer.FORMAT);
- a.setActionDefinitionId(SQLEditorCommands.CMD_CONTENT_FORMAT);
+ a.setActionDefinitionId(BaseTextEditorCommands.CMD_CONTENT_FORMAT);
setAction(SQLEditorContributor.ACTION_CONTENT_FORMAT_PROPOSAL, a);
setAction(ITextEditorActionConstants.CONTEXT_PREFERENCES, new Action(SQLEditorMessages.editor_sql_preference) { //$NON-NLS-1$
diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorCommands.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorCommands.java
index 653a72bf1e0eb80d2c2dcbdfcf8d85f76543d8bd..678e549342297bfb44447bf57bb70125dfd80cae 100644
--- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorCommands.java
+++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorCommands.java
@@ -43,7 +43,7 @@ public interface SQLEditorCommands
String CMD_SQL_ASSIST_TEMPLATES = "org.jkiss.dbeaver.ui.editors.sql.assist.templates"; //$NON-NLS-1$
String CMD_SYNC_CONNECTION = "org.jkiss.dbeaver.ui.editors.sql.sync.connection";
String CMD_SQL_RENAME = "org.jkiss.dbeaver.ui.editors.sql.rename";
- String CMD_CONTENT_FORMAT = "org.jkiss.dbeaver.ui.editors.text.content.format"; //$NON-NLS-1$
String CMD_OPEN_FILE = "org.jkiss.dbeaver.ui.editors.sql.open.file"; //$NON-NLS-1$
String CMD_SAVE_FILE = "org.jkiss.dbeaver.ui.editors.sql.save.file"; //$NON-NLS-1$
+
}
diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorContributor.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorContributor.java
index 0bc89cb66e8bd769194221e744141c4e7a317833..bc17360a603a8942e702a8d3eb39aa63f2f3a801 100644
--- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorContributor.java
+++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorContributor.java
@@ -29,6 +29,7 @@ import org.eclipse.ui.texteditor.StatusLineContributionItem;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ui.ActionUtils;
import org.jkiss.dbeaver.ui.UIUtils;
+import org.jkiss.dbeaver.ui.editors.BaseTextEditorCommands;
import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorMessages;
import java.util.ResourceBundle;
@@ -78,7 +79,7 @@ public class SQLEditorContributor extends TextEditorActionContributor
contentAssistProposal = new RetargetTextEditorAction(bundle, getActionResourcePrefix(ACTION_CONTENT_ASSIST_PROPOSAL));
contentAssistProposal.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
contentFormatProposal = new RetargetTextEditorAction(bundle, getActionResourcePrefix(ACTION_CONTENT_FORMAT_PROPOSAL));
- contentFormatProposal.setActionDefinitionId(SQLEditorCommands.CMD_CONTENT_FORMAT);
+ contentFormatProposal.setActionDefinitionId(BaseTextEditorCommands.CMD_CONTENT_FORMAT);
contentAssistTip = new RetargetTextEditorAction(bundle, getActionResourcePrefix(ACTION_CONTENT_ASSIST_TIP));
contentAssistTip.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_CONTEXT_INFORMATION);