Hi Scooter,
Thanks for the suggestion! Since debugging from the command line, I now have it much further along. I am able to startup an app, but it looks to me like the I'm either not accessing the network from my reader properly or my cx files are faulty. I am able to see that a cx format file is recognized and my cyReader is initialized without error. However, when I move in the next step to access the networks from this object, trouble arises. For a brief summary:
Working bit:
App:
InputStream targetStream = new FileInputStream(initialFile);
System.out.println("File Stream loads");
CyNetworkReader cyReader = manager.getReader(targetStream, "cyReader");
System.out.println("CyNetworkReader loads");
Terminal:
>File Stream loads
>niceCX 14 : 16 ms
>CyNetworkReader loads
Trouble:
App:
System.out.println(cyReader);
System.out.println(cyReader.getNetworks());
Terminal:
>org.cytoscape.io.internal.cx_reader.CytoscapeCxNetworkReader@6d6234f2
>null
Could you possibly help me to check that I am setting up my CyReader object properly, and would be accessing my network properly? If so, are there any cx files you are aware of that you are sure would work using the reader? Help with either task would be very much appreciated!
A longer record of my code below:
App:
public class CreateNetworkViewTask extends AbstractTask {
private final CyNetworkFactory cnf;
private final CyNetworkReaderManager manager;
private final CyNetworkViewFactory cnvf;
private final CyNetworkViewManager networkViewManager;
private final CyNetworkManager networkManager;
private final CyNetworkNaming cyNetworkNaming;
public CreateNetworkViewTask(CyNetworkReaderManager manager, CyNetworkNaming cyNetworkNaming, CyNetworkFactory cnf, CyNetworkManager networkManager,
CyNetworkViewFactory cnvf, final CyNetworkViewManager networkViewManager) {
this.cnf = cnf;
this.cnvf = cnvf;
this.manager = manager;
this.networkViewManager = networkViewManager;
this.networkManager = networkManager;
this.cyNetworkNaming = cyNetworkNaming;
}
public void run(TaskMonitor monitor) throws URISyntaxException, FileNotFoundException {
File initialFile = new File("cytoscape_cx_format_version3_draft.json");
InputStream targetStream = new FileInputStream(initialFile);
System.out.println("File Stream loads");
CyNetworkReader cyReader = manager.getReader(targetStream, "cyReader");
System.out.println("CyNetworkReader loads");
//Note this now returns a network, so cyReader isnt empty
System.out.println(cyReader);
//This returns null, so networks are not loaded properly or at least not accesses properly
System.out.println("cyReader.getNetworks()");
System.out.println(cyReader.getNetworks());
//Attempt 1 to load network into view: buildCyNetworkView using getNetworks
CyNetworkView myView = cyReader.buildCyNetworkView(cyReader.getNetworks()[0]);
//Attempt 2 to load network into view: use cyreader on blank net
//CyNetwork myNet = this.cnf.createNetwork();
//CyNetworkView myView = cyReader.buildCyNetworkView(myNet);
System.out.println("BuildCyNetworkView works");
networkViewManager.addNetworkView(myView);
System.out.println("Networkview added to manager");
boolean destroyView = false;
if (destroyView) {
networkViewManager.destroyNetworkView(myView);
}
}
}
Terminal:
File Stream loads
niceCX 13 : 4 ms
CyNetworkReader loads
org.cytoscape.io.internal.cx_reader.CytoscapeCxNetworkReader@1b9962ac
cyReader.getNetworks()
null
java.lang.NullPointerException: null
at org.cytoscape.sample.internal.CreateNetworkViewTask.run(CreateNetworkViewTask.java:110) ~[?:?]
at org.cytoscape.work.internal.task.JDialogTaskManager$TaskRunnable.innerRun(JDialogTaskManager.java:321) ~[!/:?]
at org.cytoscape.work.internal.task.JDialogTaskManager$TaskRunnable.run(JDialogTaskManager.java:352) [!/:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
java.lang.NullPointerException
at org.cytoscape.sample.internal.CreateNetworkViewTask.run(CreateNetworkViewTask.java:110)
at org.cytoscape.work.internal.task.JDialogTaskManager$TaskRunnable.innerRun(JDialogTaskManager.java:321)
at org.cytoscape.work.internal.task.JDialogTaskManager$TaskRunnable.run(JDialogTaskManager.java:352)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Thanks so much as always!
Kyle