diff --git a/plugins/org.jkiss.dbeaver.core/plugin.xml b/plugins/org.jkiss.dbeaver.core/plugin.xml index 7168de009564cff373403e51fbb76de30979b283..39876c8bb3979295002826600b09dffdbd18cf2d 100644 --- a/plugins/org.jkiss.dbeaver.core/plugin.xml +++ b/plugins/org.jkiss.dbeaver.core/plugin.xml @@ -2802,6 +2802,7 @@ + diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreCommands.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreCommands.java index 9c5e5dbdb39e77879da81fadbbd53d876b68c39d..5b2247137c2a5550d3aa7ca12e5c1ba655ad9f3d 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreCommands.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreCommands.java @@ -22,6 +22,7 @@ package org.jkiss.dbeaver.core; public interface CoreCommands { String GROUP_TOOLS = "tools"; + String GROUP_TOOLS_END = "tools_end"; String GROUP_NAVIGATOR_ADDITIONS = "navigator_additions"; diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorAdapterFactory.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorAdapterFactory.java index 442be24a9a9cfc915223a27f8a110c789e14efda..7246bf674d62ba7e71a448a32af621e7495d1d50 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorAdapterFactory.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorAdapterFactory.java @@ -32,10 +32,7 @@ import org.jkiss.dbeaver.model.navigator.DBNDataSource; import org.jkiss.dbeaver.model.navigator.DBNNode; import org.jkiss.dbeaver.model.navigator.DBNResource; import org.jkiss.dbeaver.model.preferences.DBPPropertySource; -import org.jkiss.dbeaver.model.struct.DBSDataContainer; -import org.jkiss.dbeaver.model.struct.DBSDataManipulator; -import org.jkiss.dbeaver.model.struct.DBSObject; -import org.jkiss.dbeaver.model.struct.DBSWrapper; +import org.jkiss.dbeaver.model.struct.*; import org.jkiss.dbeaver.runtime.properties.PropertyCollector; import org.jkiss.dbeaver.ui.DBeaverIcons; import org.jkiss.dbeaver.ui.properties.PropertySourceDelegate; @@ -50,6 +47,7 @@ public class NavigatorAdapterFactory implements IAdapterFactory DBPQualifiedObject.class, DBPObject.class, DBSObject.class, + DBSEntity.class, DBSDataContainer.class, DBSDataManipulator.class, DBPDataSourceContainer.class, diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorUtils.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorUtils.java index 01f6d25af275f26d475969a71a8b6cc4703966ab..f4d99991552967581cd22e7751214d30a2504d61 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorUtils.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorUtils.java @@ -231,6 +231,7 @@ public class NavigatorUtils { } manager.add(new GroupMarker(CoreCommands.GROUP_TOOLS)); + manager.add(new GroupMarker(CoreCommands.GROUP_TOOLS_END)); if (menuListener != null) { menuListener.menuAboutToShow(manager); diff --git a/plugins/org.jkiss.dbeaver.ext.erd/plugin.xml b/plugins/org.jkiss.dbeaver.ext.erd/plugin.xml index 4921e3adafe878f7dfc0dd88461d4150976396ea..c4f8a39af19fc5431b256f5df76b87013bd6f742 100644 --- a/plugins/org.jkiss.dbeaver.ext.erd/plugin.xml +++ b/plugins/org.jkiss.dbeaver.ext.erd/plugin.xml @@ -318,6 +318,19 @@ + + + + + + + + + + + + + diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DiagramCreateWizard.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DiagramCreateWizard.java index 93470faae379bcfefb45910b7503c1d70ebc1126..c427a710e03e105182ad12d469148175b627aaad 100644 --- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DiagramCreateWizard.java +++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DiagramCreateWizard.java @@ -52,6 +52,7 @@ public class DiagramCreateWizard extends Wizard implements INewWizard { private EntityDiagram diagram = new EntityDiagram(null, ""); private DiagramCreateWizardPage pageContent; private String errorMessage; + private IStructuredSelection entitySelection; public DiagramCreateWizard() { } @@ -78,6 +79,13 @@ public class DiagramCreateWizard extends Wizard implements INewWizard { errorMessage = e.getMessage(); } } + + // Check for entity selection + if (selection != null && !selection.isEmpty()) { + if (Platform.getAdapterManager().getAdapter(selection.getFirstElement(), DBSEntity.class) != null) { + entitySelection = selection; + } + } } this.folder = diagramFolder; } @@ -85,7 +93,7 @@ public class DiagramCreateWizard extends Wizard implements INewWizard { @Override public void addPages() { super.addPages(); - pageContent = new DiagramCreateWizardPage(diagram); + pageContent = new DiagramCreateWizardPage(diagram, entitySelection); addPage(pageContent); if (getContainer() != null) { //WizardDialog call diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DiagramCreateWizardPage.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DiagramCreateWizardPage.java index 0f5db59b7274ce57c2ba9dce14191096f2fc9724..ba7cbeff3376e8d0be0aa4c1634c974025cdd3b8 100644 --- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DiagramCreateWizardPage.java +++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DiagramCreateWizardPage.java @@ -19,6 +19,7 @@ package org.jkiss.dbeaver.ext.erd.navigator; import org.eclipse.jface.viewers.CheckboxTreeViewer; import org.eclipse.jface.viewers.ICheckStateProvider; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; @@ -50,11 +51,13 @@ class DiagramCreateWizardPage extends WizardPage { private EntityDiagram diagram; private DatabaseNavigatorTree contentTree; + private IStructuredSelection entitySelection; - protected DiagramCreateWizardPage(EntityDiagram diagram) + protected DiagramCreateWizardPage(EntityDiagram diagram, IStructuredSelection entitySelection) { super(ERDMessages.wizard_page_diagram_create_name); this.diagram = diagram; + this.entitySelection = entitySelection; setTitle(ERDMessages.wizard_page_diagram_create_title); setDescription(ERDMessages.wizard_page_diagram_create_description); @@ -63,10 +66,16 @@ class DiagramCreateWizardPage extends WizardPage { @Override public boolean isPageComplete() { + boolean hasName = !CommonUtils.isEmpty(diagram.getName()); + if (!hasName) { + setErrorMessage("Set diagram name"); + } else { + setErrorMessage(null); + } if (getErrorMessage() != null) { return false; } - return !CommonUtils.isEmpty(diagram.getName()); + return hasName; } @Override @@ -122,6 +131,11 @@ class DiagramCreateWizardPage extends WizardPage { } }); + if (entitySelection != null) { + viewer.setSelection(entitySelection, true); + viewer.setCheckedElements(entitySelection.toArray()); + } + setControl(placeholder); }