diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/TabbedFolderPageEditor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/TabbedFolderPageEditor.java index 1492486c00323894a6de43fe4fee4cbad0228d66..ec374e86c9198e562d44b68d4554d452e83a534b 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/TabbedFolderPageEditor.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/TabbedFolderPageEditor.java @@ -252,6 +252,12 @@ public class TabbedFolderPageEditor extends TabbedFolderPage implements IDatabas public TabbedFolderPageEditorSite(MultiPageEditorPart multiPageEditor, IEditorPart editor) { super(multiPageEditor, editor); } + + @Override + public String getId() { + String id = editorDescriptor.getId(); + return id; + } @NotNull @Override diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorNested.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorNested.java index 4498c87af331af65999d35b698752956557f2a28..09f6e6b471e55f6957d68b47375f5658a979d6e7 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorNested.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorNested.java @@ -1,376 +1,387 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 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.sql; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.IJobChangeEvent; -import org.eclipse.core.runtime.jobs.JobChangeAdapter; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IContributionManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.Document; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.IRegion; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.SashForm; -import org.eclipse.swt.events.FocusEvent; -import org.eclipse.swt.events.FocusListener; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.ui.IEditorSite; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.part.MultiPageEditorSite; -import org.eclipse.ui.texteditor.IDocumentProvider; -import org.jkiss.dbeaver.DBException; -import org.jkiss.dbeaver.core.CoreCommands; -import org.jkiss.dbeaver.core.DBeaverUI; -import org.jkiss.dbeaver.model.exec.DBCExecutionContext; -import org.jkiss.dbeaver.model.exec.compile.DBCCompileLog; -import org.jkiss.dbeaver.model.exec.compile.DBCSourceHost; -import org.jkiss.dbeaver.model.runtime.AbstractJob; -import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; -import org.jkiss.dbeaver.model.sql.SQLUtils; -import org.jkiss.dbeaver.model.struct.DBSObject; -import org.jkiss.dbeaver.ui.*; -import org.jkiss.dbeaver.ui.controls.ObjectCompilerLogViewer; -import org.jkiss.dbeaver.ui.controls.ProgressPageControl; -import org.jkiss.dbeaver.ui.editors.IDatabaseEditorInput; -import org.jkiss.dbeaver.ui.editors.entity.EntityEditor; -import org.jkiss.dbeaver.ui.editors.text.BaseTextDocumentProvider; -import org.jkiss.dbeaver.utils.RuntimeUtils; - -/** - * SQLEditorNested - */ -public abstract class SQLEditorNested - extends SQLEditorBase - implements IActiveWorkbenchPart, IRefreshablePart, DBCSourceHost -{ - - private EditorPageControl pageControl; - private ObjectCompilerLogViewer compileLog; - private Control editorControl; - private SashForm editorSash; - private boolean activated; - - public SQLEditorNested() { - super(); - - setDocumentProvider(new ObjectDocumentProvider()); - //setHasVerticalRuler(false); - } - - @Override - public IDatabaseEditorInput getEditorInput() { - return (IDatabaseEditorInput)super.getEditorInput(); - } - - @Override - public T getSourceObject() - { - IDatabaseEditorInput editorInput = getEditorInput(); - if (editorInput == null) { - return null; - } - return (T) editorInput.getDatabaseObject(); - } - - @Override - public DBCExecutionContext getExecutionContext() { - IDatabaseEditorInput editorInput = getEditorInput(); - if (editorInput == null) { - return null; - } - return editorInput.getExecutionContext(); - } - - @Override - public void createPartControl(Composite parent) - { - pageControl = new EditorPageControl(parent, SWT.SHEET); - - boolean hasCompiler = getCompileCommandId() != null; - - if (hasCompiler) { - editorSash = new SashForm(pageControl.createContentContainer(), SWT.VERTICAL | SWT.SMOOTH); - super.createPartControl(editorSash); - - editorControl = editorSash.getChildren()[0]; - compileLog = new ObjectCompilerLogViewer(editorSash, false); - } else { - super.createPartControl(pageControl.createContentContainer()); - } - - // Create new or substitute progress control - pageControl.createOrSubstituteProgressPanel(getSite()); - pageControl.setInfo("Source"); - - if (hasCompiler) { - editorSash.setWeights(new int[]{70, 30}); - editorSash.setMaximizedControl(editorControl); - } - - // Use focus to activate page control - final Control editorControl = getEditorControl(); - assert editorControl != null; - editorControl.addFocusListener(new FocusListener() { - @Override - public void focusGained(FocusEvent e) { - if (pageControl != null && !pageControl.isDisposed()) { - pageControl.activate(true); - } - } - - @Override - public void focusLost(FocusEvent e) { - if (pageControl != null && !pageControl.isDisposed()) { - pageControl.activate(false); - } - } - }); - } - - @Override - public void doSave(final IProgressMonitor progressMonitor) { - DBeaverUI.syncExec(new Runnable() { - @Override - public void run() { - SQLEditorNested.super.doSave(progressMonitor); - } - }); - } - - @Override - public void activatePart() { - if (!activated) { - reloadSyntaxRules(); - activated = true; - } - } - - @Override - public void deactivatePart() { - } - - @Override - public void refreshPart(Object source, boolean force) { - // Check if we are in saving process - // If so then no refresh needed (source text was updated during save) - IEditorSite editorSite = getEditorSite(); - if (editorSite instanceof MultiPageEditorSite && - ((MultiPageEditorSite) editorSite).getMultiPageEditor() instanceof EntityEditor && - ((EntityEditor) ((MultiPageEditorSite) editorSite).getMultiPageEditor()).isSaveInProgress()) - { - return; - } - - final IDocumentProvider documentProvider = getDocumentProvider(); - if (documentProvider instanceof SQLEditorNested.ObjectDocumentProvider) { - ((SQLEditorNested.ObjectDocumentProvider) documentProvider).sourceText = null; - } - if (force) { - try { - super.init(editorSite, getEditorInput()); - //setFocus(); - } catch (PartInitException e) { - log.error(e); - } - } - reloadSyntaxRules(); - } - - protected String getCompileCommandId() - { - return null; - } - - public boolean isDocumentLoaded() { - final IDocumentProvider documentProvider = getDocumentProvider(); - if (documentProvider instanceof SQLEditorNested.ObjectDocumentProvider) { - return ((SQLEditorNested.ObjectDocumentProvider) documentProvider).sourceLoaded; - } - return true; - } - - private class ObjectDocumentProvider extends BaseTextDocumentProvider { - - private String sourceText; - private boolean sourceLoaded; - - @Override - public boolean isReadOnly(Object element) { - return SQLEditorNested.this.isReadOnly(); - } - - @Override - public boolean isModifiable(Object element) { - return !SQLEditorNested.this.isReadOnly(); - } - - @Override - protected IDocument createDocument(Object element) throws CoreException { - final Document document = new Document(); - - if (sourceText == null) { - sourceText = SQLUtils.generateCommentLine(getDataSource(), "Loading '" + getEditorInput().getName() + "' source..."); - document.set(sourceText); - - AbstractJob job = new AbstractJob("Load SQL source") { - { - setUser(true); - } - @Override - protected IStatus run(DBRProgressMonitor monitor) { - try { - sourceText = getSourceText(monitor); - if (sourceText == null) { - sourceText = SQLUtils.generateCommentLine(getDataSource(), "Empty source"); - } - return Status.OK_STATUS; - } catch (Exception e) { - sourceText = "/* ERROR WHILE READING SOURCE:\n\n" + e.getMessage() + "\n*/"; - return Status.CANCEL_STATUS; - } - } - }; - job.addJobChangeListener(new JobChangeAdapter() { - @Override - public void done(IJobChangeEvent event) { - DBeaverUI.asyncExec(new Runnable() { - @Override - public void run() { - try { - SQLEditorNested.this.init(getEditorSite(), getEditorInput()); - SQLEditorNested.this.reloadSyntaxRules(); - } catch (PartInitException e) { - log.error(e); - } - } - }); - super.done(event); - } - }); - job.schedule(); - } - // Set text - document.set(sourceText); - sourceLoaded = true; - - return document; - } - - @Override - protected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) throws CoreException { - setSourceText(RuntimeUtils.makeMonitor(monitor), document.get()); - } - } - - @Override - public DBCCompileLog getCompileLog() - { - return compileLog; - } - - @Override - public void setCompileInfo(String message, boolean error) - { - pageControl.setInfo(message); - } - - @Override - public void positionSource(int line, int position) - { - try { - final IRegion lineInfo = getTextViewer().getDocument().getLineInformation(line - 1); - final int offset = lineInfo.getOffset() + position - 1; - super.selectAndReveal(offset, 1); - //textEditor.setFocus(); - } catch (BadLocationException e) { - log.warn(e); - // do nothing - } - } - - @Override - public void showCompileLog() - { - editorSash.setMaximizedControl(null); - compileLog.layoutLog(); - } - - protected abstract String getSourceText(DBRProgressMonitor monitor) - throws DBException; - - protected abstract void setSourceText(DBRProgressMonitor monitor, String sourceText); - - protected void contributeEditorCommands(IContributionManager toolBarManager) - { - toolBarManager.add(ActionUtils.makeCommandContribution(getSite().getWorkbenchWindow(), CoreCommands.CMD_OPEN_FILE)); - toolBarManager.add(ActionUtils.makeCommandContribution(getSite().getWorkbenchWindow(), CoreCommands.CMD_SAVE_FILE)); - String compileCommandId = getCompileCommandId(); - if (compileCommandId != null) { - toolBarManager.add(new Separator()); - toolBarManager.add(ActionUtils.makeCommandContribution(getSite().getWorkbenchWindow(), compileCommandId)); - toolBarManager.add(new ViewLogAction()); - } - } - - @Override - public void doSaveAs() { - saveToExternalFile(); - } - - private class EditorPageControl extends ProgressPageControl { - - public EditorPageControl(Composite parent, int style) - { - super(parent, style); - } - - @Override - protected void fillCustomActions(IContributionManager contributionManager) { - contributeEditorCommands(contributionManager); - } - } - - public class ViewLogAction extends Action - { - public ViewLogAction() - { - super("View compile log", DBeaverIcons.getImageDescriptor(UIIcon.COMPILE_LOG)); //$NON-NLS-2$ - } - - @Override - public void run() - { - if (getTextViewer().getControl().isDisposed()) { - return; - } - if (editorSash.getMaximizedControl() == null) { - editorSash.setMaximizedControl(editorControl); - } else { - showCompileLog(); - } - } - - } - -} +/* + * DBeaver - Universal Database Manager + * Copyright (C) 2010-2017 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.sql; + +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.IJobChangeEvent; +import org.eclipse.core.runtime.jobs.JobChangeAdapter; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IContributionManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.Document; +import org.eclipse.jface.text.IDocument; +import org.eclipse.jface.text.IRegion; +import org.eclipse.jface.text.source.IAnnotationModel; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.SashForm; +import org.eclipse.swt.events.FocusEvent; +import org.eclipse.swt.events.FocusListener; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.part.MultiPageEditorSite; +import org.eclipse.ui.texteditor.IDocumentProvider; +import org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel; +import org.jkiss.dbeaver.DBException; +import org.jkiss.dbeaver.core.CoreCommands; +import org.jkiss.dbeaver.core.DBeaverCore; +import org.jkiss.dbeaver.core.DBeaverUI; +import org.jkiss.dbeaver.model.exec.DBCExecutionContext; +import org.jkiss.dbeaver.model.exec.compile.DBCCompileLog; +import org.jkiss.dbeaver.model.exec.compile.DBCSourceHost; +import org.jkiss.dbeaver.model.runtime.AbstractJob; +import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; +import org.jkiss.dbeaver.model.sql.SQLUtils; +import org.jkiss.dbeaver.model.struct.DBSObject; +import org.jkiss.dbeaver.ui.*; +import org.jkiss.dbeaver.ui.controls.ObjectCompilerLogViewer; +import org.jkiss.dbeaver.ui.controls.ProgressPageControl; +import org.jkiss.dbeaver.ui.editors.IDatabaseEditorInput; +import org.jkiss.dbeaver.ui.editors.entity.EntityEditor; +import org.jkiss.dbeaver.ui.editors.text.BaseTextDocumentProvider; +import org.jkiss.dbeaver.utils.RuntimeUtils; + +/** + * SQLEditorNested + */ +public abstract class SQLEditorNested + extends SQLEditorBase + implements IActiveWorkbenchPart, IRefreshablePart, DBCSourceHost +{ + + private EditorPageControl pageControl; + private ObjectCompilerLogViewer compileLog; + private Control editorControl; + private SashForm editorSash; + private boolean activated; + + public SQLEditorNested() { + super(); + + setDocumentProvider(new ObjectDocumentProvider()); + //setHasVerticalRuler(false); + } + + @Override + public IDatabaseEditorInput getEditorInput() { + return (IDatabaseEditorInput)super.getEditorInput(); + } + + @Override + public T getSourceObject() + { + IDatabaseEditorInput editorInput = getEditorInput(); + if (editorInput == null) { + return null; + } + return (T) editorInput.getDatabaseObject(); + } + + @Override + public DBCExecutionContext getExecutionContext() { + IDatabaseEditorInput editorInput = getEditorInput(); + if (editorInput == null) { + return null; + } + return editorInput.getExecutionContext(); + } + + @Override + public void createPartControl(Composite parent) + { + pageControl = new EditorPageControl(parent, SWT.SHEET); + + boolean hasCompiler = getCompileCommandId() != null; + + if (hasCompiler) { + editorSash = new SashForm(pageControl.createContentContainer(), SWT.VERTICAL | SWT.SMOOTH); + super.createPartControl(editorSash); + + editorControl = editorSash.getChildren()[0]; + compileLog = new ObjectCompilerLogViewer(editorSash, false); + } else { + super.createPartControl(pageControl.createContentContainer()); + } + + // Create new or substitute progress control + pageControl.createOrSubstituteProgressPanel(getSite()); + pageControl.setInfo("Source"); + + if (hasCompiler) { + editorSash.setWeights(new int[]{70, 30}); + editorSash.setMaximizedControl(editorControl); + } + + // Use focus to activate page control + final Control editorControl = getEditorControl(); + assert editorControl != null; + editorControl.addFocusListener(new FocusListener() { + @Override + public void focusGained(FocusEvent e) { + if (pageControl != null && !pageControl.isDisposed()) { + pageControl.activate(true); + } + } + + @Override + public void focusLost(FocusEvent e) { + if (pageControl != null && !pageControl.isDisposed()) { + pageControl.activate(false); + } + } + }); + } + + @Override + public void doSave(final IProgressMonitor progressMonitor) { + DBeaverUI.syncExec(new Runnable() { + @Override + public void run() { + SQLEditorNested.super.doSave(progressMonitor); + } + }); + } + + @Override + public void activatePart() { + if (!activated) { + reloadSyntaxRules(); + activated = true; + } + } + + @Override + public void deactivatePart() { + } + + @Override + public void refreshPart(Object source, boolean force) { + // Check if we are in saving process + // If so then no refresh needed (source text was updated during save) + IEditorSite editorSite = getEditorSite(); + if (editorSite instanceof MultiPageEditorSite && + ((MultiPageEditorSite) editorSite).getMultiPageEditor() instanceof EntityEditor && + ((EntityEditor) ((MultiPageEditorSite) editorSite).getMultiPageEditor()).isSaveInProgress()) + { + return; + } + + final IDocumentProvider documentProvider = getDocumentProvider(); + if (documentProvider instanceof SQLEditorNested.ObjectDocumentProvider) { + ((SQLEditorNested.ObjectDocumentProvider) documentProvider).sourceText = null; + } + if (force) { + try { + super.init(editorSite, getEditorInput()); + //setFocus(); + } catch (PartInitException e) { + log.error(e); + } + } + reloadSyntaxRules(); + } + + protected String getCompileCommandId() + { + return null; + } + + public boolean isDocumentLoaded() { + final IDocumentProvider documentProvider = getDocumentProvider(); + if (documentProvider instanceof SQLEditorNested.ObjectDocumentProvider) { + return ((SQLEditorNested.ObjectDocumentProvider) documentProvider).sourceLoaded; + } + return true; + } + + private class ObjectDocumentProvider extends BaseTextDocumentProvider { + + private String sourceText; + private boolean sourceLoaded; + + @Override + public boolean isReadOnly(Object element) { + return SQLEditorNested.this.isReadOnly(); + } + + @Override + public boolean isModifiable(Object element) { + return !SQLEditorNested.this.isReadOnly(); + } + + @Override + protected IAnnotationModel createAnnotationModel(Object element) throws CoreException { + //FIXME:AF: provide common way to retrieve IResource for remote object + IResource resource = DBeaverCore.getInstance().getProjectManager().getActiveProject(); + return new ResourceMarkerAnnotationModel(resource); + } + + @Override + protected IDocument createDocument(Object element) throws CoreException { + final Document document = new Document(); + + if (sourceText == null) { + sourceText = SQLUtils.generateCommentLine(getDataSource(), "Loading '" + getEditorInput().getName() + "' source..."); + document.set(sourceText); + + AbstractJob job = new AbstractJob("Load SQL source") { + { + setUser(true); + } + @Override + protected IStatus run(DBRProgressMonitor monitor) { + try { + sourceText = getSourceText(monitor); + if (sourceText == null) { + sourceText = SQLUtils.generateCommentLine(getDataSource(), "Empty source"); + } + return Status.OK_STATUS; + } catch (Exception e) { + sourceText = "/* ERROR WHILE READING SOURCE:\n\n" + e.getMessage() + "\n*/"; + return Status.CANCEL_STATUS; + } + } + }; + job.addJobChangeListener(new JobChangeAdapter() { + @Override + public void done(IJobChangeEvent event) { + DBeaverUI.asyncExec(new Runnable() { + @Override + public void run() { + try { + SQLEditorNested.this.init(getEditorSite(), getEditorInput()); + SQLEditorNested.this.reloadSyntaxRules(); + } catch (PartInitException e) { + log.error(e); + } + } + }); + super.done(event); + } + }); + job.schedule(); + } + // Set text + document.set(sourceText); + sourceLoaded = true; + + return document; + } + + @Override + protected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) throws CoreException { + setSourceText(RuntimeUtils.makeMonitor(monitor), document.get()); + } + } + + @Override + public DBCCompileLog getCompileLog() + { + return compileLog; + } + + @Override + public void setCompileInfo(String message, boolean error) + { + pageControl.setInfo(message); + } + + @Override + public void positionSource(int line, int position) + { + try { + final IRegion lineInfo = getTextViewer().getDocument().getLineInformation(line - 1); + final int offset = lineInfo.getOffset() + position - 1; + super.selectAndReveal(offset, 1); + //textEditor.setFocus(); + } catch (BadLocationException e) { + log.warn(e); + // do nothing + } + } + + @Override + public void showCompileLog() + { + editorSash.setMaximizedControl(null); + compileLog.layoutLog(); + } + + protected abstract String getSourceText(DBRProgressMonitor monitor) + throws DBException; + + protected abstract void setSourceText(DBRProgressMonitor monitor, String sourceText); + + protected void contributeEditorCommands(IContributionManager toolBarManager) + { + toolBarManager.add(ActionUtils.makeCommandContribution(getSite().getWorkbenchWindow(), CoreCommands.CMD_OPEN_FILE)); + toolBarManager.add(ActionUtils.makeCommandContribution(getSite().getWorkbenchWindow(), CoreCommands.CMD_SAVE_FILE)); + String compileCommandId = getCompileCommandId(); + if (compileCommandId != null) { + toolBarManager.add(new Separator()); + toolBarManager.add(ActionUtils.makeCommandContribution(getSite().getWorkbenchWindow(), compileCommandId)); + toolBarManager.add(new ViewLogAction()); + } + } + + @Override + public void doSaveAs() { + saveToExternalFile(); + } + + private class EditorPageControl extends ProgressPageControl { + + public EditorPageControl(Composite parent, int style) + { + super(parent, style); + } + + @Override + protected void fillCustomActions(IContributionManager contributionManager) { + contributeEditorCommands(contributionManager); + } + } + + public class ViewLogAction extends Action + { + public ViewLogAction() + { + super("View compile log", DBeaverIcons.getImageDescriptor(UIIcon.COMPILE_LOG)); //$NON-NLS-2$ + } + + @Override + public void run() + { + if (getTextViewer().getControl().isDisposed()) { + return; + } + if (editorSash.getMaximizedControl() == null) { + editorSash.setMaximizedControl(editorControl); + } else { + showCompileLog(); + } + } + + } + +} diff --git a/plugins/org.jkiss.dbeaver.debug.ui/META-INF/MANIFEST.MF b/plugins/org.jkiss.dbeaver.debug.ui/META-INF/MANIFEST.MF index e99278c10bd91a85764f555a8d65cfde4a8d775d..5cdd55a093ef093ef23eda8ca7991b86ca53bef5 100644 --- a/plugins/org.jkiss.dbeaver.debug.ui/META-INF/MANIFEST.MF +++ b/plugins/org.jkiss.dbeaver.debug.ui/META-INF/MANIFEST.MF @@ -14,4 +14,6 @@ Require-Bundle: org.eclipse.core.runtime, org.jkiss.dbeaver.core, org.jkiss.dbeaver.ui, org.jkiss.dbeaver.debug.core -Export-Package: org.jkiss.dbeaver.debug.ui +Export-Package: org.jkiss.dbeaver.debug.ui, + org.jkiss.dbeaver.debug.ui.actions, + org.jkiss.dbeaver.debug.ui.details diff --git a/plugins/org.jkiss.dbeaver.debug.ui/plugin.xml b/plugins/org.jkiss.dbeaver.debug.ui/plugin.xml index 982af502947e679f18a42caeb9e4a0b1e883a058..119027ddcb936c36425299c14cd4fea5f4be98b5 100644 --- a/plugins/org.jkiss.dbeaver.debug.ui/plugin.xml +++ b/plugins/org.jkiss.dbeaver.debug.ui/plugin.xml @@ -23,21 +23,21 @@ point="org.eclipse.core.runtime.adapters"> + class="org.jkiss.dbeaver.debug.ui.actions.DebugActionAdapterFactory"> + class="org.jkiss.dbeaver.debug.ui.actions.DebugActionAdapterFactory"> + class="org.jkiss.dbeaver.debug.ui.actions.DebugActionAdapterFactory"> diff --git a/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/internal/ui/actions/DebugActionAdapterFactory.java b/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/actions/DebugActionAdapterFactory.java similarity index 88% rename from plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/internal/ui/actions/DebugActionAdapterFactory.java rename to plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/actions/DebugActionAdapterFactory.java index 6084b1fd607836e9929eab0d560996f0146eebde..9a60857a1ce80ea6f05078645980eaf96ca784c4 100644 --- a/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/internal/ui/actions/DebugActionAdapterFactory.java +++ b/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/actions/DebugActionAdapterFactory.java @@ -1,9 +1,8 @@ -package org.jkiss.dbeaver.debug.internal.ui.actions; +package org.jkiss.dbeaver.debug.ui.actions; import org.eclipse.core.runtime.IAdapterFactory; import org.eclipse.debug.ui.actions.ILaunchable; import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget; -import org.jkiss.dbeaver.debug.ui.actions.ToggleProcedureBreakpointTarget; public class DebugActionAdapterFactory implements IAdapterFactory { diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.ui/plugin.xml b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.ui/plugin.xml index da00d84b0eaa965d741a5f68bb15fd2d4df71d03..155434acd78b8986abdd5cdc4288a1041dd01956 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.ui/plugin.xml +++ b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.ui/plugin.xml @@ -77,4 +77,31 @@ + + + + + + + + + + + + + +