InSync04:打开多个联系人
一、运行DEMO:
1、运行程序:http://localhost:8400/spring-flex-testdrive/insync04/index.html;
2、单击Search按钮,从数据库获取所有的联系人。
3、在Search文本框输入几个字符,单击“Search”按钮,按名字来查找联系人。
4、双击DataGrid里的某个联系人将为打开独立的Tab,重复这个操作可以打开多个Tab。
5、在Contact窗体里编辑联系人,单击“Save"保存修改。
二、理解代码:
1、insync04.mxml:
insync04与insync03差不多,就是增加了TabNavigator控件来显示多个不同的联系人窗体。
public function openContact(contact:Contact):void
{
??? var children:Array = tn.getChildren();
??? for (var i:int = 0; i<children.length; i++)
??? {
??????? if (ContactForm(children[i]).contact.id == contact.id)
??????? {
??????????? tn.selectedChild = children[i];
??????????? return; //如果窗体已打开,则返回。
??????? }
??? }
??? var form:ContactForm = new ContactForm();
??? tn.addChild(form);
??? form.contact = contact;
??? tn.selectedChild = form;
}
2、DataGrid的双击事件
还有点要注意的是,DataGrid的双击事件要启用。
<mx:DataGrid id="dg" dataProvider="{contacts}" width="30%" height="100%"
???????????????????? doubleClickEnabled="true"
???????????????????? doubleClick="openContact(dg.selectedItem as Contact)">
3、ContactForm.mxml:
增加了“Close”按钮,从父对象中移除自己。
<s:Button label="Close" click="parent.removeChild(this)"/>
?
三、小结:?
本DEMO与InSync03类似,只是通过TabNavigator来显示多个contact窗体,后台代码没有改动。