您的位置:首页 > 数据库

利用JDOM从数据库读取信息生成XML树再到客户端实现

2008-06-07 15:43 706 查看
在网上找了相关代码经过修改终于成功啦。

客户端实现代码:

packagecn.teamserver.tmp.xmltotree.tree;

importjava.net.URL;
importjava.util.List;

importorg.eclipse.jface.viewers.ILabelProvider;
importorg.eclipse.jface.viewers.ILabelProviderListener;
importorg.eclipse.jface.viewers.ITreeContentProvider;
importorg.eclipse.jface.viewers.TreeViewer;
importorg.eclipse.jface.viewers.Viewer;
importorg.eclipse.swt.SWT;
importorg.eclipse.swt.graphics.Image;
importorg.eclipse.swt.layout.FillLayout;
importorg.eclipse.swt.widgets.Composite;
importorg.eclipse.swt.widgets.Display;
importorg.eclipse.swt.widgets.Shell;
importorg.jdom.Document;
importorg.jdom.Element;
importorg.jdom.input.SAXBuilder;
publicclassXMLToTree{

publicstaticvoidmain(String[]args){
XMLToTreewindow=newXMLToTree();
window.open();
}

publicvoidopen(){
finalDisplaydisplay=newDisplay();
finalShellshell=newShell();
shell.setLayout(newFillLayout());
ui(shell);
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
}

privatevoidui(Shellshell){
Compositec=newComposite(shell,SWT.NONE);
c.setLayout(newFillLayout());

TreeViewertv=newTreeViewer(c,SWT.BORDER);
tv.setContentProvider(newContentProvider());
tv.setLabelProvider(newLableProvider());
tv.setInput(newObject());//设置输入对象的方法与前面相同

}
privatestaticfinalclassContentProviderimplementsITreeContentProvider{
SAXBuilderbuilder=newSAXBuilder();
Documentdoc;
Elementroot;
ContentProvider(){
try{
doc=builder.build(newURL("http://localhost:8080/TeamServer/getTree").openStream());
root=doc.getRootElement();
}catch(Exceptionex){
ex.printStackTrace();
}
}
publicObject[]getElements(ObjectinputElement){
Listlist=root.getChildren();
TreeNodeobj[]=newTreeNode[list.size()];

for(inti=0;i0;
}
publicObjectgetParent(Objectelement){
returnnull;
}
publicvoiddispose(){}
publicvoidinputChanged(Viewerviewer,ObjectoldInput,ObjectnewInput){}
}
privatestaticfinalclassLableProviderimplementsILabelProvider{
publicImagegetImage(Objectelement){
returnnull;
}
publicStringgetText(Objectelement){
return((TreeNode)element).getName();

}

publicvoidaddListener(ILabelProviderListenerlistener){}

publicvoiddispose(){}

publicbooleanisLabelProperty(Objectelement,Stringproperty){
returnfalse;
}

publicvoidremoveListener(ILabelProviderListenerlistener){}
}
}


packagecn.teamserver.tmp.xmltotree.tree;

importorg.jdom.Element;

publicclassTreeNode{
privateStringid;
privateStringname;
privateStringlink;
privateElemente;
publicTreeNode(Stringid,Stringname,Stringlink,Elemente){
this.id=id;
this.name=name;
this.link=link;
this.e=e;
}

publicStringgetId(){
returnid;
}

publicvoidsetId(StringId){
this.id=Id;
}

publicvoidsetName(StringName){
this.name=Name;
}

publicStringgetName(){
returnname;
}

publicStringtoString(){
returnname;
}

publicStringgetLink(){
returnlink;
}

publicvoidsetLink(Stringlink){
this.link=link;
}

publicElementgetE(){
returne;
}

publicvoidsetE(Elemente){
this.e=e;
}
}


因为一次性从数据库中抓取所有文件夹,不知道这样会不会影响性能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐