提交 eeb418cb 编写于 作者: J jurgen

Tools registry

Former-commit-id: 54d29bc2
上级 495c24cc
......@@ -12,6 +12,7 @@ Export-Package: org.jkiss.dbeaver,
org.jkiss.dbeaver.registry.editor,
org.jkiss.dbeaver.registry.encode,
org.jkiss.dbeaver.registry.formatter,
org.jkiss.dbeaver.registry.tools,
org.jkiss.dbeaver.registry.transfer,
org.jkiss.dbeaver.registry.updater,
org.jkiss.dbeaver.runtime,
......
......@@ -34,6 +34,7 @@
<extension-point id="org.jkiss.dbeaver.resources" name="Resources" schema="schema/org.jkiss.dbeaver.resources.exsd"/>
<extension-point id="org.jkiss.dbeaver.search" name="Search providers" schema="schema/org.jkiss.dbeaver.search.exsd"/>
<extension-point id="org.jkiss.dbeaver.resultset.presentation" name="Result set presentations" schema="schema/org.jkiss.dbeaver.resultset.presentation.exsd"/>
<extension-point id="org.jkiss.dbeaver.tools" name="Tools" schema="schema/org.jkiss.dbeaver.tools.exsd"/>
<extension point="org.eclipse.core.contenttype.contentTypes">
<content-type
......
......@@ -18,27 +18,27 @@
package org.jkiss.dbeaver.registry;
import org.jkiss.dbeaver.Log;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.jface.text.templates.TemplateContextType;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBPDataSourceProvider;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.impl.AbstractDescriptor;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.navigator.meta.*;
import org.jkiss.dbeaver.ui.navigator.NavigatorUtils;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
import org.jkiss.dbeaver.model.navigator.meta.*;
import org.jkiss.dbeaver.ui.UIIcon;
import org.jkiss.utils.ArrayUtils;
import org.jkiss.utils.CommonUtils;
import org.jkiss.utils.SecurityUtils;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* DataSourceProviderDescriptor
......@@ -63,8 +63,6 @@ public class DataSourceProviderDescriptor extends AbstractDescriptor
private final List<DBPPropertyDescriptor> driverProperties = new ArrayList<DBPPropertyDescriptor>();
private final List<DriverDescriptor> drivers = new ArrayList<DriverDescriptor>();
private final List<DataSourceViewDescriptor> views = new ArrayList<DataSourceViewDescriptor>();
private final Map<String, ToolGroupDescriptor> toolGroups = new LinkedHashMap<String, ToolGroupDescriptor>();
private final List<ToolDescriptor> tools = new ArrayList<ToolDescriptor>();
private final String parentId;
public DataSourceProviderDescriptor(DataSourceProviderRegistry registry, IConfigurationElement config)
......@@ -122,20 +120,6 @@ public class DataSourceProviderDescriptor extends AbstractDescriptor
}
}
}
// Load tools
{
for (IConfigurationElement toolsElement : config.getChildren(RegistryConstants.TAG_TOOLS)) {
for (IConfigurationElement toolElement : toolsElement.getChildren(RegistryConstants.TAG_TOOL_GROUP)) {
ToolGroupDescriptor group = new ToolGroupDescriptor(this, toolElement);
this.toolGroups.put(group.getId(), group);
}
for (IConfigurationElement toolElement : toolsElement.getChildren(RegistryConstants.TAG_TOOL)) {
this.tools.add(
new ToolDescriptor(this, toolElement));
}
}
}
}
public void dispose()
......@@ -144,8 +128,6 @@ public class DataSourceProviderDescriptor extends AbstractDescriptor
driver.dispose();
}
drivers.clear();
tools.clear();
toolGroups.clear();
instance = null;
}
......@@ -303,32 +285,6 @@ public class DataSourceProviderDescriptor extends AbstractDescriptor
return null;
}
ToolGroupDescriptor getToolGroup(String id) {
return toolGroups.get(id);
}
public List<ToolDescriptor> getTools(IStructuredSelection selection)
{
List<DBSObject> objects = NavigatorUtils.getSelectedObjects(selection);
List<ToolDescriptor> result = new ArrayList<ToolDescriptor>();
for (ToolDescriptor descriptor : tools) {
if (descriptor.isSingleton() && objects.size() > 1) {
continue;
}
boolean applies = true;
for (DBSObject object : objects) {
if (!descriptor.appliesTo(object)) {
applies = false;
break;
}
}
if (applies) {
result.add(descriptor);
}
}
return result;
}
private DBXTreeNode loadTreeInfo(IConfigurationElement config)
{
DBXTreeItem treeRoot = new DBXTreeItem(
......
......@@ -106,9 +106,6 @@ public class RegistryConstants {
static final String TAG_DRIVER_PROPERTIES = "driver-properties"; //$NON-NLS-1$
static final String TAG_VIEWS = "views"; //$NON-NLS-1$
static final String TAG_VIEW = "view"; //$NON-NLS-1$
static final String TAG_TOOLS = "tools"; //$NON-NLS-1$
static final String TAG_TOOL = "tool"; //$NON-NLS-1$
static final String TAG_TOOL_GROUP = "toolGroup"; //$NON-NLS-1$
public static final String ATTR_REF = "ref"; //$NON-NLS-1$
public static final String ATTR_VISIBLE_IF = "visibleIf"; //$NON-NLS-1$
......
......@@ -16,13 +16,15 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package org.jkiss.dbeaver.registry;
package org.jkiss.dbeaver.registry.tools;
import org.eclipse.core.runtime.IConfigurationElement;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.DBPObject;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.registry.AbstractContextDescriptor;
import org.jkiss.dbeaver.registry.RegistryConstants;
import org.jkiss.dbeaver.tools.IExternalTool;
import org.jkiss.utils.CommonUtils;
......@@ -38,8 +40,7 @@ public class ToolDescriptor extends AbstractContextDescriptor {
private final boolean singleton;
private final ToolGroupDescriptor group;
public ToolDescriptor(
DataSourceProviderDescriptor provider, IConfigurationElement config)
public ToolDescriptor(IConfigurationElement config)
{
super(config);
this.id = config.getAttribute(RegistryConstants.ATTR_ID);
......@@ -49,7 +50,7 @@ public class ToolDescriptor extends AbstractContextDescriptor {
this.icon = iconToImage(config.getAttribute(RegistryConstants.ATTR_ICON));
this.singleton = CommonUtils.toBoolean(config.getAttribute(RegistryConstants.ATTR_SINGLETON));
String groupId = config.getAttribute(RegistryConstants.ATTR_GROUP);
this.group = CommonUtils.isEmpty(groupId) ? null : provider.getToolGroup(groupId);
this.group = CommonUtils.isEmpty(groupId) ? null : ToolsRegistry.getInstance().getToolGroup(groupId);
}
public String getId() {
......
......@@ -16,12 +16,14 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package org.jkiss.dbeaver.registry;
package org.jkiss.dbeaver.registry.tools;
import org.eclipse.core.runtime.IConfigurationElement;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.DBPObject;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.registry.AbstractContextDescriptor;
import org.jkiss.dbeaver.registry.RegistryConstants;
import org.jkiss.utils.CommonUtils;
/**
......@@ -34,8 +36,7 @@ public class ToolGroupDescriptor extends AbstractContextDescriptor {
private final DBPImage icon;
private final ToolGroupDescriptor parent;
public ToolGroupDescriptor(
DataSourceProviderDescriptor provider, IConfigurationElement config)
public ToolGroupDescriptor(IConfigurationElement config)
{
super(config);
this.id = config.getAttribute(RegistryConstants.ATTR_ID);
......@@ -43,7 +44,7 @@ public class ToolGroupDescriptor extends AbstractContextDescriptor {
this.description = config.getAttribute(RegistryConstants.ATTR_DESCRIPTION);
this.icon = iconToImage(config.getAttribute(RegistryConstants.ATTR_ICON));
String parentId = config.getAttribute(RegistryConstants.ATTR_PARENT);
this.parent = CommonUtils.isEmpty(parentId) ? null : provider.getToolGroup(parentId);
this.parent = CommonUtils.isEmpty(parentId) ? null : ToolsRegistry.getInstance().getToolGroup(parentId);
}
public String getId() {
......
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2015 Serge Rieder (serge@jkiss.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package org.jkiss.dbeaver.registry.tools;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.ui.navigator.NavigatorUtils;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class ToolsRegistry
{
public static final String EXTENSION_ID = "org.jkiss.dbeaver.tools"; //$NON-NLS-1$
static final String TAG_TOOLS = "tools"; //$NON-NLS-1$
static final String TAG_TOOL = "tool"; //$NON-NLS-1$
static final String TAG_TOOL_GROUP = "toolGroup"; //$NON-NLS-1$
private static ToolsRegistry instance = null;
public synchronized static ToolsRegistry getInstance()
{
if (instance == null) {
instance = new ToolsRegistry();
instance.loadExtensions(Platform.getExtensionRegistry());
}
return instance;
}
private final Map<String, ToolGroupDescriptor> toolGroups = new LinkedHashMap<String, ToolGroupDescriptor>();
private final List<ToolDescriptor> tools = new ArrayList<ToolDescriptor>();
private ToolsRegistry()
{
}
private void loadExtensions(IExtensionRegistry registry)
{
IConfigurationElement[] extConfigs = registry.getConfigurationElementsFor(EXTENSION_ID);
for (IConfigurationElement toolsElement : extConfigs) {
// Load tools
{
for (IConfigurationElement toolElement : toolsElement.getChildren(TAG_TOOL_GROUP)) {
ToolGroupDescriptor group = new ToolGroupDescriptor(toolElement);
this.toolGroups.put(group.getId(), group);
}
for (IConfigurationElement toolElement : toolsElement.getChildren(TAG_TOOL)) {
this.tools.add(
new ToolDescriptor(toolElement));
}
}
}
}
public void dispose()
{
tools.clear();
toolGroups.clear();
}
ToolGroupDescriptor getToolGroup(String id) {
return toolGroups.get(id);
}
public List<ToolDescriptor> getTools(IStructuredSelection selection)
{
List<DBSObject> objects = NavigatorUtils.getSelectedObjects(selection);
List<ToolDescriptor> result = new ArrayList<ToolDescriptor>();
for (ToolDescriptor descriptor : tools) {
if (descriptor.isSingleton() && objects.size() > 1) {
continue;
}
boolean applies = true;
for (DBSObject object : objects) {
if (!descriptor.appliesTo(object)) {
applies = false;
break;
}
}
if (applies) {
result.add(descriptor);
}
}
return result;
}
}
......@@ -28,14 +28,14 @@ import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.registry.DriverDescriptor;
import org.jkiss.dbeaver.registry.ToolDescriptor;
import org.jkiss.dbeaver.registry.ToolGroupDescriptor;
import org.jkiss.dbeaver.registry.tools.ToolDescriptor;
import org.jkiss.dbeaver.registry.tools.ToolGroupDescriptor;
import org.jkiss.dbeaver.registry.tools.ToolsRegistry;
import org.jkiss.dbeaver.ui.ActionUtils;
import org.jkiss.dbeaver.ui.DBeaverIcons;
import org.jkiss.dbeaver.ui.navigator.NavigatorUtils;
import org.jkiss.dbeaver.ui.actions.common.EmptyListAction;
import org.jkiss.dbeaver.ui.actions.navigator.NavigatorActionExecuteTool;
import org.jkiss.dbeaver.ui.navigator.NavigatorUtils;
import org.jkiss.utils.CommonUtils;
import java.util.HashMap;
......@@ -57,9 +57,8 @@ public class DataSourceToolsContributor extends DataSourceMenuContributor
}
DBSObject selectedObject = NavigatorUtils.getSelectedObject((IStructuredSelection) selection);
if (selectedObject != null && selectedObject.getDataSource() != null) {
DriverDescriptor driver = (DriverDescriptor) selectedObject.getDataSource().getContainer().getDriver();
List<ToolDescriptor> tools = driver.getProviderDescriptor().getTools((IStructuredSelection) selection);
if (selectedObject != null) {
List<ToolDescriptor> tools = ToolsRegistry.getInstance().getTools((IStructuredSelection) selection);
fillToolsMenu(menuItems, tools, selection);
}
}
......
......@@ -26,7 +26,7 @@ import org.eclipse.ui.IWorkbenchWindow;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.registry.ToolDescriptor;
import org.jkiss.dbeaver.registry.tools.ToolDescriptor;
import org.jkiss.dbeaver.tools.IExternalTool;
import org.jkiss.dbeaver.ui.navigator.NavigatorUtils;
import org.jkiss.dbeaver.ui.UIUtils;
......
......@@ -24,11 +24,11 @@ import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.rdb.DBSTable;
import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.jkiss.dbeaver.registry.tools.ToolsRegistry;
import org.jkiss.dbeaver.runtime.RuntimeUtils;
import org.jkiss.dbeaver.ui.ActionUtils;
import org.jkiss.dbeaver.ui.navigator.NavigatorUtils;
import org.jkiss.dbeaver.ui.controls.resultset.IResultSetSelection;
import org.jkiss.dbeaver.ui.navigator.NavigatorUtils;
import org.jkiss.utils.CommonUtils;
/**
......@@ -36,8 +36,6 @@ import org.jkiss.utils.CommonUtils;
*/
public class SQLUtilsPropertyTester extends PropertyTester
{
//static final Log log = Log.getLog(SQLEditorPropertyTester.class);
public static final String NAMESPACE = "org.jkiss.dbeaver.ui.editors.sql.util";
public static final String PROP_CAN_GENERATE = "canGenerate";
public static final String PROP_HAS_TOOLS = "hasTools";
......@@ -71,10 +69,7 @@ public class SQLUtilsPropertyTester extends PropertyTester
}
} else if (property.equals(PROP_HAS_TOOLS)) {
DBSObject object = NavigatorUtils.getSelectedObject(structuredSelection);
if (object != null && object.getDataSource() != null) {
DataSourceDescriptor container = (DataSourceDescriptor)object.getDataSource().getContainer();
return !CommonUtils.isEmpty(container.getDriver().getProviderDescriptor().getTools(structuredSelection));
}
return object != null && !CommonUtils.isEmpty(ToolsRegistry.getInstance().getTools(structuredSelection));
}
return false;
}
......
......@@ -389,57 +389,6 @@
</view>
</views>
<tools>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.DB2ToolShowError"
description="Display SQL Error Message"
id="org.jkiss.dbeaver.ext.db2.tools.DB2ToolShowError"
label="%tool.org.jkiss.dbeaver.ext.db2.showerror.name"
singleton="true">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2DataSource"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2RunstatsTool"
description="Runstats"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2RunstatsTool"
label="%tool.org.jkiss.dbeaver.ext.db2.table.runstats.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgTableTool"
description="Reorg table"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgTableTool"
label="%tool.org.jkiss.dbeaver.ext.db2.table.reorg.name"
singleton="true">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgIndexTool"
description="Reorg index"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgIndexTool"
label="%tool.org.jkiss.dbeaver.ext.db2.table.reorgix.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgCheckTableTool"
description="Reorg check table"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgCheckTableTool"
label="%tool.org.jkiss.dbeaver.ext.db2.table.reorgcheck.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2TruncateTool"
description="Truncate table"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2Truncate"
label="%tool.org.jkiss.dbeaver.ext.db2.table.truncate.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
</tool>
</tools>
</datasource>
</extension>
......@@ -516,6 +465,60 @@
</provider>
</extension>
<extension point="org.jkiss.dbeaver.tools">
<tools>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.DB2ToolShowError"
description="Display SQL Error Message"
id="org.jkiss.dbeaver.ext.db2.tools.DB2ToolShowError"
label="%tool.org.jkiss.dbeaver.ext.db2.showerror.name"
singleton="true">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2DataSource"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2RunstatsTool"
description="Runstats"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2RunstatsTool"
label="%tool.org.jkiss.dbeaver.ext.db2.table.runstats.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgTableTool"
description="Reorg table"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgTableTool"
label="%tool.org.jkiss.dbeaver.ext.db2.table.reorg.name"
singleton="true">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgIndexTool"
description="Reorg index"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgIndexTool"
label="%tool.org.jkiss.dbeaver.ext.db2.table.reorgix.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgCheckTableTool"
description="Reorg check table"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2ReorgCheckTableTool"
label="%tool.org.jkiss.dbeaver.ext.db2.table.reorgcheck.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2TruncateTool"
description="Truncate table"
id="org.jkiss.dbeaver.ext.db2.tools.maintenance.DB2Truncate"
label="%tool.org.jkiss.dbeaver.ext.db2.table.truncate.name"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.db2.model.DB2Table"/>
</tool>
</tools>
</extension>
<extension point="org.eclipse.ui.editors">
<editor
name="Application Manager"
......
......@@ -20,8 +20,7 @@
<plugin>
<extension
point="org.jkiss.dbeaver.dataSourceProvider">
<extension point="org.jkiss.dbeaver.dataSourceProvider">
<datasource
class="org.jkiss.dbeaver.ext.mysql.MySQLDataSourceProvider"
description="MySQL connector"
......@@ -174,78 +173,6 @@
class="org.jkiss.dbeaver.ext.mysql.views.MySQLConnectionPage">
</view>
</views>
<tools>
<toolGroup
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance"
label="Table Maintenance"
icon="#tools"/>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolExport"
description="Export database"
id="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolExport"
label="Export database"
icon="#export"
singleton="true">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolImport"
description="Import database"
id="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolImport"
label="Import database"
icon="#import"
singleton="true">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolScript"
description="Execute script with native client"
id="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolScript"
label="Execute script"
singleton="true">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolAnalyse"
description="Analyse table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolAnalyse"
label="Analyse"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolCheck"
description="Check table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolCheck"
label="Check"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolOptimize"
description="Optimize table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolOptimize"
label="Optimize"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolRepair"
description="Repair table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolRepair"
label="Repair"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolTruncate"
description="Truncate table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolTruncate"
label="Truncate"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
</tool>
</tools>
</datasource>
</extension>
......@@ -346,4 +273,79 @@
</editor>
</extension>
<extension point="org.jkiss.dbeaver.tools">
<tools>
<toolGroup
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance"
label="Table Maintenance"
icon="#tools"/>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolExport"
description="Export database"
id="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolExport"
label="Export database"
icon="#export"
singleton="true">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolImport"
description="Import database"
id="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolImport"
label="Import database"
icon="#import"
singleton="true">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolScript"
description="Execute script with native client"
id="org.jkiss.dbeaver.ext.mysql.tools.MySQLToolScript"
label="Execute script"
singleton="true">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolAnalyse"
description="Analyse table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolAnalyse"
label="Analyse"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolCheck"
description="Check table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolCheck"
label="Check"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolOptimize"
description="Optimize table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolOptimize"
label="Optimize"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolRepair"
description="Repair table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolRepair"
label="Repair"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolTruncate"
description="Truncate table(s)"
id="org.jkiss.dbeaver.ext.mysql.tools.maintenance.MySQLToolTruncate"
label="Truncate"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLTable"/>
</tool>
</tools>
</extension>
</plugin>
......@@ -308,43 +308,6 @@
class="org.jkiss.dbeaver.ext.oracle.views.OracleConnectionPage">
</view>
</views>
<tools>
<toolGroup id="org.jkiss.dbeaver.ext.oracle.tools.maintenance" label="Statistics"/>
<tool
class="org.jkiss.dbeaver.ext.oracle.tools.OracleToolScript"
description="Execute script with native client"
id="org.jkiss.dbeaver.ext.oracle.tools.OracleToolScript"
label="Execute in SQL*Plus">
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleDataSource"/>
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleSchema"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolValidateStructure"
description="Validate Structure"
id="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolTruncate"
label="Validate Structure"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTable"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolGatherStatistics"
description="Gather statistics"
id="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolGatherStatistics"
label="Gather Statistics"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTable"/>
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTableIndex"/>
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleSchema"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolTruncate"
description="Truncate table"
id="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolTruncate"
label="Truncate"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTable"/>
</tool>
</tools>
<templates>
<resolver type="orauser" class="org.jkiss.dbeaver.ext.oracle.model.resolvers.OracleUserResolver" description="Current Oracle user"/>
</templates>
......@@ -432,6 +395,46 @@
</provider>
</extension>
<extension point="org.jkiss.dbeaver.tools">
<tools>
<toolGroup id="org.jkiss.dbeaver.ext.oracle.tools.maintenance" label="Statistics"/>
<tool
class="org.jkiss.dbeaver.ext.oracle.tools.OracleToolScript"
description="Execute script with native client"
id="org.jkiss.dbeaver.ext.oracle.tools.OracleToolScript"
label="Execute in SQL*Plus">
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleDataSource"/>
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleSchema"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolValidateStructure"
description="Validate Structure"
id="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolTruncate"
label="Validate Structure"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTable"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolGatherStatistics"
description="Gather statistics"
id="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolGatherStatistics"
label="Gather Statistics"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTable"/>
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTableIndex"/>
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleSchema"/>
</tool>
<tool
class="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolTruncate"
description="Truncate table"
id="org.jkiss.dbeaver.ext.oracle.tools.maintenance.OracleToolTruncate"
label="Truncate"
singleton="false">
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTable"/>
</tool>
</tools>
</extension>
<extension point="org.eclipse.ui.editors">
<editor
name="Session Manager"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册