rem: return this.mAttrTree.view.selection.count == 1; 
add: return this.mAttrTree.currentIndex >= 0 && this.mAttrTree.view.selection.count == 1; 
context:   isCommandEnabled: function(aCommand)  {    switch (aCommand) {      case "cmdEditPaste":        var flavor = this.mPanel.panelset.clipboardFlavor;        return (flavor == "inspector/dom-attribute" ||                flavor == "inspector/dom-attributes");      case "cmdEditInsert":        return true;      case "cmdEditCut":      case "cmdEditCopy":      case "cmdEditDelete":        return this.selectedAttribute != null;      case "cmdEditEdit":        return this.mAttrTree.view.selection.count == 1;      case "cmdEditNodeValue":        // this function can be fired before the subject is set        if (this.subject) {          // something with a useful nodeValue          if (this.subject.nodeType == Node.TEXT_NODE ||              this.subject.nodeType == Node.CDATA_SECTION_NODE ||              this.subject.nodeType == Node.COMMENT_NODE ||              this.subject.nodeType == Node.PROCESSING_INSTRUCTION_NODE) {            // did something change?            return this.subject.nodeValue !=                    document.getElementById("txbTextNodeValue").value;          }        }        return false;    }    return false;  },
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/e79ffa817f227d904b92ca3690ebfcd0cf95ac53/domNode.js/clean/extensions/inspector/resources/content/viewers/domNode/domNode.js