Salut
j'ai une methode :
OnmduleLoad():
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 private Document getXmlData() { greetingService.getCountriesList(new AsyncCallback<String>() { @Override public void onSuccess(String result) { MessageBox.alert(result); xmlDoc = XMLParser.parse(result); } @Override public void onFailure(Throwable caught) { MessageBox.alert(caught.getMessage()); } }); return xmlDoc; }
Codes dans mon service pour recupérer un String xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 Document doc = getXmlData(); // // Element treeNode = doc.getDocumentElement(); // NodeList nodes = treeNode.getChildNodes(); // Tree tree = new Tree(); // TreeNode node = new TreeNode(); Panel panel = new Panel(); panel.setBorder(false); panel.setPaddings(15); final TreePanel treePanel = new TreePanel(); treePanel.setWidth(240); treePanel.setHeight(400); treePanel.setTitle("Editable Tree"); treePanel.setAnimate(true); treePanel.setEnableDD(true); treePanel.setContainerScroll(true); treePanel.setRootVisible(true); final XMLTreeLoader loader = new XMLTreeLoader(); loader.setDataUrl(getXmlData().toString()); loader.setMethod(Connection.GET); loader.setRootTag("countries"); loader.setLeafTag("country"); loader.setAttributeMappings(new String[] { "@title" }); final AsyncTreeNode root = new AsyncTreeNode("Countries", loader); treePanel.setRootNode(root); root.expand(); treePanel.expandAll(); treePanel.addTool(new Tool(Tool.REFRESH, new Function() { public void execute() { treePanel.getEl().mask("Loading", "x-mask-loading"); root.reload(); root.collapse(true, false); Timer timer = new Timer() { @Override public void run() { treePanel.getEl().unmask(); root.expand(true, true); } }; timer.schedule(1000); } }, "Refresh")); TreeEditor treeEditor = new TreeEditor(treePanel); panel = new Panel(); panel.setBorder(false); panel.add(treePanel); RootPanel.get().add(panel);
Dans l'implementation du service je créé un string en format xml. Je tiens a charger un tree a partir ce fichier xml. dans mes codes coté client je convertis le string xml en document.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 List<Object[]> list = new ArrayList<Object[]>(); list.add(new Object[] { "Australia" }); list.add(new Object[] { "Brazil" }); list.add(new Object[] { "Canada" }); list.add(new Object[] { "China" }); list.add(new Object[] { "Germany" }); list.add(new Object[] { "France" }); list.add(new Object[] { "India" }); list.add(new Object[] { "Seychelles" }); list.add(new Object[] { "United States" }); list.add(new Object[] { "Japan" }); list.add(new Object[] { "Italy" }); list.add(new Object[] { "Ghana" }); list.add(new Object[] { "Iceland" }); list.add(new Object[] { "Finland" }); list.add(new Object[] { "Switzerland" }); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = null; try { builder = factory.newDocumentBuilder(); } catch (ParserConfigurationException e4) { e4.printStackTrace(); } DOMImplementation impl = builder.getDOMImplementation(); Document doc = impl.createDocument(null,null,null); if(list != null && list.size() != 0){ Element e1 = doc.createElement("countries"); doc.appendChild(e1); for (Object[] objects : list) { Element e2 = doc.createElement("country"); e1.appendChild(e2); for (Object object : objects) { e2.setAttribute("title",object.toString()); } } } // transform the Document into a String DOMSource domSource = new DOMSource(doc); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = null; try { transformer = tf.newTransformer(); } catch (TransformerConfigurationException e3) { // TODO Auto-generated catch block e3.printStackTrace(); } //transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1"); transformer.setOutputProperty ("{http://xml.apache.org/xslt}indent-amount", "4"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); java.io.StringWriter sw = new java.io.StringWriter(); StreamResult sr = new StreamResult(sw); try { transformer.transform(domSource, sr); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } String xml = sw.toString(); return xml;
Mon probleme est lorsque je fait un debug le fonction getXmlData me retourne un document Null. Donc je n'arrive pas charger le tree. C'est a la fain de mon debug que le service est chargé. Je n'arrive pas à comprendre cela.
Quelqu'un pourra m'aider svp.
Neerou
Partager