提交 29006062 编写于 作者: S Serge Rider

#1549 Refresh after truncate. SQL tools dialog refactoring.

上级 50f819d1
......@@ -248,11 +248,20 @@ public abstract class GenerateMultiSQLDialog<T extends DBSObject> extends Genera
job.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent event) {
if (needsRefreshOnFinish()) {
for (T object : selectedObjects) {
DBUtils.fireObjectRefresh(object);
}
}
}
});
job.schedule();
}
protected boolean needsRefreshOnFinish() {
return false;
}
protected abstract void generateObjectCommand(List<String> sql, T object);
protected static <T extends DBSObject> DBCExecutionContext getContextFromObjects(@NotNull Collection<T> objects, boolean meta) {
......
......@@ -52,9 +52,9 @@ public abstract class SQLScriptStatusDialog<T extends DBSObject> extends BaseDia
private Collection<T> objects;
private int processedCount;
public SQLScriptStatusDialog(final Shell shell, String title, @Nullable DBPImage image)
protected SQLScriptStatusDialog(String title, @Nullable DBPImage image)
{
super(shell, title, image);
super(DBeaverUI.getActiveWorkbenchShell(), title, image);
}
@Override
......
......@@ -172,7 +172,7 @@ public abstract class AbstractDataEditor<OBJECT_TYPE extends DBSObject> extends
@Override
public void refreshPart(Object source, boolean force) {
resultSetView.refresh();
}
}
......@@ -60,7 +60,7 @@ public abstract class DB2BaseTableToolDialog extends GenerateMultiSQLDialog<DB2T
{
final int nbExtraColumns = getNumberExtraResultingColumns();
return new SQLScriptStatusDialog<DB2Table>(getShell(), getTitle() + " " + DB2Messages.dialog_table_tools_progress, null) {
return new SQLScriptStatusDialog<DB2Table>(getTitle() + " " + DB2Messages.dialog_table_tools_progress, null) {
@Override
protected void createStatusColumns(Tree objectTree)
{
......
......@@ -44,7 +44,7 @@ public class DB2TruncateDialog extends DB2BaseTableToolDialog {
private Button dlgTriggersDelete;
private Button dlgTriggersRestrict;
public DB2TruncateDialog(IWorkbenchPartSite partSite, Collection<DB2Table> selectedTables)
DB2TruncateDialog(IWorkbenchPartSite partSite, Collection<DB2Table> selectedTables)
{
super(partSite, DB2Messages.dialog_table_tools_truncate_title, selectedTables);
}
......@@ -113,4 +113,9 @@ public class DB2TruncateDialog extends DB2BaseTableToolDialog {
lines.add(sb.toString());
}
@Override
protected boolean needsRefreshOnFinish() {
return true;
}
}
......@@ -56,13 +56,13 @@ import java.util.*;
public abstract class ExasolBaseTableToolDialog
extends GenerateMultiSQLDialog<ExasolTableBase> {
public static final String VARIABLE_DATE = "date";
public static final String VARIABLE_TABLE = "table";
public static final String VARIABLE_SCHEMA = "schema";
private static final String VARIABLE_DATE = "date";
private static final String VARIABLE_TABLE = "table";
private static final String VARIABLE_SCHEMA = "schema";
public ExasolBaseTableToolDialog(IWorkbenchPartSite partSite, String title,
Collection<ExasolTableBase> objects)
ExasolBaseTableToolDialog(IWorkbenchPartSite partSite, String title,
Collection<ExasolTableBase> objects)
{
super(partSite, title, objects, true);
}
......@@ -102,7 +102,7 @@ public abstract class ExasolBaseTableToolDialog
{
final int nbExtraColumns = getNumberExtraResultingColumns();
return new SQLScriptStatusDialog<ExasolTableBase>(getShell(), getTitle() + " " + ExasolMessages.dialog_table_tools_progress,null) {
return new SQLScriptStatusDialog<ExasolTableBase>(getTitle() + " " + ExasolMessages.dialog_table_tools_progress,null) {
@Override
protected void createStatusColumns(Tree objectTree)
{
......
......@@ -53,6 +53,11 @@ public class MySQLToolTruncate implements IExternalTool
super(partSite, "Truncate table(s)", selectedTables);
}
@Override
protected boolean needsRefreshOnFinish() {
return true;
}
@Override
protected void generateObjectCommand(List<String> lines, MySQLTable object) {
lines.add("TRUNCATE TABLE " + object.getFullyQualifiedName(DBPEvaluationContext.DDL));
......
......@@ -49,7 +49,7 @@ public abstract class TableToolDialog extends GenerateMultiSQLDialog<MySQLTable>
@Override
protected SQLScriptProgressListener<MySQLTable> getScriptListener() {
return new SQLScriptStatusDialog<MySQLTable>(getShell(), getTitle() + " progress", null) {
return new SQLScriptStatusDialog<MySQLTable>(getTitle() + " progress", null) {
@Override
protected void createStatusColumns(Tree objectTree) {
TreeColumn msgColumn = new TreeColumn(objectTree, SWT.NONE);
......
......@@ -46,7 +46,7 @@ public abstract class OracleMaintenanceDialog<T extends DBSObject> extends Gener
@Override
protected SQLScriptProgressListener<T> getScriptListener() {
return new SQLScriptStatusDialog<T>(getShell(), getTitle() + " progress", null) {
return new SQLScriptStatusDialog<T>(getTitle() + " progress", null) {
@Override
protected void createStatusColumns(Tree objectTree) {
......
......@@ -82,6 +82,12 @@ public class OracleToolTruncate implements IExternalTool
createObjectsSelector(parent);
}
@Override
protected boolean needsRefreshOnFinish() {
return true;
}
}
}
......@@ -93,6 +93,11 @@ public class PostgreToolTruncate implements IExternalTool
createObjectsSelector(parent);
}
@Override
protected boolean needsRefreshOnFinish() {
return true;
}
}
}
......@@ -26,7 +26,6 @@ import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreDatabase;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreObject;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreTable;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreTableBase;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.exec.DBCResultSet;
......@@ -65,7 +64,7 @@ public abstract class TableToolDialog extends GenerateMultiSQLDialog<PostgreObje
@Override
protected SQLScriptProgressListener<PostgreObject> getScriptListener() {
return new SQLScriptStatusDialog<PostgreObject>(getShell(), getTitle() + " progress", null) {
return new SQLScriptStatusDialog<PostgreObject>(getTitle() + " progress", null) {
@Override
protected void createStatusColumns(Tree objectTree) {
TreeColumn msgColumn = new TreeColumn(objectTree, SWT.NONE);
......
......@@ -1012,6 +1012,15 @@ public final class DBUtils {
}
}
/**
* Refresh object in UI
*/
public static void fireObjectRefresh(DBSObject object)
{
// Select with true parameter is the same as refresh
fireObjectSelect(object, true);
}
@NotNull
public static String getObjectUniqueName(@NotNull DBSObject object)
{
......
......@@ -518,7 +518,7 @@ public abstract class SQLObjectEditor<OBJECT_TYPE extends DBSObject, CONTAINER_T
@Override
public void redoCommand(DBECommandAbstract<OBJECT_TYPE> command)
{
DBUtils.fireObjectSelect(command.getObject(), true);
DBUtils.fireObjectRefresh(command.getObject());
}
@Override
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册