Skip to content

Instantly share code, notes, and snippets.

@codenameone
Created February 11, 2016 11:52
Show Gist options
  • Save codenameone/5361ad7339c1ae26e0b8 to your computer and use it in GitHub Desktop.
Save codenameone/5361ad7339c1ae26e0b8 to your computer and use it in GitHub Desktop.
Sample showing off XML Tree UI and XML parsing in Codename One
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);
}
@codenameone
Copy link
Author

Sample usage code for Tree, TreeModel & XMLParser.

From the Codename One project

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment