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

来源:互联网 发布:腾讯云 linux pptp 编辑:程序博客网 时间:2024/05/19 17:52

在网上找了相关代码经过修改终于成功啦。

客户端实现代码:

package cn.teamserver.tmp.xmltotree.tree;import java.net.URL;import java.util.List;import org.eclipse.jface.viewers.ILabelProvider;import org.eclipse.jface.viewers.ILabelProviderListener;import org.eclipse.jface.viewers.ITreeContentProvider;import org.eclipse.jface.viewers.TreeViewer;import org.eclipse.jface.viewers.Viewer;import org.eclipse.swt.SWT;import org.eclipse.swt.graphics.Image;import org.eclipse.swt.layout.FillLayout;import org.eclipse.swt.widgets.Composite;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;import org.jdom.Document;import org.jdom.Element;import org.jdom.input.SAXBuilder;public class XMLToTree {    public static void main(String[] args) {        XMLToTree window = new XMLToTree();        window.open();    }    public void open() {        final Display display = new Display();        final Shell shell = new Shell();        shell.setLayout(new FillLayout());        ui(shell);        shell.open();        while (!shell.isDisposed()) {            if (!display.readAndDispatch())                display.sleep();        }    }    private void ui(Shell shell) {        Composite c = new Composite(shell, SWT.NONE);        c.setLayout(new FillLayout());        TreeViewer tv = new TreeViewer(c, SWT.BORDER);        tv.setContentProvider(new ContentProvider());        tv.setLabelProvider(new LableProvider());        tv.setInput(new Object());//设置输入对象的方法与前面相同    }    private static final class ContentProvider implements ITreeContentProvider {    SAXBuilder builder = new SAXBuilder();    Document doc;    Element root;    ContentProvider(){    try{        doc = builder.build(new URL("http://localhost:8080/TeamServer/getTree").openStream());        root = doc.getRootElement();        } catch (Exception ex) {    ex.printStackTrace();    }    }        public Object[] getElements(Object inputElement) {        List list=root.getChildren();            TreeNode obj[] =new TreeNode[list.size()];                        for(int i=0;i 0;        }        public Object getParent(Object element) {            return null;        }        public void dispose() {}        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}    }    private static final class LableProvider implements ILabelProvider {        public Image getImage(Object element) {            return null;        }        public String getText(Object element) {            return ((TreeNode) element).getName();        }        public void addListener(ILabelProviderListener listener) {}        public void dispose() {}        public boolean isLabelProperty(Object element, String property) {            return false;        }        public void removeListener(ILabelProviderListener listener) {}    }}
 
package cn.teamserver.tmp.xmltotree.tree;import org.jdom.Element;public class TreeNode {private String id;private String name;private String link;private Element e;public TreeNode(String id, String name, String link,Element e) {this.id = id;this.name = name;this.link = link;this.e=e;}public String getId() {return id;}public void setId(String Id) {this.id = Id;}public void setName(String Name) {this.name = Name;}public String getName() {return name;}public String toString() {return name;}public String getLink() {return link;}public void setLink(String link) {this.link = link;}public Element getE() {return e;}public void setE(Element e) {this.e = e;}}
 
因为一次性从数据库中抓取所有文件夹,不知道这样会不会影响性能。
原创粉丝点击