Flex tree xml 데이터 원본
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
verticalAlign="middle"
backgroundColor="white" creationComplete="init();">
<mx:Script>
<![CDATA[
import hessian.service.FlexTestService;
import mx.collections.ICollectionView;
import mx.collections.XMLListCollection;
import mx.controls.Alert;
import mx.controls.Tree;
import mx.events.ListEvent;
import mx.rpc.events.ResultEvent;
import mx.managers.PopUpManager;
var noteId:String;
// tree
private function init():void {
getTree();
}
// tree item click
private function tree_itemClick(evt:ListEvent):void {
var item:Object = Tree(evt.currentTarget).selectedItem;
if (tree.dataDescriptor.isBranch(item)) {
tree.expandItem(item, !tree.isItemOpen(item), true);
}
}
//tree item ( )
private function tree_labelFunc(item:XML):String {
var children:ICollectionView;
var suffix:String = "";
if (tree.dataDescriptor.isBranch(item)) {
children = tree.dataDescriptor.getChildren(item);
suffix = " (" + children.length + ")";
}
return item[tree.labelField] + suffix;
}
[Bindable]
public var selectedNode:XML;
// tree change
public function treeChanged(event:Event):void {
// xml, selectedNode,as
selectedNode = Tree(event.target).selectedItem as XML;
noteId = selectedNode.@sid;
}
// tree
public function getTree():void {
// service
var service:FlexTestService = new FlexTestService(result);
service.getTree();
}
var returnString:String;
var treeDate:XML
//
public function result(data:Object):void {
//java String
returnString = data as String;
// returnString xml,
treeDate = new XML(returnString);
// xml tree
tree.dataProvider = treeDate;
}
//
public function delNote():void {
var service:FlexTestService = new FlexTestService(result);
service.delNote(noteId);
}
//
public function addNote():void {
var service:FlexTestService = new FlexTestService(result);
service.addNote(noteId, nodeName.text);
}
//
public function updateNote():void {
var service:FlexTestService = new FlexTestService(result);
service.updateNote(noteId, nodeName.text);
}
]]>
</mx:Script>
<mx:Tree id="tree"
showRoot="false"
labelField="@label"
labelFunction="tree_labelFunc"
width="258"
rowCount="6"
itemClick="tree_itemClick(event);" x="301" y="205" height="208" change="treeChanged(event);"/>
<mx:Button width="98" height="31" click="addNote();" x="374" y="440" label=" " fontSize="16"/>
<mx:Button width="98" height="31" click="updateNote();" x="374" y="482" label=" " fontSize="16"/>
<mx:Button width="98" height="31" click="delNote();" x="374" y="521" label=" " fontSize="16"/>
<mx:TextArea text=" : {selectedNode.@label}" x="576" y="207" height="206" width="261"/>
<mx:Text x="576" y="482" text=" " fontSize="14" fontWeight="bold"/>
<mx:TextInput id="nodeName" x="660" y="479" fontSize="16"/>
</mx:Application>
package hessian.service {
import mx.rpc.AsyncToken;
import mx.controls.Alert;
import hessian.client.HessianService;
public class FlexTestService extends BaseService {
private static var _userService : HessianService;
// java , java
protected static function getFlexTestService():HessianService {
if (!_userService) {
_userService = new HessianService("http://localhost/remoting/testService");
}
return _userService;
}
public function FlexTestService(resultCallback:Function = null, faultCallback:Function = null) {
super(resultCallback, faultCallback);
}
// tree
public function getTree():void {
var token:AsyncToken = getFlexTestService().getTree.send();
token.addResponder(this);
}
//
public function addNote(sid:String, name:String):void {
var token:AsyncToken = getFlexTestService().addNode.send(sid, name);
token.addResponder(this);
}
//
public function delNote(sid:String):void {
var token:AsyncToken = getFlexTestService().delNode.send(sid);
token.addResponder(this);
}
//
public function updateNote(sid:String, name:String):void {
var token:AsyncToken = getFlexTestService().updateNode.send(sid, name);
token.addResponder(this);
}
}
}
package net.shopin.api;
import net.shopin.view.CatalogVO;
import java.util.List;
public interface TestService {
/**
*
* @return
*/
String getTree();
/**
*
* @return
*/
String addNode(String sid,String name);
/**
*
* @return
*/
String delNode(String sid);
/**
*
* @return
*/
String updateNode(String sid,String name);
}
package net.shopin.business;
import com.shopin.modules.orm.hibernate.SimpleHibernateDao;
import com.shopin.modules.utils.DozerMapper;
import java.util.List;
import java.util.ArrayList;
import net.shopin.entity.Catalog;
import net.shopin.entity.ProductList;
import net.shopin.api.TestService;
import net.shopin.view.CatalogVO;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Component;
import org.springframework.beans.factory.annotation.Autowired;
import org.hibernate.SessionFactory;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import org.apache.commons.lang.ObjectUtils;
@Transactional
@Component("testService")
public class TestServiceImpl implements TestService {
private SimpleHibernateDao<Catalog, Long> testDao;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
testDao = new SimpleHibernateDao<Catalog, Long>(sessionFactory, Catalog.class);
}
@Transactional(readOnly = true)
public String getTree() {
Catalog catalog = testDao.findByUnique("sid", Long.parseLong("1"));
Criteria criteria = testDao.createCriteria();
criteria.add(Restrictions.eq("fatherNodeId", catalog));
List<Catalog> list = criteria.list();
String tree = listToxml(list);
return tree;
}
private List<Catalog> getSonNode(String sid) {
// System.out.println("--------getSonNode-----------");
String hql = "from Catalog as o where o.fatherNodeId = ? ";
Catalog catalog = testDao.findByUnique("sid", Long.parseLong(sid));
List<Catalog> list = testDao.find(hql, catalog);
return list;
}
// list XML
private String listToxml(List flist) {
ArrayList list = (ArrayList) flist;
String treedata = "<treeRoot>
";
treedata = CreateXmlNode(list, 1L, treedata);
treedata = treedata + "</treeRoot>
";
// System.out.println(treedata);
return treedata;
}
/**
* list to Xml
*/
private String CreateXmlNode(List<Catalog> list, Long nodepid, String cratedata) {
for (int a = 0; a < list.size(); a++) {
Catalog fsort = (Catalog) list.get(a);
if ((fsort.getFatherNodeId().getSid().toString()).equals(nodepid.toString())) {
List<Catalog> lists = getSonNode(fsort.getSid().toString());
if (lists.size() > 0) {
cratedata = cratedata + "<second label=\"" + fsort.getFatherNodeId().getNodeName() + "-" + fsort.getNodeName() + "\" sid=\"" + fsort.getSid() + "\">
";
cratedata = CreateXmlNode(lists, fsort.getSid(), cratedata);
cratedata = cratedata + "</second>
";
} else {
cratedata = cratedata + "<third label=\"" + fsort.getFatherNodeId().getNodeName() + "-" + fsort.getNodeName() + "\" sid=\"" + fsort.getSid() + "\"/>
";
}
}
}
return cratedata;
}
public String addNode(String sid, String name) {
Catalog catalog = testDao.findByUnique("sid", Long.parseLong(sid));
Catalog newCatalog = new Catalog();
newCatalog.setNodeName(name);
newCatalog.setFatherNodeId(catalog);
testDao.save(newCatalog);
String data = getTree();
return data;
}
public String delNode(String sid) {
if (getSonNode(sid).size() > 0) {
System.out.println(" ");
} else {
String hql = "from Catalog as o where o.sid = ? ";
Catalog catalog = testDao.findByUnique("sid", Long.parseLong(sid));
testDao.delete(catalog);
}
String data = getTree();
return data;
}
public String updateNode(String sid, String name) {
String hql = "from Catalog as o where o.sid = ? ";
Catalog catalog = testDao.findByUnique("sid", Long.parseLong(sid));
catalog.setNodeName(name);
testDao.save(catalog);
String data = getTree();
return data;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring에서 DAO가 순환 호출될 때 데이터가 실시간으로 업데이트되지 않는 해결 방법문제를 설명하기 전에 몇 가지 전제 사항을 설명하십시오. Spring의 구성 파일에서 다음과 같은 방식으로 데이터베이스 트랜잭션을 구성했다고 가정하십시오. 현재 UserDao 및 Security Service가 있습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.