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()); }