Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
24d1ead3
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
24d1ead3
编写于
12月 19, 2019
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#6972 MySQL: export tasks create from scratch. Script execute model.
Former-commit-id:
7866814a
上级
99d501f2
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
144 addition
and
14 deletion
+144
-14
plugins/org.jkiss.dbeaver.ext.mysql.ui/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLExportWizardPageObjects.java
...dbeaver/ext/mysql/tools/MySQLExportWizardPageObjects.java
+15
-3
plugins/org.jkiss.dbeaver.ext.mysql.ui/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLTaskConfigurator.java
.../jkiss/dbeaver/ext/mysql/tools/MySQLTaskConfigurator.java
+4
-0
plugins/org.jkiss.dbeaver.ext.mysql/plugin.xml
plugins/org.jkiss.dbeaver.ext.mysql/plugin.xml
+3
-1
plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLDatabaseExportHandler.java
...s/dbeaver/ext/mysql/tasks/MySQLDatabaseExportHandler.java
+5
-0
plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLScriptExecuteHandler.java
...ss/dbeaver/ext/mysql/tasks/MySQLScriptExecuteHandler.java
+78
-0
plugins/org.jkiss.dbeaver.tasks.native.ui/src/org/jkiss/dbeaver/tasks/ui/nativetool/AbstractScriptExecuteWizard.java
...aver/tasks/ui/nativetool/AbstractScriptExecuteWizard.java
+3
-6
plugins/org.jkiss.dbeaver.tasks.native.ui/src/org/jkiss/dbeaver/tasks/ui/nativetool/AbstractToolWizardPage.java
...s/dbeaver/tasks/ui/nativetool/AbstractToolWizardPage.java
+2
-3
plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractNativeToolHandler.java
...s/dbeaver/tasks/nativetool/AbstractNativeToolHandler.java
+10
-1
plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractScriptExecuteSettings.java
...eaver/tasks/nativetool/AbstractScriptExecuteSettings.java
+24
-0
未找到文件。
plugins/org.jkiss.dbeaver.ext.mysql.ui/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLExportWizardPageObjects.java
浏览文件 @
24d1ead3
...
...
@@ -41,8 +41,8 @@ import org.jkiss.dbeaver.ui.DBeaverIcons;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.controls.CustomSashForm
;
import
java.util.*
;
import
java.util.List
;
import
java.util.*
;
class
MySQLExportWizardPageObjects
extends
MySQLWizardPageSettings
<
MySQLExportWizard
>
...
...
@@ -53,6 +53,7 @@ class MySQLExportWizardPageObjects extends MySQLWizardPageSettings<MySQLExportWi
private
Map
<
MySQLCatalog
,
Set
<
MySQLTableBase
>>
checkedObjects
=
new
HashMap
<>();
private
MySQLCatalog
curCatalog
;
private
Button
exportViewsCheck
;
protected
MySQLExportWizardPageObjects
(
MySQLExportWizard
wizard
)
{
...
...
@@ -104,7 +105,6 @@ class MySQLExportWizardPageObjects extends MySQLWizardPageSettings<MySQLExportWi
createCheckButtons
(
buttonsPanel
,
catalogTable
);
}
final
Button
exportViewsCheck
;
{
Composite
tablesPanel
=
UIUtils
.
createComposite
(
sash
,
1
);
tablesPanel
.
setLayoutData
(
new
GridData
(
GridData
.
FILL_BOTH
));
...
...
@@ -134,6 +134,19 @@ class MySQLExportWizardPageObjects extends MySQLWizardPageSettings<MySQLExportWi
createCheckButtons
(
buttonsPanel
,
tablesTable
);
}
loadSettings
();
setControl
(
composite
);
}
@Override
public
void
activatePage
()
{
loadSettings
();
}
private
void
loadSettings
()
{
checkedObjects
.
clear
();
catalogTable
.
removeAll
();
MySQLDataSource
dataSource
=
null
;
Set
<
MySQLCatalog
>
activeCatalogs
=
new
LinkedHashSet
<>();
for
(
DBSObject
object
:
wizard
.
getDatabaseObjects
())
{
...
...
@@ -176,7 +189,6 @@ class MySQLExportWizardPageObjects extends MySQLWizardPageSettings<MySQLExportWi
}
}
updateState
();
setControl
(
composite
);
}
private
void
updateCheckedTables
()
{
...
...
plugins/org.jkiss.dbeaver.ext.mysql.ui/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLTaskConfigurator.java
浏览文件 @
24d1ead3
...
...
@@ -109,6 +109,10 @@ public class MySQLTaskConfigurator implements DBTTaskConfigurator {
protected
void
onSelectionChange
(
Object
element
)
{
selectedCatalog
=
element
instanceof
DBNDatabaseItem
&&
((
DBNDatabaseItem
)
element
).
getObject
()
instanceof
MySQLCatalog
?
(
MySQLCatalog
)
((
DBNDatabaseItem
)
element
).
getObject
()
:
null
;
ieWizard
.
getDatabaseObjects
().
clear
();
if
(
selectedCatalog
!=
null
)
{
ieWizard
.
getDatabaseObjects
().
add
(
selectedCatalog
);
}
updateHomeSelector
();
propertyChangeListener
.
run
();
}
...
...
plugins/org.jkiss.dbeaver.ext.mysql/plugin.xml
浏览文件 @
24d1ead3
...
...
@@ -351,12 +351,14 @@
<objectType
name=
"org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog"
/>
<objectType
name=
"org.jkiss.dbeaver.ext.mysql.model.MySQLTableBase"
/>
</task>
<!--
<task id="mysqlDatabaseRestore" name="Database import" description="Database import task" icon="platform:/plugin/org.jkiss.dbeaver.ui/icons/file/import.png" type="mysql" handler="org.jkiss.dbeaver.ext.mysql.tasks.DatabaseImportHandler">
<objectType name="org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog"/>
</task>
<task
id=
"mysqlScriptExecute"
name=
"SQL script"
description=
"SQL script execute"
icon=
"platform:/plugin/org.jkiss.dbeaver.ui/icons/sql/sql_exec.png"
type=
"mysql"
handler=
"org.jkiss.dbeaver.ext.mysql.tasks.ScriptExecuteHandler"
>
<task id="mysqlScriptExecute" name="SQL script" description="SQL script execute" icon="platform:/plugin/org.jkiss.dbeaver.ui/icons/sql/sql_exec.png" type="mysql" handler="org.jkiss.dbeaver.ext.mysql.tasks.
MySQL
ScriptExecuteHandler">
<objectType name="org.jkiss.dbeaver.model.struct.DBSDataManipulator"/>
</task>
-->
</extension>
</plugin>
plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLDatabaseExportHandler.java
浏览文件 @
24d1ead3
...
...
@@ -113,6 +113,11 @@ public class MySQLDatabaseExportHandler extends MySQLNativeToolHandler<MySQLExpo
return
true
;
}
@Override
protected
boolean
isLogInputStream
()
{
return
false
;
}
@Override
protected
void
startProcessHandler
(
DBRProgressMonitor
monitor
,
DBTTask
task
,
MySQLExportSettings
settings
,
final
MySQLDatabaseExportInfo
arg
,
ProcessBuilder
processBuilder
,
Process
process
,
Log
log
)
{
super
.
startProcessHandler
(
monitor
,
task
,
settings
,
arg
,
processBuilder
,
process
,
log
);
...
...
plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLScriptExecuteHandler.java
0 → 100644
浏览文件 @
24d1ead3
package
org.jkiss.dbeaver.ext.mysql.tasks
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.ext.mysql.MySQLConstants
;
import
org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableContext
;
import
org.jkiss.dbeaver.model.task.DBTTask
;
import
org.jkiss.dbeaver.registry.task.TaskPreferenceStore
;
import
org.jkiss.dbeaver.utils.RuntimeUtils
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.Collection
;
import
java.util.List
;
public
class
MySQLScriptExecuteHandler
extends
MySQLNativeToolHandler
<
MySQLScriptExecuteSettings
,
MySQLCatalog
,
MySQLCatalog
>
{
@Override
public
Collection
<
MySQLCatalog
>
getRunInfo
(
MySQLScriptExecuteSettings
settings
)
{
return
settings
.
getDatabaseObjects
();
}
@Override
protected
MySQLScriptExecuteSettings
createTaskSettings
(
DBRRunnableContext
context
,
DBTTask
task
)
{
MySQLScriptExecuteSettings
settings
=
new
MySQLScriptExecuteSettings
();
boolean
isImport
=
task
.
getType
().
getId
().
equals
(
MySQLTasks
.
TASK_DATABASE_RESTORE
);
settings
.
setImport
(
isImport
);
settings
.
loadSettings
(
context
,
new
TaskPreferenceStore
(
task
));
return
settings
;
}
@Override
protected
boolean
validateTaskParameters
(
DBTTask
task
,
MySQLScriptExecuteSettings
settings
,
Log
log
)
{
return
true
;
}
@Override
protected
List
<
String
>
getCommandLine
(
MySQLScriptExecuteSettings
settings
,
MySQLCatalog
arg
)
throws
IOException
{
List
<
String
>
cmd
=
getMySQLToolCommandLine
(
this
,
settings
,
arg
);
cmd
.
add
(
arg
.
getName
());
return
cmd
;
}
@Override
public
void
fillProcessParameters
(
MySQLScriptExecuteSettings
settings
,
MySQLCatalog
arg
,
List
<
String
>
cmd
)
throws
IOException
{
String
dumpPath
=
RuntimeUtils
.
getNativeClientBinary
(
settings
.
getClientHome
(),
MySQLConstants
.
BIN_FOLDER
,
"mysql"
).
getAbsolutePath
();
//$NON-NLS-1$
cmd
.
add
(
dumpPath
);
if
(
settings
.
getLogLevel
()
==
MySQLScriptExecuteSettings
.
LogLevel
.
Debug
)
{
cmd
.
add
(
"--debug-info"
);
//$NON-NLS-1$
}
if
(
settings
.
isNoBeep
())
{
cmd
.
add
(
"--no-beep"
);
//$NON-NLS-1$
}
settings
.
addExtraCommandArgs
(
cmd
);
}
@Override
public
boolean
isVerbose
()
{
return
true
;
}
@Override
protected
void
startProcessHandler
(
DBRProgressMonitor
monitor
,
DBTTask
task
,
MySQLScriptExecuteSettings
settings
,
MySQLCatalog
arg
,
ProcessBuilder
processBuilder
,
Process
process
,
Log
log
)
{
if
(
settings
.
isImport
())
{
super
.
startProcessHandler
(
monitor
,
task
,
settings
,
arg
,
processBuilder
,
process
,
log
);
new
BinaryFileTransformerJob
(
monitor
,
task
,
new
File
(
settings
.
getInputFile
()),
process
.
getOutputStream
(),
log
).
start
();
}
else
{
super
.
startProcessHandler
(
monitor
,
task
,
settings
,
arg
,
processBuilder
,
process
,
log
);
}
}
}
plugins/org.jkiss.dbeaver.tasks.native.ui/src/org/jkiss/dbeaver/tasks/ui/nativetool/AbstractScriptExecuteWizard.java
浏览文件 @
24d1ead3
...
...
@@ -35,11 +35,8 @@ import java.util.Collection;
public
abstract
class
AbstractScriptExecuteWizard
<
SETTINGS
extends
AbstractScriptExecuteSettings
<
BASE_OBJECT
>,
BASE_OBJECT
extends
DBSObject
,
PROCESS_ARG
>
extends
AbstractToolWizard
<
SETTINGS
,
BASE_OBJECT
,
PROCESS_ARG
>
implements
IImportWizard
{
protected
File
inputFile
;
public
AbstractScriptExecuteWizard
(
Collection
<
BASE_OBJECT
>
dbObject
,
String
task
)
{
super
(
dbObject
,
task
);
this
.
inputFile
=
null
;
}
@Override
...
...
@@ -52,12 +49,12 @@ public abstract class AbstractScriptExecuteWizard<SETTINGS extends AbstractScrip
public
File
getInputFile
()
{
return
inputFile
;
return
new
File
(
getSettings
().
getInputFile
())
;
}
public
void
setInputFile
(
File
inputFile
)
{
this
.
inputFile
=
inputFile
;
getSettings
().
setInputFile
(
inputFile
.
getAbsolutePath
())
;
}
@Override
...
...
@@ -86,7 +83,7 @@ public abstract class AbstractScriptExecuteWizard<SETTINGS extends AbstractScrip
logPage
.
startLogReader
(
processBuilder
,
process
.
getInputStream
());
new
TextFileTransformerJob
(
monitor
,
inputFile
,
process
.
getOutputStream
(),
getInputCharset
(),
getOutputCharset
()).
start
();
new
TextFileTransformerJob
(
monitor
,
getInputFile
()
,
process
.
getOutputStream
(),
getInputCharset
(),
getOutputCharset
()).
start
();
}
@Override
...
...
plugins/org.jkiss.dbeaver.tasks.native.ui/src/org/jkiss/dbeaver/tasks/ui/nativetool/AbstractToolWizardPage.java
浏览文件 @
24d1ead3
...
...
@@ -20,7 +20,6 @@ package org.jkiss.dbeaver.tasks.ui.nativetool;
import
org.eclipse.jface.fieldassist.SimpleContentProposalProvider
;
import
org.eclipse.jface.fieldassist.TextContentAdapter
;
import
org.eclipse.jface.wizard.WizardPage
;
import
org.eclipse.swt.events.SelectionAdapter
;
import
org.eclipse.swt.events.SelectionEvent
;
import
org.eclipse.swt.widgets.Composite
;
...
...
@@ -28,8 +27,9 @@ import org.eclipse.swt.widgets.Table;
import
org.eclipse.swt.widgets.TableItem
;
import
org.eclipse.swt.widgets.Text
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.dialogs.ActiveWizardPage
;
public
abstract
class
AbstractToolWizardPage
<
WIZARD
extends
AbstractToolWizard
>
extends
WizardPage
{
public
abstract
class
AbstractToolWizardPage
<
WIZARD
extends
AbstractToolWizard
>
extends
Active
WizardPage
{
protected
final
WIZARD
wizard
;
...
...
@@ -47,7 +47,6 @@ public abstract class AbstractToolWizardPage<WIZARD extends AbstractToolWizard>
return
wizard
.
getClientHome
()
!=
null
&&
super
.
isPageComplete
();
}
protected
void
createCheckButtons
(
Composite
buttonsPanel
,
final
Table
table
)
{
UIUtils
.
createDialogButton
(
buttonsPanel
,
"All"
,
new
CheckListener
(
table
,
true
));
UIUtils
.
createDialogButton
(
buttonsPanel
,
"None"
,
new
CheckListener
(
table
,
false
));
...
...
plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractNativeToolHandler.java
浏览文件 @
24d1ead3
...
...
@@ -146,8 +146,17 @@ public abstract class AbstractNativeToolHandler<SETTINGS extends AbstractNativeT
protected
void
setupProcessParameters
(
SETTINGS
settings
,
PROCESS_ARG
arg
,
ProcessBuilder
process
)
{
}
protected
boolean
isLogInputStream
()
{
return
true
;
}
protected
void
startProcessHandler
(
DBRProgressMonitor
monitor
,
DBTTask
task
,
SETTINGS
settings
,
PROCESS_ARG
arg
,
ProcessBuilder
processBuilder
,
Process
process
,
Log
log
)
{
new
LogReaderJob
(
task
,
settings
,
processBuilder
,
process
.
getErrorStream
()).
start
();
LogReaderJob
logReaderJob
=
new
LogReaderJob
(
task
,
settings
,
processBuilder
,
isLogInputStream
()
?
process
.
getInputStream
()
:
process
.
getErrorStream
());
logReaderJob
.
start
();
}
public
boolean
executeProcess
(
DBRProgressMonitor
monitor
,
DBTTask
task
,
SETTINGS
settings
,
PROCESS_ARG
arg
,
Log
log
)
throws
IOException
,
InterruptedException
{
...
...
plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractScriptExecuteSettings.java
浏览文件 @
24d1ead3
...
...
@@ -17,8 +17,32 @@
*/
package
org.jkiss.dbeaver.tasks.nativetool
;
import
org.jkiss.dbeaver.model.preferences.DBPPreferenceStore
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableContext
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
public
class
AbstractScriptExecuteSettings
<
BASE_OBJECT
extends
DBSObject
>
extends
AbstractNativeToolSettings
<
BASE_OBJECT
>
{
private
String
inputFile
;
public
String
getInputFile
()
{
return
inputFile
;
}
public
void
setInputFile
(
String
inputFile
)
{
this
.
inputFile
=
inputFile
;
}
@Override
public
void
loadSettings
(
DBRRunnableContext
runnableContext
,
DBPPreferenceStore
preferenceStore
)
{
super
.
loadSettings
(
runnableContext
,
preferenceStore
);
inputFile
=
preferenceStore
.
getString
(
"inputFile"
);
}
@Override
public
void
saveSettings
(
DBRRunnableContext
runnableContext
,
DBPPreferenceStore
preferenceStore
)
{
super
.
saveSettings
(
runnableContext
,
preferenceStore
);
preferenceStore
.
setValue
(
"inputFile"
,
inputFile
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录