Created
February 11, 2016 11:52
-
-
Save codenameone/5361ad7339c1ae26e0b8 to your computer and use it in GitHub Desktop.
Sample showing off XML Tree UI and XML parsing in Codename One
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class XMLTreeModel implements TreeModel { | |
private Element root; | |
public XMLTreeModel(Element e) { | |
root = e; | |
} | |
public Vector getChildren(Object parent) { | |
if(parent == null) { | |
Vector c = new Vector(); | |
c.addElement(root); | |
return c; | |
} | |
Vector result = new Vector(); | |
Element e = (Element)parent; | |
for(int iter = 0 ; iter < e.getNumChildren() ; iter++) { | |
result.addElement(e.getChildAt(iter)); | |
} | |
return result; | |
} | |
public boolean isLeaf(Object node) { | |
Element e = (Element)node; | |
return e.getNumChildren() == 0; | |
} | |
} | |
Form hi = new Form("XML Tree", new BorderLayout()); | |
InputStream is = Display.getInstance().getResourceAsStream(getClass(), "/build.xml"); | |
try(Reader r = new InputStreamReader(is, "UTF-8")) { | |
Element e = new XMLParser().parse(r); | |
Tree xmlTree = new Tree(new XMLTreeModel(e)) { | |
@Override | |
protected String childToDisplayLabel(Object child) { | |
if(child instanceof Element) { | |
return ((Element)child).getTagName(); | |
} | |
return child.toString(); | |
} | |
}; | |
hi.add(BorderLayout.CENTER, xmlTree); | |
} catch(IOException err) { | |
Log.e(err); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Sample usage code for Tree, TreeModel & XMLParser.
From the Codename One project