mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-13 23:17:57 +00:00
104 lines
3.3 KiB
JavaScript
104 lines
3.3 KiB
JavaScript
|
|
// build attribute list in tree form from element attributes
|
|
function BuildCSSAttributeTable()
|
|
{
|
|
dump("populating CSS Attributes tree\n");
|
|
dump("elStyle: " + element.getAttribute("style") + "\n");
|
|
var style = element.getAttribute("style");
|
|
if(style == undefined || style == "")
|
|
{
|
|
dump("no style attributes to add\n");
|
|
return false;
|
|
}
|
|
if(style.indexOf(";") == -1) {
|
|
if(style.indexOf(":") != -1) {
|
|
name = TrimString(nvpairs.split(":")[0]);
|
|
value = TrimString(nvpairs.split(":")[1]);
|
|
if ( !AddTreeItem( name, value, "CSSATree", CSSAttrs ) )
|
|
dump("Failed to add CSS attribute: " + i + "\n");
|
|
} else
|
|
return false;
|
|
}
|
|
nvpairs = style.split(";");
|
|
for(i = 0; i < nvpairs.length; i++)
|
|
{
|
|
if(nvpairs[i].indexOf(":") != -1) {
|
|
name = TrimString(nvpairs[i].split(":")[0]);
|
|
value = TrimString(nvpairs[i].split(":")[1]);
|
|
if( !AddTreeItem( name, value, "CSSATree", CSSAttrs ) )
|
|
dump("Failed to add CSS attribute: " + i + "\n");
|
|
}
|
|
}
|
|
}
|
|
|
|
// add an attribute to the tree widget
|
|
function onAddCSSAttribute( which )
|
|
{
|
|
if( !which )
|
|
return;
|
|
if( which.getAttribute ( "disabled" ) )
|
|
return;
|
|
|
|
var name = dialog.AddCSSAttributeNameInput.value;
|
|
var value = TrimString(dialog.AddCSSAttributeValueInput.value);
|
|
|
|
if(name == "")
|
|
return;
|
|
|
|
if ( !CheckAttributeNameSimilarity( name, CSSAttrs ) )
|
|
return false;
|
|
|
|
if ( AddTreeItem ( name, value, "CSSAList", CSSAttrs ) ) {
|
|
dialog.AddCSSAttributeNameInput.value = "";
|
|
dialog.AddCSSAttributeValueInput.value = "";
|
|
}
|
|
dialog.AddCSSAttributeNameInput.focus();
|
|
}
|
|
|
|
// does enabling based on any user input.
|
|
function doCSSEnabling( keycode )
|
|
{
|
|
if(keycode == 13) {
|
|
onAddCSSAttribute( document.getElementById ( "AddCSSAttribute" ) );
|
|
return;
|
|
}
|
|
var name = TrimString(dialog.AddCSSAttributeNameInput.value).toLowerCase();
|
|
if( name == "" || !CheckAttributeNameSimilarity(name,CSSAttrs))
|
|
dialog.AddCSSAttribute.setAttribute("disabled","true");
|
|
else
|
|
dialog.AddCSSAttribute.removeAttribute("disabled");
|
|
}
|
|
|
|
function UpdateCSSAttributes()
|
|
{
|
|
dump("===============[ Setting and Updating STYLE ]===============\n");
|
|
var CSSAList = document.getElementById("CSSAList");
|
|
var styleString = "";
|
|
for(var i = 0; i < CSSAList.childNodes.length; i++)
|
|
{
|
|
var item = CSSAList.childNodes[i];
|
|
var name = TrimString(item.firstChild.firstChild.getAttribute("value"));
|
|
var value = TrimString(item.firstChild.lastChild.firstChild.value);
|
|
// this code allows users to be sloppy in typing in values, and enter
|
|
// things like "foo: " and "bar;". This will trim off everything after the
|
|
// respective character.
|
|
if(name.indexOf(":") != -1)
|
|
name = name.substring(0,name.lastIndexOf(":"));
|
|
if(value.indexOf(";") != -1)
|
|
value = value.substring(0,value.lastIndexOf(";"));
|
|
if(i == (CSSAList.childNodes.length - 1))
|
|
styleString += name + ": " + value + ";"; // last property
|
|
else
|
|
styleString += name + ": " + value + "; ";
|
|
}
|
|
dump("stylestring: ||" + styleString + "||\n");
|
|
if(styleString.length > 0) {
|
|
element.removeAttribute("style");
|
|
element.setAttribute("style",styleString); // NOTE BUG 18894!!!
|
|
} else {
|
|
if(element.getAttribute("style"))
|
|
element.removeAttribute("style");
|
|
}
|
|
}
|
|
|