diff options
author | Adrian Kummerlaender | 2015-08-15 16:06:00 +0200 |
---|---|---|
committer | Adrian Kummerlaender | 2015-08-15 16:06:00 +0200 |
commit | d8431223d34476a17835a05d9508e92447f22479 (patch) | |
tree | 91b42009fc464be238f9afab569f62cfdf355179 /src/command/commands.js | |
parent | 566e635cd798ef558f4d57fc319f0ee857869378 (diff) | |
download | MetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar MetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar.gz MetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar.bz2 MetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar.lz MetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar.xz MetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar.zst MetaTerm-d8431223d34476a17835a05d9508e92447f22479.zip |
Restructure QML and JS sources
`list` holds the components of the central list UI element.
`command` holds the UI and implementation parts of the command mode.
`widget` holds more or less general purpose elements that may also be of use in other circumstances.
Diffstat (limited to 'src/command/commands.js')
-rw-r--r-- | src/command/commands.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/command/commands.js b/src/command/commands.js new file mode 100644 index 0000000..f76af01 --- /dev/null +++ b/src/command/commands.js @@ -0,0 +1,55 @@ +function execute(output, command) { + var notImplemented = function(name) { + output.error('"' + name + '"' + ' is not implemented.'); + }; + var args = command.split(' '); + + try { + var closure = eval(args[0]); + + if ( typeof closure === 'function' ) { + args.shift(); + closure(output, args); + } else { + notImplemented(args[0]); + } + } catch (exception) { + notImplemented(args[0]); + } +} + +function exec(output, args) { + try { + var result = eval(args.join(' ')); + + if ( typeof result !== 'undefined' ) { + output.log(result); + } + } catch (exception) { + output.error(exception); + } +} + +function jump(output, index) { + terminalList.selectItem(index); +} + +function kill(output, index) { + terminalList.get(index).reset(); +} + +function next() { + terminalList.selectNext(); +} + +function prev() { + terminalList.selectPrev(); +} + +function ls(output) { + terminalList.iterate(function(item) { + if ( item.terminal !== null ) { + output.log(item.index + ': ' + item.terminal.program); + } + }); +} |