aboutsummaryrefslogtreecommitdiff
path: root/src/command/commands.js
diff options
context:
space:
mode:
authorAdrian Kummerlaender2015-08-15 16:06:00 +0200
committerAdrian Kummerlaender2015-08-15 16:06:00 +0200
commitd8431223d34476a17835a05d9508e92447f22479 (patch)
tree91b42009fc464be238f9afab569f62cfdf355179 /src/command/commands.js
parent566e635cd798ef558f4d57fc319f0ee857869378 (diff)
downloadMetaTerm-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.js55
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);
+ }
+ });
+}