From 671e538740823afc25fddd8735d3befdfef91db3 Mon Sep 17 00:00:00 2001 From: Gabe Cohen Date: Mon, 11 Dec 2017 19:31:11 -0600 Subject: [PATCH] Contain autocomplete in StatusBarWidget.js StatusBarWidget.js now imports app itself and gets command names. app-gui.js no longer sets the autocomplete of StatusBarWidget itself. --- CliClient/app/app-gui.js | 5 +---- CliClient/app/gui/StatusBarWidget.js | 13 +++++++------ 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/CliClient/app/app-gui.js b/CliClient/app/app-gui.js index 019694f0de..2d25d1b62f 100644 --- a/CliClient/app/app-gui.js +++ b/CliClient/app/app-gui.js @@ -206,10 +206,7 @@ class AppGui { }; consoleWidget.hide(); - const statusBar = new StatusBarWidget(); - this.app().commandNames().then((names)=>{ - statusBar.setAutoComplete(names); - }); + const statusBar = new StatusBarWidget(); statusBar.hStretch = true; const noteLayout = new VLayoutWidget(); diff --git a/CliClient/app/gui/StatusBarWidget.js b/CliClient/app/gui/StatusBarWidget.js index 4e51881ef7..0b21d2a35f 100644 --- a/CliClient/app/gui/StatusBarWidget.js +++ b/CliClient/app/gui/StatusBarWidget.js @@ -2,17 +2,21 @@ const BaseWidget = require('tkwidgets/BaseWidget.js'); const chalk = require('chalk'); const termutils = require('tkwidgets/framework/termutils.js'); const stripAnsi = require('strip-ansi'); +const { app } = require('../app.js'); class StatusBarWidget extends BaseWidget { - constructor(autoComplete = null) { + constructor() { super(); this.promptState_ = null; this.inputEventEmitter_ = null; this.history_ = []; this.items_ = []; - this.autoComplete = autoComplete; + this.autocomplete_ = null; + app().commandNames().then(function(names){ + this.autocomplete_ = names; + }.bind(this)); } get name() { @@ -23,9 +27,6 @@ class StatusBarWidget extends BaseWidget { return false; } - setAutoComplete(auto) { - this.autoComplete = auto; - } setItemAt(index, text) { this.items_[index] = stripAnsi(text).trim(); this.invalidate(); @@ -112,7 +113,7 @@ class StatusBarWidget extends BaseWidget { cancelable: true, history: this.history, default: this.promptState_.initialText, - autoComplete: this.autoComplete, + autoComplete: this.autocomplete_, autoCompleteMenu: true, autoCompleteHint : true, };