forked from Botanical/BotanJS
111 lines
2.6 KiB
JavaScript
111 lines
2.6 KiB
JavaScript
(function ()
|
|
{
|
|
var ns = __namespace( "Astro.Blog.AstroEdit.Visualizer.Snippet" );
|
|
|
|
/** @type {System.utils.IKey} */
|
|
var IKey = __import( "System.utils.IKey" );
|
|
/** @type {System.utils.DataKey} */
|
|
var DataKey = __import( "System.utils.DataKey" );
|
|
/** @type {Dandelion.IDOMElement} */
|
|
var IDOMElement = __import( "Dandelion.IDOMElement" );
|
|
/** @type {Dandelion} */
|
|
var Dand = __import( "Dandelion" );
|
|
/** @type {Components.MessageBox} */
|
|
var MessageBox = __import( "Components.MessageBox" );
|
|
|
|
|
|
var acquirelib = function(insertSnippet, snippetWrap, createContext, override)
|
|
{
|
|
var temp, i, j
|
|
|
|
, handler = function ()
|
|
{
|
|
// Input fields
|
|
var input_text = Dand.wrap('input', null, "v_snippet_input_single", null, new IKey("type", "text"));
|
|
|
|
if (this._stage)
|
|
{
|
|
input_text.value = this._text;
|
|
}
|
|
|
|
// Popup MessageBox
|
|
new MessageBox(
|
|
"Acquire library" + ( this._stage ? " (Edit)" : "" )
|
|
, Dand.wrape([ Dand.wrapc( "v_instruction flsf", "Module" ) , input_text ])
|
|
, "OK", "Cancel"
|
|
, visualizer.bind({ text:input_text, stage: this._stage })
|
|
).show();
|
|
}
|
|
|
|
, visualizer = function (submitted, override)
|
|
{
|
|
var src = override ? override.value : this.text.value
|
|
, stage = this.stage;
|
|
|
|
if (submitted && src)
|
|
{
|
|
// Shared clause
|
|
|
|
if (!stage)
|
|
{
|
|
if (!src) return;
|
|
|
|
|
|
// Visualize component
|
|
temp = Dand.wrap(
|
|
'span'
|
|
, null
|
|
, "flsf"
|
|
, "AcquireLib: " + src
|
|
, [
|
|
new DataKey( "value", src )
|
|
, new IKey(
|
|
"style", "background-color: #444; color: white; padding: 0.2em 0.5em;"
|
|
)
|
|
]
|
|
);
|
|
insertSnippet(j = snippetWrap("AcquireLib", temp, false, 'span'), Boolean(override));
|
|
}
|
|
else
|
|
{
|
|
IDOMElement(stage).setAttribute( new DataKey("value", src) );
|
|
|
|
stage.removeChild(stage.firstChild);
|
|
stage.appendChild(Dand.textNode("AcquireLib: " + src));
|
|
|
|
// set temp back to stage
|
|
temp = stage;
|
|
}
|
|
|
|
i = {_text: src, _stage: temp};
|
|
|
|
// Set context menu
|
|
createContext(i, j, handler);
|
|
}
|
|
}
|
|
;
|
|
|
|
if (override)
|
|
{
|
|
visualizer(true, override);
|
|
override = false;
|
|
}
|
|
else
|
|
{
|
|
return handler;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
var compile = function (stage)
|
|
{
|
|
var element = IDOMElement(stage);
|
|
|
|
return "[acquirelib]" + element.getDAttribute("value") + "[/acquirelib]";
|
|
};
|
|
|
|
__static_method( acquirelib, "compile", compile );
|
|
|
|
ns[ NS_EXPORT ]( EX_CLASS, "AcquireLib", acquirelib );
|
|
})();
|