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);
}