Files
HeidiSQL/extra/jheidi/showTableStatusMySQLWorker.ajl

106 lines
2.2 KiB
Plaintext

import java.util.*;
String event = arg("workerEvent");
if ( event == "init" || event == "done")
{
return;
}
WindowContext context = argObj("windowContext");
Worker worker = argObj("worker");
String dbName = arg("dbName");
Toolbar tb = context.get("/mainTabs/Database/toolbar");
Text banner = context.get("/mainTabs/Database/toolbar/banner");
Table table = context.get("/mainTabs/Database/table");
Panel tab = context.get("/mainTabs/Database");
boolean setRefresh = false;
if (event == "longRunningTask" || event == "alreadyRunning" )
{
if ( worker.isDone() && event == "longRunningTask" )
return;
if ( dbName.equals((String)context.get("currentDB")))
{
banner.setText("Database " + dbName + ": (loading)");
banner = context.get("/mainTabs/Query/toolbar/banner");
banner.setText("SQL query on database: " + dbName);
table.clear();
tb.updateUI();
}
}
else if (event == "cancelled")
{
DB db = worker.getProperty("db");
if ( db != null )
db.cancel();
if (dbName.equals((String)context.get("currentDB")) )
{
banner.setText("Database " + dbName + ": (load canceled)");
setRefresh = true;
}
}
else if (event == "backgroundTask")
{
DB db = new SQLLoggingDB((SQLLoggingDB)context.get("db"));
worker.setProperty("db", db);
worker.setProperty("waitOperation", "show table status from `" + dbName + "`");
DB.Result databases = db.execute("show table status from `" + dbName + "`");
/*try
{
Thread.sleep(10000);
} catch (Exception e) {}*/
publish(databases);
}
else if (event == "update")
{
DB.Result databases = (DB.Result)((List)argObj("taskResult")).get(0);
if ( dbName.equals((String)context.get("currentDB")))
{
banner.setText("Database " + dbName + ": " + databases.size() + " table(s)");
TableUtils.populate(table, databases);
setRefresh = true;
}
}
if ( setRefresh )
{
tab.setProperty("refreshScript", "showTableStatusMySQLWorker");
tab.setProperty("refreshArgs", args());
}