kopia lustrzana https://github.com/c9/core
99 wiersze
3.2 KiB
JavaScript
99 wiersze
3.2 KiB
JavaScript
|
|
define(function(require, exports, module) {
|
|
main.consumes = ["Editor", "editors", "ui", "tabManager"];
|
|
main.provides = ["timeview"];
|
|
return main;
|
|
|
|
function main(options, imports, register) {
|
|
var Editor = imports.Editor;
|
|
var editors = imports.editors;
|
|
var tabs = imports.tabManager;
|
|
var ui = imports.ui;
|
|
|
|
/***** Initialization *****/
|
|
|
|
var extensions = [];
|
|
|
|
var handle = editors.register("timeview", "Time Viewer",
|
|
TimeViewer, extensions);
|
|
|
|
handle.addElement(
|
|
tabs.getElement("mnuEditors").appendChild(
|
|
new ui.item({
|
|
caption: "New Clock",
|
|
onclick: function(e) {
|
|
e.pane = tabs.focussedTab.pane;
|
|
tabs.openEditor("timeview", true, function(){});
|
|
}
|
|
})
|
|
)
|
|
);
|
|
|
|
function TimeViewer(){
|
|
var deps = main.consumes.splice(0, main.consumes.length - 1);
|
|
var plugin = new Editor("Ajax.org", deps, extensions);
|
|
var editor;
|
|
|
|
plugin.on("draw", function(e) {
|
|
// Create UI elements
|
|
editor = document.createElement("div");
|
|
e.htmlNode.appendChild(editor);
|
|
|
|
editor.style.display = "block";
|
|
editor.style.position = "absolute";
|
|
editor.style.backgroundColor = "rgba(255,255,255,0.8)";
|
|
editor.style.left =
|
|
editor.style.right =
|
|
editor.style.top =
|
|
editor.style.bottom = 0;
|
|
editor.style.fontSize = "50px";
|
|
editor.style.fontFamily = "Tahoma";
|
|
editor.style.textAlign = "center";
|
|
})
|
|
|
|
/***** Method *****/
|
|
|
|
/***** Lifecycle *****/
|
|
|
|
plugin.on("documentLoad", function(e) {
|
|
var doc = e.doc;
|
|
var session = doc.getSession();
|
|
|
|
session.timer = setInterval(function(){
|
|
var dt = new Date();
|
|
var time = dt.getHours() + ":"
|
|
+ dt.getMinutes() + ":"
|
|
+ dt.getSeconds();
|
|
|
|
if (doc.tab.isActive())
|
|
editor.innerHTML = time;
|
|
doc.title = time;
|
|
}, 1);
|
|
});
|
|
|
|
plugin.on("documentUnload", function(e) {
|
|
clearTimeout(e.doc.getSession().timer);
|
|
});
|
|
|
|
plugin.on("unload", function(){
|
|
editor.parentNode.removeChild(editor);
|
|
editor = null;
|
|
});
|
|
|
|
/***** Register and define API *****/
|
|
|
|
/**
|
|
* Read Only Image Editor
|
|
**/
|
|
plugin.freezePublicAPI({});
|
|
|
|
plugin.load(null, "timeview");
|
|
|
|
return plugin;
|
|
}
|
|
|
|
register(null, {
|
|
timeview: handle
|
|
});
|
|
}
|
|
}); |