<?xml version="1.0" ?>
<serialization>
<unicode>false</unicode>
<description><![CDATA[First of four panels that drive configuration of a knownow-enabled GUI object]]></description>
<onBeforeDeserialize><![CDATA[

//clear existing XML document (if it does exist) that displays the topic hierarchy
XMLCACHE.clearById("_ide_xmlwizard_tview_topicpath_XML");

//globals used by XMLWIZARD.log to quicly remove the fully qualified base path from the topic name
XMLWIZARD.kn_server_length = kn_server.length + 1;

//calback function bound during subscription that will add each subtopic to the tree
XMLWIZARD.log = function(strTopicPath) {
  //strip out prefix for returned topic
  strTopicPath = strTopicPath.substr(XMLWIZARD.kn_server_length);

  //get xml cache document that drives the topic tree on the client
  var objTree = getJO('_ide_xmlwizard_tview_topicpath');
  var objXML = XMLCACHE.getDocument(objTree.getXMLId());

  //resolve id for topic (remove fully-qualified path)
  var f2 = strTopicPath.lastIndexOf("/");
  var strId = strTopicPath.substring(0,f2);

  //find parent node to append to (append forward slash if necessary)
  var objNode = objXML.selectSingleNode("//node[@id='" + strId + "']");
  if(objNode == null) objNode = objXML.selectSingleNode("//node[@id='" + strId + "/']");

  //insert the new item into the topic tree
  objTree.insertItem(objNode,strTopicPath,(objNode==null)?"My LiveServer":strTopicPath.substr(strTopicPath.lastIndexOf("/")+1),null,false,true,false,true,null); 
};

//called when user clicks on a tree folder to expand it -- this causes the folder just clicked on to subscribe to knevent
XMLWIZARD.doNavKNTree = function(strNodeId,bOpen,objTree) {
  //get handle to node matching folder user just toggled between open/closed states
  var objXML = XMLCACHE.getDocument(objTree.getXMLId());
  var objNode = objXML.selectSingleNode("//node[@id='" + strNodeId + "']");

  //if topic that user wants to expand has no children in the GUI and the folder has just been opened, try to subscribe to get child topics
  if(objNode.selectNodes("node").length == 0) XMLWIZARD.findSubtopics(kn_server + "/" + strNodeId);
};

//helper function that appends a topic name to the topic path to get the fully qualified path
XMLWIZARD.appendSubtopic = function(baseTopic, subTopic) { 
  if (baseTopic.substring(baseTopic.length - 1) != "/") baseTopic += "/"; 
  return baseTopic + subTopic; 
};

//called by doNavKNTree to subscribe to the kn_subtopics topic for a given topic in order to locate any child topics
XMLWIZARD.findSubtopics = function(baseTopic) {
  var mySubscription = kn.subscribe(XMLWIZARD.appendSubtopic(baseTopic, "kn_subtopics"),function (subtopicEvent) {if (subtopicEvent.kn_payload != "kn_subtopics") {XMLWIZARD.log(XMLWIZARD.appendSubtopic(baseTopic,subtopicEvent.kn_payload));}},{do_max_age: "infinity"},{onStatus:function (statusEvent) {kn.unsubscribe(mySubscription);}}); 
};


]]></onBeforeDeserialize>
<onAfterDeserialize><![CDATA[

//disable panel options if knownow object doesn't exist
if(typeof(kn) == "object") {
  //set ref to current gui object being edited
  var objJSX =  getJO(DOM.selectedId);

  //preload value of topic path if it exists arleady
  if(typeof(XMLWIZARD._temp_kntopicpath) != "undefined") {
    getJO('_ide_xmlwizard_txt_topicpath').setValue(XMLWIZARD._temp_kntopicpath);
  } else {
    //try to derive topic path from object (assuming it's been configured before)
    getJO('_ide_xmlwizard_txt_topicpath').setValue(objJSX.getKNtopic());
  }
  //disable text entry and next button
  getJO('_ide_xmlwizard_txt_topicpath').setEnabled(true);
  getJO('_ide_xmlwizard_btn_next').setState(JSXBUTTON.STATEENABLED);
} else {
  //disable text entry and next button
  getJO('_ide_xmlwizard_txt_topicpath').setEnabled(false);
  getJO('_ide_xmlwizard_btn_next').setState(JSXBUTTON.STATEDISABLED);
}

]]></onAfterDeserialize>
<objects>
<obj type='JSXPane'>
<prps>
<prp name='id'><![CDATA[_jsx1071622360717810891]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='left' eval='true'>0</prp>
<prp name='top' eval='true'>0</prp>
<prp name='width' eval='true'>620</prp>
<prp name='height' eval='true'>331</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_kn1]]></prp>
<prp name='backgroundColor'><![CDATA[scrollbar]]></prp>
<prp name='overflow' eval='true'>1</prp>
<prp name='cssOverride'><![CDATA[]]></prp>
<prp name='color'><![CDATA[]]></prp>
<prp name='fontName'><![CDATA[]]></prp>
<prp name='fontWeight'><![CDATA[]]></prp>
<prp name='text'><![CDATA[]]></prp>
<prp name='customScrollClass'><![CDATA[]]></prp>
<prp name='ideOpenState' eval='true'>true</prp>
<prp type='cld'>
<obj type='JSXBlock'>
<prps>
<prp name='id'><![CDATA[_jsx1071622360717241553]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='left' eval='true'>8</prp>
<prp name='top' eval='true'>6</prp>
<prp name='width' eval='true'>600</prp>
<prp name='height' eval='true'>30</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_description]]></prp>
<prp name='text'><![CDATA[Select a topic from the tree below in order to subscribe to it. Or, alternately enter the path for the topic (e.g., <b>kn/what/chat</b>) :]]></prp>
<prp name='backgroundColor'><![CDATA[-1]]></prp>
<prp name='fontName'><![CDATA[Verdana]]></prp>
<prp name='overflow' eval='true'>2</prp>
<prp name='relativePosition' eval='true'>false</prp>
<prp name='textAlign'><![CDATA[left]]></prp>
<prp name='fontSize' eval='true'>10</prp>
<prp name='color'><![CDATA[]]></prp>
<prp name='cssOverride'><![CDATA[]]></prp>
<prp name='fontWeight'><![CDATA[]]></prp>
</prps>
</obj>
</prp>
<prp type='cld'>
<obj type='JSXBlock'>
<prps>
<prp name='id'><![CDATA[_jsx1071622360727294851]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='left' eval='true'>0</prp>
<prp name='top' eval='true'>38</prp>
<prp name='width' eval='true'>618</prp>
<prp name='height' eval='true'>9</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_blk0]]></prp>
<prp name='text'><![CDATA[]]></prp>
<prp name='backgroundColor'><![CDATA[-1]]></prp>
<prp name='fontName'><![CDATA[Arial]]></prp>
<prp name='overflow' eval='true'>2</prp>
<prp name='relativePosition' eval='true'>false</prp>
<prp name='textAlign'><![CDATA[left]]></prp>
<prp name='fontSize' eval='true'>11</prp>
<prp name='color'><![CDATA[]]></prp>
<prp name='cssOverride'><![CDATA[border-top:solid 1px threedshadow;]]></prp>
<prp name='fontWeight'><![CDATA[]]></prp>
</prps>
</obj>
</prp>
<prp type='cld'>
<obj type='JSXPane'>
<prps>
<prp name='id'><![CDATA[_jsx107162237047148709]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='left' eval='true'>8</prp>
<prp name='top' eval='true'>53</prp>
<prp name='width' eval='true'>599</prp>
<prp name='height' eval='true'>178</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_pan_topicpath]]></prp>
<prp name='backgroundColor'><![CDATA[window]]></prp>
<prp name='overflow' eval='true'>1</prp>
<prp name='cssOverride'><![CDATA[border:solid 1px window;border-left-color:threedshadow;border-top-color:threedshadow;]]></prp>
<prp type='cld'>
<obj type='JSXTreeView'>
<prps>
<prp name='id'><![CDATA[_jsx1071622488701890705]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_tview_topicpath]]></prp>
<prp name='index' eval='true'>0</prp>
<prp name='XSLURL'><![CDATA[JSX/xsl/jsxtreeview.xsl]]></prp>
<prp name='XSLCacheStrength'><![CDATA[infinity]]></prp>
<prp name='XSLCacheGroup'><![CDATA[JSXSYSTEM]]></prp>
<prp name='XSLId'><![CDATA[JSX_TREEVIEW_XSL]]></prp>
<prp name='XMLString'><![CDATA[<node id="" type="book" open="false" selected="true"><text>My LiveServer</text></node>]]></prp>
<prp name='XMLCacheStrength'><![CDATA[infinity]]></prp>
<prp name='XMLCacheGroup'><![CDATA[JSXSYSTEM]]></prp>
<prp type='evt' action='onClick'><![CDATA[objJSX = getJO('##JSXID##');
objJSX.doClick();
getJO('_ide_xmlwizard_txt_topicpath').setValue(objJSX.getSelectedNodeId());]]></prp>
<prp type='evt' action='onFocus'><![CDATA[getJSXObject('##JSXID##').doFocus();]]></prp>
<prp type='evt' action='onkeydown'><![CDATA[getJSXObject('##JSXID##').doKeyDown();]]></prp>
<prp name='loadState' eval='true'>1</prp>
<prp name='onToggle'><![CDATA[XMLWIZARD.doNavKNTree]]></prp>
<prp name='selectedNodeId'><![CDATA[]]></prp>
</prps>
</obj>
</prp>
<prp name='ideOpenState' eval='true'>true</prp>
</prps>
</obj>
</prp>
<prp type='cld'>
<obj type='JSXBlock'>
<prps>
<prp name='id'><![CDATA[_jsx10716223607275609]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='left' eval='true'>12</prp>
<prp name='top' eval='true'>255</prp>
<prp name='width' eval='true'>100</prp>
<prp name='height' eval='true'>12</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_blk5]]></prp>
<prp name='text'><![CDATA[Path to Topic:]]></prp>
<prp name='backgroundColor'><![CDATA[-1]]></prp>
<prp name='fontName'><![CDATA[Verdana]]></prp>
<prp name='overflow' eval='true'>2</prp>
<prp name='relativePosition' eval='true'>false</prp>
<prp name='textAlign'><![CDATA[right]]></prp>
<prp name='fontSize' eval='true'>10</prp>
<prp name='color'><![CDATA[]]></prp>
<prp name='cssOverride'><![CDATA[]]></prp>
<prp name='fontWeight'><![CDATA[]]></prp>
</prps>
</obj>
</prp>
<prp type='cld'>
<obj type='JSXTextBox'>
<prps>
<prp name='id'><![CDATA[_jsx107162236073747051]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='left' eval='true'>116</prp>
<prp name='top' eval='true'>252</prp>
<prp name='width' eval='true'>491</prp>
<prp name='height' eval='true'>18</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_txt_topicpath]]></prp>
<prp name='text'><![CDATA[]]></prp>
<prp name='fontName'><![CDATA[Verdana]]></prp>
<prp name='fontSize' eval='true'>10</prp>
<prp name='backgroundColor'><![CDATA[#ffffff]]></prp>
<prp name='index' eval='true'>0</prp>
<prp name='type' eval='true'>0</prp>
<prp name='wrap'><![CDATA[break-word]]></prp>
<prp name='enabled' eval='true'>false</prp>
</prps>
</obj>
</prp>
<prp type='cld'>
<obj type='JSXBlock'>
<prps>
<prp name='id'><![CDATA[_jsx1071622360737304051]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='left' eval='true'>0</prp>
<prp name='top' eval='true'>292</prp>
<prp name='width' eval='true'>618</prp>
<prp name='height' eval='true'>9</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_blk4]]></prp>
<prp name='text'><![CDATA[]]></prp>
<prp name='backgroundColor'><![CDATA[-1]]></prp>
<prp name='fontName'><![CDATA[Arial]]></prp>
<prp name='overflow' eval='true'>2</prp>
<prp name='relativePosition' eval='true'>false</prp>
<prp name='textAlign'><![CDATA[left]]></prp>
<prp name='fontSize' eval='true'>11</prp>
<prp name='color'><![CDATA[]]></prp>
<prp name='cssOverride'><![CDATA[border-top:solid 1px threedshadow;]]></prp>
<prp name='fontWeight'><![CDATA[]]></prp>
</prps>
</obj>
</prp>
<prp type='cld'>
<obj type='JSXButton'>
<prps>
<prp name='id'><![CDATA[_jsx107162236074720242]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='left' eval='true'>4</prp>
<prp name='top' eval='true'>300</prp>
<prp name='width' eval='true'>58</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_btn_cancel]]></prp>
<prp name='text'><![CDATA[Cancel]]></prp>
<prp name='state' eval='true'>1</prp>
<prp name='iconType'><![CDATA[next]]></prp>
<prp name='color'><![CDATA[buttontext]]></prp>
<prp name='disabledColor'><![CDATA[graytext]]></prp>
<prp type='evt' action='onClick'><![CDATA[XMLWIZARD=null;getJSXObject('_ide_dialog').doClose();]]></prp>
<prp type='evt' action='onKeyPress'><![CDATA[getJSXObject('##JSXID##').doKeyPress();]]></prp>
<prp type='evt' action='onMouseDown'><![CDATA[getJSXObject('##JSXID##').doMouseDown();]]></prp>
<prp type='evt' action='onMouseUp'><![CDATA[getJSXObject('##JSXID##').doMouseUp();]]></prp>
<prp name='backgroundColor'><![CDATA[buttonface]]></prp>
<prp name='cssOverride'><![CDATA[]]></prp>
<prp name='fontName'><![CDATA[]]></prp>
<prp name='fontWeight'><![CDATA[]]></prp>
<prp name='disabledBackgroundColor'><![CDATA[scrollbar]]></prp>
<prp name='index' eval='true'>0</prp>
</prps>
</obj>
</prp>
<prp type='cld'>
<obj type='JSXButton'>
<prps>
<prp name='id'><![CDATA[_jsx1071622360767358159]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='left' eval='true'>419</prp>
<prp name='top' eval='true'>300</prp>
<prp name='width' eval='true'>58</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_btn_back]]></prp>
<prp name='text'><![CDATA[Back]]></prp>
<prp name='state' eval='true'>1</prp>
<prp name='iconType'><![CDATA[next]]></prp>
<prp name='color'><![CDATA[buttontext]]></prp>
<prp name='disabledColor'><![CDATA[graytext]]></prp>
<prp type='evt' action='onClick'><![CDATA[XMLWIZARD._temp_kntopicpath = getJO('_ide_xmlwizard_txt_topicpath').getValue();
var objJSX = getJSXObject('_ide_dialog');
objJSX.removeChild(getJSXObject('_ide_xmlwizard_kn1'));
objJSX.deserialize('ide/objectSets/xmlwizard/panel2.xml');
objJSX.repaint();]]></prp>
<prp type='evt' action='onKeyPress'><![CDATA[getJSXObject('##JSXID##').doKeyPress();]]></prp>
<prp type='evt' action='onMouseDown'><![CDATA[getJSXObject('##JSXID##').doMouseDown();]]></prp>
<prp type='evt' action='onMouseUp'><![CDATA[getJSXObject('##JSXID##').doMouseUp();]]></prp>
<prp name='backgroundColor'><![CDATA[buttonface]]></prp>
<prp name='cssOverride'><![CDATA[]]></prp>
<prp name='fontName'><![CDATA[]]></prp>
<prp name='fontWeight'><![CDATA[]]></prp>
<prp name='disabledBackgroundColor'><![CDATA[scrollbar]]></prp>
<prp name='index' eval='true'>0</prp>
</prps>
</obj>
</prp>
<prp type='cld'>
<obj type='JSXButton'>
<prps>
<prp name='id'><![CDATA[_jsx1071622360778899157]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='left' eval='true'>485</prp>
<prp name='top' eval='true'>300</prp>
<prp name='width' eval='true'>58</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_btn_next]]></prp>
<prp name='text'><![CDATA[Next]]></prp>
<prp name='state' eval='true'>0</prp>
<prp name='iconType'><![CDATA[next]]></prp>
<prp name='color'><![CDATA[buttontext]]></prp>
<prp name='disabledColor'><![CDATA[graytext]]></prp>
<prp type='evt' action='onClick'><![CDATA[XMLWIZARD._temp_kntopicpath = getJO('_ide_xmlwizard_txt_topicpath').getValue();
var objJSX = getJO('_ide_dialog');
objJSX.removeChild(getJO('_ide_xmlwizard_kn1'));
objJSX.deserialize('JSX/addins/knownow/xmlwizard/panel2.xml');
objJSX.repaint();]]></prp>
<prp type='evt' action='onKeyPress'><![CDATA[getJSXObject('##JSXID##').doKeyPress();]]></prp>
<prp type='evt' action='onMouseDown'><![CDATA[getJSXObject('##JSXID##').doMouseDown();]]></prp>
<prp type='evt' action='onMouseUp'><![CDATA[getJSXObject('##JSXID##').doMouseUp();]]></prp>
<prp name='backgroundColor'><![CDATA[buttonface]]></prp>
<prp name='cssOverride'><![CDATA[]]></prp>
<prp name='fontName'><![CDATA[]]></prp>
<prp name='fontWeight'><![CDATA[]]></prp>
<prp name='disabledBackgroundColor'><![CDATA[scrollbar]]></prp>
<prp name='index' eval='true'>0</prp>
</prps>
</obj>
</prp>
<prp type='cld'>
<obj type='JSXButton'>
<prps>
<prp name='id'><![CDATA[_jsx1071622360788389049]]></prp>
<prp name='isSaved' eval='true'>true</prp>
<prp name='visible' eval='true'>true</prp>
<prp name='left' eval='true'>551</prp>
<prp name='top' eval='true'>300</prp>
<prp name='width' eval='true'>58</prp>
<prp name='display'><![CDATA[]]></prp>
<prp name='visibility'><![CDATA[]]></prp>
<prp name='zIndex' eval='true'>1</prp>
<prp name='name'><![CDATA[_ide_xmlwizard_btn_finish]]></prp>
<prp name='text'><![CDATA[Finish]]></prp>
<prp name='state' eval='true'>0</prp>
<prp name='iconType'><![CDATA[next]]></prp>
<prp name='color'><![CDATA[buttontext]]></prp>
<prp name='disabledColor'><![CDATA[graytext]]></prp>
<prp type='evt' action='onMouseDown'><![CDATA[getJSXObject('##JSXID##').doMouseDown();]]></prp>
<prp type='evt' action='onMouseUp'><![CDATA[getJSXObject('##JSXID##').doMouseUp();]]></prp>
<prp type='evt' action='onKeyPress'><![CDATA[getJSXObject('##JSXID##').doKeyPress();]]></prp>
<prp name='backgroundColor'><![CDATA[buttonface]]></prp>
<prp name='cssOverride'><![CDATA[]]></prp>
<prp name='fontName'><![CDATA[]]></prp>
<prp name='fontWeight'><![CDATA[]]></prp>
<prp name='disabledBackgroundColor'><![CDATA[scrollbar]]></prp>
<prp name='index' eval='true'>0</prp>
</prps>
</obj>
</prp>
<prp name='_ide_url'><![CDATA[JSX/addins/knownow/xmlwizard/panel1.xml]]></prp>
</prps>
</obj>
</objects>
</serialization>