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

#2758 External tools menu generation fix

上级 47db859a
......@@ -35,14 +35,14 @@ import org.jkiss.dbeaver.ui.actions.navigator.NavigatorActionExecuteTool;
import org.jkiss.dbeaver.ui.navigator.NavigatorUtils;
import org.jkiss.utils.CommonUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
public class DataSourceToolsContributor extends DataSourceMenuContributor
{
private static final boolean SHOW_GROUPS_AS_SUBMENU = false;
@Override
protected void fillContributionItems(List<IContributionItem> menuItems)
{
......@@ -72,12 +72,21 @@ public class DataSourceToolsContributor extends DataSourceMenuContributor
IWorkbenchPart activePart = workbenchWindow.getActivePage().getActivePart();
if (activePart != null) {
Map<ToolGroupDescriptor, IMenuManager> groupsMap = new HashMap<>();
Set<ToolGroupDescriptor> groupSet = new HashSet<>();
for (ToolDescriptor tool : tools) {
hasTools = true;
IMenuManager parentMenu = null;
if (tool.getGroup() != null) {
parentMenu = getGroupMenu(menuItems, groupsMap, tool.getGroup());
if (SHOW_GROUPS_AS_SUBMENU) {
parentMenu = getGroupMenu(menuItems, groupsMap, tool.getGroup());
} else {
if (!groupSet.contains(tool.getGroup())) {
groupSet.add(tool.getGroup());
menuItems.add(new Separator(tool.getGroup().getId()));
}
}
}
IAction action = ActionUtils.makeAction(
new NavigatorActionExecuteTool(workbenchWindow, tool),
activePart.getSite(),
......
......@@ -496,6 +496,7 @@
<extension point="org.jkiss.dbeaver.tools">
<tools>
<toolGroup id="org.jkiss.dbeaver.ext.db2.tools.maintenance" label="Statistics"/>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.DB2ToolShowError"
description="Display SQL Error Message"
......@@ -508,6 +509,7 @@
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2RunstatsTool"
description="Runstats"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2RunstatsTool"
group="org.jkiss.dbeaver.ext.db2.tools.maintenance"
label="%tool.org.jkiss.dbeaver.ext.db2.table.runstats.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
......@@ -516,6 +518,7 @@
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgTableTool"
description="Reorg table"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgTableTool"
group="org.jkiss.dbeaver.ext.db2.tools.maintenance"
label="%tool.org.jkiss.dbeaver.ext.db2.table.reorg.name"
singleton="true">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
......@@ -524,6 +527,7 @@
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgIndexTool"
description="Reorg index"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgIndexTool"
group="org.jkiss.dbeaver.ext.db2.tools.maintenance"
label="%tool.org.jkiss.dbeaver.ext.db2.table.reorgix.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
......@@ -532,6 +536,7 @@
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgCheckTableTool"
description="Reorg check table"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgCheckTableTool"
group="org.jkiss.dbeaver.ext.db2.tools.maintenance"
label="%tool.org.jkiss.dbeaver.ext.db2.table.reorgcheck.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
......@@ -540,6 +545,7 @@
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2TruncateTool"
description="Truncate table"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2Truncate"
group="org.jkiss.dbeaver.ext.db2.tools.maintenance"
label="%tool.org.jkiss.dbeaver.ext.db2.table.truncate.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
......
......@@ -323,6 +323,7 @@
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolAnalyse"
description="Analyse table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolAnalyse"
group="org.jkiss.dbeaver.ext.mysql.tools.maintenance"
label="Analyse"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
......@@ -331,6 +332,7 @@
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolCheck"
description="Check table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolCheck"
group="org.jkiss.dbeaver.ext.mysql.tools.maintenance"
label="Check"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
......@@ -339,6 +341,7 @@
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolOptimize"
description="Optimize table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolOptimize"
group="org.jkiss.dbeaver.ext.mysql.tools.maintenance"
label="Optimize"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
......@@ -347,6 +350,7 @@
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolRepair"
description="Repair table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolRepair"
group="org.jkiss.dbeaver.ext.mysql.tools.maintenance"
label="Repair"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
......@@ -355,6 +359,7 @@
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolTruncate"
description="Truncate table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolTruncate"
group="org.jkiss.dbeaver.ext.mysql.tools.maintenance"
label="Truncate"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
......
......@@ -426,7 +426,8 @@
<extension point="org.jkiss.dbeaver.tools">
<tools>
<toolGroup id="org.jkiss.dbeaver.ext.oracle.tools.maintenance" label="Statistics"/>
<toolGroup id="org.jkiss.dbeaver.ext.oracle.tools.statistics" label="Statistics"/>
<toolGroup id="org.jkiss.dbeaver.ext.oracle.tools.maintenance" label="Maintenance"/>
<tool
class="org.jkiss.dbeaver.ext.oracle.tools.OracleToolScript"
description="Execute script with native client"
......@@ -439,6 +440,7 @@
class="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolValidateStructure"
description="Validate Structure"
id="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolTruncate"
group="org.jkiss.dbeaver.ext.oracle.tools.statistics"
label="Validate Structure"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTable"/>
......@@ -447,6 +449,7 @@
class="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolGatherStatistics"
description="Gather statistics"
id="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolGatherStatistics"
group="org.jkiss.dbeaver.ext.oracle.tools.statistics"
label="Gather Statistics"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTable"/>
......@@ -457,6 +460,7 @@
class="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolTruncate"
description="Truncate table"
id="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolTruncate"
group="org.jkiss.dbeaver.ext.oracle.tools.maintenance"
label="Truncate"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTable"/>
......
......@@ -399,6 +399,7 @@
class="org.jkiss.dbeaver.ext.postgresql.tools.maintenance.PostgreToolAnalyze"
description="%tools.analyze.description"
id="org.jkiss.dbeaver.ext.postgresql.tools.maintenance.PostgreToolAnalyze"
group="org.jkiss.dbeaver.ext.postgresql.tools.maintenance"
label="%tools.analyze.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.postgresql.model.PostgreDatabase"/>
......@@ -408,6 +409,7 @@
class="org.jkiss.dbeaver.ext.postgresql.tools.maintenance.PostgreToolVacuum"
description="%tools.vacuum.description"
id="org.jkiss.dbeaver.ext.postgresql.tools.maintenance.PostgreToolVacuum"
group="org.jkiss.dbeaver.ext.postgresql.tools.maintenance"
label="%tools.vacuum.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.postgresql.model.PostgreDatabase"/>
......@@ -417,6 +419,7 @@
class="org.jkiss.dbeaver.ext.postgresql.tools.maintenance.PostgreToolTruncate"
description="%tools.truncate.description"
id="org.jkiss.dbeaver.ext.postgresql.tools.maintenance.PostgreToolTruncate"
group="org.jkiss.dbeaver.ext.postgresql.tools.maintenance"
label="%tools.truncate.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.postgresql.model.PostgreTableBase"/>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册