mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2026-03-13 09:24:25 +08:00
129 lines
2.8 KiB
Plaintext
129 lines
2.8 KiB
Plaintext
import java.util.*;
|
|
|
|
String event = arg("workerEvent");
|
|
|
|
if ( event == "init" || event == "done")
|
|
{
|
|
return;
|
|
}
|
|
|
|
WindowContext context = argObj("windowContext");
|
|
Text banner = context.get("/mainTabs/Table/toolbar/banner");
|
|
Panel tab = context.get("/mainTabs/Table");
|
|
Worker worker = argObj("worker");
|
|
Table table = context.get("/mainTabs/Table/table");
|
|
Toolbar tb = context.get("/mainTabs/Table/toolbar");
|
|
String tableName = arg("tableName");
|
|
String dbName = arg("dbName");
|
|
boolean setRefresh = false;
|
|
|
|
|
|
if ( event == "longRunningTask" || event == "alreadyRunning")
|
|
{
|
|
if ( worker.isDone() && event=="longRunningTask" )
|
|
return;
|
|
|
|
if ( tableName.equals((String)context.get("currentTable")) &&
|
|
dbName.equals((String)context.get("currentDB")))
|
|
{
|
|
banner.setText("Table properties for " + dbName + "." + tableName + " (loading)");
|
|
table.clear();
|
|
tb.updateUI();
|
|
|
|
if ( event == "longRunningTask" )
|
|
{
|
|
ToolbarButton btn = context.get("/mainTabs/Table/toolbar/New Field");
|
|
btn.setEnabled(false);
|
|
|
|
btn = context.get("/mainTabs/Table/toolbar/Manage Indexes");
|
|
btn.setEnabled(false);
|
|
}
|
|
}
|
|
}
|
|
else if ( event == "cancelled" )
|
|
{
|
|
DB db = worker.getProperty("db");
|
|
|
|
if ( db != null )
|
|
db.cancel();
|
|
|
|
if ( tableName.equals((String)context.get("currentTable")) &&
|
|
dbName.equals((String)context.get("currentDB")))
|
|
{
|
|
banner.setText("Table properties for " + dbName + "." + tableName + " (load canceled)");
|
|
setRefresh = true;
|
|
}
|
|
|
|
}
|
|
else if ( event == "backgroundTask" )
|
|
{
|
|
DB db = new SQLLoggingDB((SQLLoggingDB)context.get("db"));
|
|
|
|
worker.setProperty("db", db);
|
|
worker.setProperty("waitOperation", "show full columns from `" + dbName + "`.`" + tableName + "`");
|
|
|
|
DB.Result tables = db.execute("show full columns from `" + dbName + "`.`" + tableName + "`");
|
|
|
|
/*try
|
|
{
|
|
Thread.sleep(5000);
|
|
} catch (Exception e) {}*/
|
|
|
|
publish(tables);
|
|
|
|
}
|
|
else if ( event == "update")
|
|
{
|
|
|
|
DB.Result tables = (DB.Result)((List)argObj("taskResult")).get(0);
|
|
|
|
if ( tableName.equals((String)context.get("currentTable")) &&
|
|
dbName.equals((String)context.get("currentDB")))
|
|
{
|
|
|
|
banner.setText("Table properties for " + dbName + "." + tableName );
|
|
TableUtils.populate(table, tables);
|
|
|
|
ToolbarButton btn = context.get("/mainTabs/Table/toolbar/New Field");
|
|
btn.setEnabled(true);
|
|
|
|
btn = context.get("/mainTabs/Table/toolbar/Manage Indexes");
|
|
btn.setEnabled(true);
|
|
setRefresh = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ( setRefresh )
|
|
{
|
|
tab.setProperty("refreshScript", "loadTableInfoMySQLWorker");
|
|
tab.setProperty("refreshArgs", args());
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|