<div dir="ltr"><div><div><div>Dear Mark,<br><br></div>Thanks for your help. I used a ImageJ2 command to open the image (the OpenFile.class module) so the display service knows what's the actual display :-) I guess it's a preprocessor issue then... I'm gonna implement my own preprocessor that triggers JavaFX.<br><br></div>The source code is now a bit messy for now but as soon as I get something clean, I will publish it on Github. JavaFx is a great improvement compared to swing that really worth the look. For instance, I will use a Webview associated with Angular JS and a JSON Object Mapper to create a little embedded web app that list of all modules, and display informations about them like input, output etc. I also created some kind of new "special widget" for browsing through N-Dimensional images. I will publish a demo video when it's fully operational ;-)<br><br></div><div>I keep you up ;-)<br></div><div><br></div><div>Cheers everyone,<br><br></div><div>Cyril MONGIS<br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-04-29 15:20 GMT+02:00 Mark Hiner <span dir="ltr"><<a href="mailto:hiner@wisc.edu" target="_blank">hiner@wisc.edu</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi Cyril,<span class=""><br><br>>However, when I want to apply a Gaussian Blur (for instance), the 
software sents back a message telling that the "dataset" input hasn't 
been provided. I guess it's a preprocessor issue.<br><br></span></div>Another possibility is that there actually is no Dataset. A Dataset[1] is an ImageJ2 construct, and by default would not be produced by opening an image with an ImageJ 1.x command. You can ensure a Dataset is available by using an ImageJ2 I/O plugin (e.g. File > Import > Image...) or turn on synchronization[2]. Once we get the synchronization step to be more performant, it will be made automatic.<span class=""><br><div><br>>how is the preprocessing order decided ?<br><br></div></span><div>All Preprocessors[3] are SciJava Plugins, which are accessed in order of priority[4,5]<br></div><span class=""><div><br>>Could you point me to some existing preprocessor that does most of the logic so I don't have to re-implement simple operations ?<br><br></div></span><div>The ActiveDataset preprocessor[6] is what populates single @Dataset parameters. There's also an ImagePlus version[7] for making @ImagePlus work.<br></div><div><br>><a href="http://cyrilmongis.net/img/imagejfx-screenshot.jpg" target="_blank">http://cyrilmongis.net/img/imagejfx-screenshot.jpg</a><br><br></div><div>This is fantastic. Is your source code openly available? I'm interested in JavaFX - for cross-platform distribution more than as a library, but would still be great to see what you're doing.<br><br></div><div>Thanks for keeping us up to date, let us know how it goes and if you run into any more roadblocks (or if any of this is unclear)!<br><br></div><div>Best,<br></div><div>Mark<br></div><div><br>[1] <a href="https://github.com/imagej/imagej-common/blob/imagej-common-0.14.0/src/main/java/net/imagej/Dataset.java" target="_blank">https://github.com/imagej/imagej-common/blob/imagej-common-0.14.0/src/main/java/net/imagej/Dataset.java</a><br>[2] <a href="http://imagej.net/Compatibility#Translation_of_data_structures" target="_blank">http://imagej.net/Compatibility#Translation_of_data_structures</a><br>[3] <a href="https://github.com/scijava/scijava-common/blob/scijava-common-2.40.0/src/main/java/org/scijava/module/process/PreprocessorPlugin.java" target="_blank">https://github.com/scijava/scijava-common/blob/scijava-common-2.40.0/src/main/java/org/scijava/module/process/PreprocessorPlugin.java</a><br>[4] <a href="https://github.com/scijava/scijava-common/blob/scijava-common-2.40.0/src/main/java/org/scijava/plugin/Plugin.java#L129" target="_blank">https://github.com/scijava/scijava-common/blob/scijava-common-2.40.0/src/main/java/org/scijava/plugin/Plugin.java#L129</a><br>[5] <a href="https://github.com/scijava/scijava-common/blob/scijava-common-2.40.0/src/main/java/org/scijava/Priority.java" target="_blank">https://github.com/scijava/scijava-common/blob/scijava-common-2.40.0/src/main/java/org/scijava/Priority.java</a><br>[6] <a href="https://github.com/imagej/imagej-common/blob/imagej-common-0.14.0/src/main/java/net/imagej/display/process/ActiveDatasetPreprocessor.java" target="_blank">https://github.com/imagej/imagej-common/blob/imagej-common-0.14.0/src/main/java/net/imagej/display/process/ActiveDatasetPreprocessor.java</a><br>[7] <a href="https://github.com/imagej/imagej-legacy/blob/master/src/main/java/net/imagej/legacy/plugin/ActiveImagePlusPreprocessor.java" target="_blank">https://github.com/imagej/imagej-legacy/blob/master/src/main/java/net/imagej/legacy/plugin/ActiveImagePlusPreprocessor.java</a><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Wed, Apr 29, 2015 at 3:17 AM, Mongis Cyril <span dir="ltr"><<a href="mailto:cyril.mongis@googlemail.com" target="_blank">cyril.mongis@googlemail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div><div><div><div>Dear all,<br><br></div>I'm actually integrating ImageJ in my PhD project. It leads me to implements a JavaFX UI for ImageJ. Thanks to Curtis's help, I have been able to support image opening and displaying. I'm now facing the issue of triggering the filling of parameters via the UI. My menu is generated via a MenuCreator implementation (the whole MenuCreator structure is a brillant idea by the way, it allowed to integrate the ImageJ Menu in no time !) and call the ShadowMenu.run() for the corresponding module. Applying LUT works  (so I guess that getting the active display works). However, when I want to apply a Gaussian Blur (for instance), the software sents back a message telling that the "dataset" input hasn't been provided. I guess it's a preprocessor issue. I already did some digging about how preprocessor work (from the 
tutorial and from the code that I read), but I lacking explanations 
about the big picture. My main question is  : which approach should I use make Imagej trigger my UI with some kind of auto-generated dialog ? Should I create my own preprocessor or just maybe implements some kind of UI binding used by an already existing preprocessor ? Since applying LUT seems to work, does it means several preprocessor are executed before a command is ran ? If yes, how is the preprocessing order decided ? Could you point me to some existing preprocessor that does most of the logic so I don't have to re-implement simple operations ?<br><br><br></div>I joined a screenshot of the current state of the ImageJ integration :-)<br><a href="http://cyrilmongis.net/img/imagejfx-screenshot.jpg" target="_blank">http://cyrilmongis.net/img/imagejfx-screenshot.jpg</a><br><br></div>Cheers,<br><br></div>Cyril MONGIS<br></div>
<br></div></div>_______________________________________________<br>
ImageJ-devel mailing list<br>
<a href="mailto:ImageJ-devel@imagej.net" target="_blank">ImageJ-devel@imagej.net</a><br>
<a href="http://imagej.net/mailman/listinfo/imagej-devel" target="_blank">http://imagej.net/mailman/listinfo/imagej-devel</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>