/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.jme3.gde.android; import com.jme3.gde.core.importantfiles.ImportantFiles; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import org.netbeans.api.project.Project; import org.openide.filesystems.FileObject; import org.openide.loaders.DataObject; import org.openide.loaders.DataObjectNotFoundException; import org.openide.nodes.Node; import org.openide.util.Exceptions; import org.openide.xml.XMLUtil; import org.w3c.dom.Document; import org.xml.sax.InputSource; /** * * @author normenhansen */ @org.openide.util.lookup.ServiceProvider(service = ImportantFiles.class) public class AndroidImportantFiles implements ImportantFiles { @Override public Node[] getNodes(Project project) { FileObject manifest = project.getProjectDirectory().getFileObject("mobile/AndroidManifest.xml"); String mainActivity = "mobile/src"; if (manifest != null) { InputStream in = null; try { in = manifest.getInputStream(); Document configuration = XMLUtil.parse(new InputSource(in), false, false, null, null); mainActivity = "mobile/src/" + configuration.getDocumentElement().getAttribute("package").replaceAll("\\.", "/") + "/MainActivity.java"; } catch (Exception ex) { Exceptions.printStackTrace(ex); } finally { try { if (in != null) { in.close(); } } catch (IOException ex) { Exceptions.printStackTrace(ex); } } } ArrayList list = new ArrayList(); try { FileObject mainAct = project.getProjectDirectory().getFileObject(mainActivity); if (mainAct != null) { Node node = DataObject.find(mainAct).getNodeDelegate(); node.setDisplayName("Android Main Activity"); list.add(node); } FileObject manif = project.getProjectDirectory().getFileObject("mobile/AndroidManifest.xml"); if (manif != null) { Node node = DataObject.find(manif).getNodeDelegate(); node.setDisplayName("Android Manifest"); list.add(node); } FileObject buildProp = project.getProjectDirectory().getFileObject("mobile/ant.properties"); if (buildProp != null) { Node node = DataObject.find(buildProp).getNodeDelegate(); node.setDisplayName("Android Properties"); list.add(node); } } catch (DataObjectNotFoundException ex) { Exceptions.printStackTrace(ex); } return list.toArray(new Node[list.size()]); } @Override public boolean hasFiles(Project proj) { if (proj.getProjectDirectory().getFileObject("mobile/AndroidManifest.xml") != null) { return true; } return false; } }