public void run() {
mSettingsWillBeOpened = true;
// show busy cursor
Window comp = UiUtilities.getLastModalChildOf(MainFrame.getInstance());
ProgramTable programTable = MainFrame.getInstance().getProgramTableScrollPane().getProgramTable();
Cursor oldWindowCursor = comp.getCursor();
Cursor oldTableCursor = programTable.getCursor();
comp.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
programTable.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
SettingsDialog dlg = new SettingsDialog(MainFrame.this, visibleTabId);
dlg.centerAndShow();
// restore cursors
programTable.setCursor(oldTableCursor);
comp.setCursor(oldWindowCursor);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Settings.handleChangedSettings();