Make the terminal demo able (to try) to connect to anything.
(Using the query string from the URL.) R=erg@chromium.org Review URL: https://codereview.chromium.org/1019323002
This commit is contained in:
parent
bd7603bdb0
commit
818df5f4c6
@ -5,4 +5,22 @@
|
|||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
-->
|
-->
|
||||||
<import src="terminal.sky" />
|
<import src="terminal.sky" />
|
||||||
<terminal url="mojo:echo_terminal" />
|
<!--
|
||||||
|
<terminal id="terminal" url="mojo:echo_terminal" />
|
||||||
|
-->
|
||||||
|
<terminal id="terminal" />
|
||||||
|
<script>
|
||||||
|
import 'dart:core';
|
||||||
|
import 'dart:sky';
|
||||||
|
|
||||||
|
main () {
|
||||||
|
var terminal = document.getElementById('terminal');
|
||||||
|
var params = Uri.parse(document.URL).queryParameters;
|
||||||
|
if (params.containsKey('url')) {
|
||||||
|
terminal.connect(params['url']);
|
||||||
|
} else {
|
||||||
|
terminal.putString('HALP: Add a "?url=<URL>" query.\n'
|
||||||
|
'E.g., "?url=mojo:echo_terminal".\n');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
@ -13,9 +13,10 @@
|
|||||||
background-color: black;
|
background-color: black;
|
||||||
color: rgb(255, 191, 0);
|
color: rgb(255, 191, 0);
|
||||||
font-family: 'Courier', 'monospace';
|
font-family: 'Courier', 'monospace';
|
||||||
|
font-size: small;
|
||||||
}
|
}
|
||||||
.line {
|
.line {
|
||||||
white-space: pre;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<sky-scrollable id="control" contenteditable />
|
<sky-scrollable id="control" contenteditable />
|
||||||
@ -60,7 +61,10 @@ class TerminalDisplayImpl extends SkyElement implements TerminalDisplay {
|
|||||||
// Initialize with the first line.
|
// Initialize with the first line.
|
||||||
_newLine();
|
_newLine();
|
||||||
|
|
||||||
_connect(getAttribute('url'));
|
var url = getAttribute('url');
|
||||||
|
if (url != null) {
|
||||||
|
connect(url);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _handleKeyDown(KeyboardEvent event) {
|
void _handleKeyDown(KeyboardEvent event) {
|
||||||
@ -111,15 +115,19 @@ class TerminalDisplayImpl extends SkyElement implements TerminalDisplay {
|
|||||||
_newLine();
|
_newLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(vtl): Should we always auto-connect? Should there be facilities for
|
void connect(String url) {
|
||||||
// programmatically connecting? (What if the |url| attribute isn't set?)
|
|
||||||
void _connect(String url) {
|
|
||||||
var terminalClient = new terminal.TerminalClientProxy.unbound();
|
var terminalClient = new terminal.TerminalClientProxy.unbound();
|
||||||
embedder.connectToService(url, terminalClient);
|
embedder.connectToService(url, terminalClient);
|
||||||
terminalClient.ptr.connectToTerminal(new TerminalFileImpl(this).stub);
|
terminalClient.ptr.connectToTerminal(new TerminalFileImpl(this).stub);
|
||||||
terminalClient.close();
|
terminalClient.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void putString(String s) {
|
||||||
|
for (var i = 0; i < s.length; i++) {
|
||||||
|
putChar(s.codeUnitAt(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// |TerminalDisplay| implementation:
|
// |TerminalDisplay| implementation:
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user