Files
HeidiSQL/extra/jheidi/showTableStatusDrizzleWorker.ajl

106 lines
2.7 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", "select table_name, engine, version, row_format, table_rows, avg_row_length, data_length, max_data_length, index_length, data_free, auto_increment, create_time, update_time, check_time, table_collation,checksum, create_options, table_comment from information_schema.tables where table_schema='" + dbName + "'");
DB.Result databases = db.execute("select table_name, engine, version, row_format, table_rows, avg_row_length, data_length, max_data_length, index_length, data_free, auto_increment, create_time, update_time, check_time, table_collation,checksum, create_options, table_comment from information_schema.tables where table_schema='" + 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());
}