/src/org/ishafoundation/archives/transcript/components/studio/XQueryExecutorDialog.mxml

http://transcriptstudio4isha.googlecode.com/ · Macromedia eXtensible Markup Language · 82 lines · 75 code · 7 blank · 0 comment · 0 complexity · d802a678d4db132d2c40e2887ce4ea7d MD5 · raw file

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="{0.9 * parentDocument.width}" height="{0.9 * parentDocument.height}" title="Execute XQuery" horizontalAlign="center" creationComplete="init()">
  3. <mx:Script>
  4. <![CDATA[
  5. import mx.managers.PopUpManager;
  6. import mx.controls.TextInput;
  7. import mx.controls.Label;
  8. import mx.containers.GridItem;
  9. import mx.containers.GridRow;
  10. import org.ishafoundation.archives.transcript.db.XQueryExecutor;
  11. import mx.controls.Alert;
  12. import org.ishafoundation.archives.transcript.db.XQueries;
  13. public var xQueryExecutor:XQueryExecutor;
  14. [Bindable]
  15. private var args:Array = new Array(5);
  16. private function init():void {
  17. //queryTextArea.text = XQueries.ALL_EVENT_IDS;
  18. for (var i:int = 0; i < args.length; i++) {
  19. var gr:GridRow = new GridRow();
  20. gr.percentWidth = 100;
  21. gr.percentHeight = 100;
  22. var gi1:GridItem = new GridItem();
  23. gi1.percentWidth = 100;
  24. gi1.percentHeight = 100;
  25. var label:Label = new Label();
  26. label.text = "arg" + i;
  27. gi1.addChild(label);
  28. var gi2:GridItem = new GridItem();
  29. gi2.percentWidth = 100;
  30. gi2.percentHeight = 100;
  31. var textInput:TextInput = createArgTextInput(i);
  32. gi2.addChild(textInput);
  33. gr.addChild(gi1);
  34. gr.addChild(gi2);
  35. argsGrid.addChild(gr);
  36. }
  37. }
  38. private function createArgTextInput(i:int):TextInput {
  39. var textInput:TextInput = new TextInput();
  40. textInput.width = 80;
  41. textInput.addEventListener(Event.CHANGE, function(evt:Event):void {
  42. args[i] = textInput.text;
  43. });
  44. return textInput
  45. }
  46. private function labelFunc(queryStr:String):String {
  47. var lines:Array = queryStr.split("\n");
  48. return lines[0];
  49. }
  50. private function executeClicked():void {
  51. resultTextArea.text = "Executing...";
  52. xQueryExecutor.query(queryTextArea.text, args, function(xml:XML):void {
  53. resultTextArea.text = xml.toXMLString();
  54. }, function(msg:String):void {
  55. Alert.show(msg);
  56. });
  57. }
  58. private function closeMe():void {
  59. PopUpManager.removePopUp(this);
  60. }
  61. ]]>
  62. </mx:Script>
  63. <mx:ComboBox id="templateComboBox" width="100%" prompt="Select a template xquery..." labelFunction="labelFunc" dataProvider="{XQueries.ALL_XQUERIES}" change="{queryTextArea.text = templateComboBox.selectedItem as String}"/>
  64. <mx:VDividedBox width="100%" height="100%">
  65. <mx:VBox width="100%" height="100%" horizontalAlign="center" paddingBottom="5">
  66. <mx:HBox width="100%" height="100%">
  67. <mx:TextArea id="queryTextArea" height="100%" width="100%"/>
  68. <mx:Grid id="argsGrid"/>
  69. </mx:HBox>
  70. <mx:Button label="Execute" click="executeClicked()"/>
  71. </mx:VBox>
  72. <mx:TextArea id="resultTextArea" width="100%" height="100%" editable="false"/>
  73. </mx:VDividedBox>
  74. <mx:Button label="Done" click="closeMe()"/>
  75. </mx:TitleWindow>