/src/name/carter/mark/flex/project/mdoc/TaggableMNode.as

http://transcriptstudio4isha.googlecode.com/ · ActionScript · 62 lines · 42 code · 8 blank · 12 comment · 9 complexity · 8e77e8d77c6cb9aa23ba91a67a29a9e3 MD5 · raw file

  1. package name.carter.mark.flex.project.mdoc
  2. {
  3. import name.carter.mark.flex.util.XMLUtils;
  4. public class TaggableMNode extends MNode
  5. {
  6. public function TaggableMNode(element:XML, xmlBasedDoc:MDocument)
  7. {
  8. super(element, xmlBasedDoc);
  9. }
  10. /*public function get tags():Array
  11. {
  12. var result:Array = new Array();
  13. for each (var tagElement:XML in nodeElement.tag) {
  14. var tag:XMLBasedMTag = new XMLBasedMTag(tagElement);
  15. result.push(tag);
  16. }
  17. return result;
  18. }*/
  19. /**
  20. * returns an array of string values.
  21. */
  22. internal function getTags(tagType:String = null):Array {
  23. var result:Array = new Array();
  24. for each (var tagElement:XML in nodeElement.tag) {
  25. var tag:MTag = new XMLBasedMTag(tagElement);
  26. if (tagType == null || tag.type == tagType) {
  27. result.push(tag);
  28. }
  29. }
  30. return result;
  31. }
  32. internal function getTagValues(tagType:String):Array {
  33. var tags:Array = getTags(tagType);
  34. return tags.map(function(tag:MTag, index:int, array:Array):String {
  35. return tag.value;
  36. });
  37. }
  38. internal function addTag(tagType:String, value:String):XMLBasedMTag {
  39. modified = true;
  40. var result:XMLBasedMTag = XMLBasedMTag.addNewTag(this, tagType, value);
  41. return result;
  42. }
  43. public function removeAllTags(type:String = null):void {
  44. modified = true;
  45. for each (var tag:MTag in getTags(type)) {
  46. tag.remove();
  47. }
  48. }
  49. public function removeAllNotesAndSummaries():void {
  50. modified = true;
  51. XMLUtils.removeAllElements(nodeElement.*.(localName() == MSuperNodeProperties.NOTES_PROP_NAME || localName() == MSuperNodeProperties.SUMMARY_PROP_NAME));
  52. }
  53. }
  54. }