Hi Curtis, Thank you for the additional information.
It seems that Avital's problem was related to compiling, not to the patches of the IJ1 code in Fiji. Concerning the 'Compile&Run' command, this is EXTREMELY handy and it would be a major step backwards if this is not supported any more! If I get the java sources of a plugin, and it does not work exactly as I want, I can quickly try any changes that come into my mind or insert debugging code, try/catch statements, etc., and with a single click on Compile&Run (and the RETURN key to accept the same filename as before) I am already testing it on an image. This is independent of any programming environment, I can do it on any computer anywhere in a lab, or on the laptop of a colleague of mine who has a problem and asks me for help. And there won't be any automatic update reverting it to the published version. Also, for publishing a plugin, it's simpler to provide the java code on a web page with the description than preparing an ImageJ update site in addition. I can also send experimental plugin code to others by email, carry it around on a USB stick, etc. All this would be gone without Compile&Run! Best regards, Michael ________________________________________________________________ On May 28, 2015, at 20:42, Curtis Rueden wrote: > Hi Michael, > > [Added the imagej-devel mailing list to CC, since this discussion may > interest other ImageJ plugin developers.] > > > A quick search for PlugInFilterRunner in the ij1-patcher seems to > > indicate that the PlugInFilterRunner is not patched. > > There is another project on top of ij1-patcher that does the bulk of the > actual patching for ImageJ2: > > https://github.com/imagej/imagej-legacy > > And it does have logic that affects PlugInFilters: > > > https://github.com/imagej/imagej-legacy/blob/imagej-legacy-0.15.0/src/main/java/net/imagej/legacy/IJ1Helper.java#L591-L621 > > But at first glance, this is only used for the Script Editor's Run command in > case the Java code being run is a PlugInFilter: > > > https://github.com/imagej/imagej-legacy/blob/imagej-legacy-0.15.0/src/main/java/net/imagej/legacy/LegacyJavaRunner.java#L54 > > I apologize that I will not have time to dig into this issue more over the > summer -- but I'm insanely busy with work on the ImageJ Common data model and > ImageJ OPS and SCIFIO APIs, ImageJ-OMERO integration, IT infrastructure > resources and Fiji plugin maintenance, upcoming Madison ImageJ conference > planning, paper writing, etc. > > Backwards compatibility with ImageJ1 is extremely challenging, especially as > things continue to evolve -- e.g., the major changes to how Java works on OS > X, and the breaking changes of Java 8. The best we can do right now is to > prioritize work that critically affects a large number of ImageJ users, where > no easy workaround is possible. In the case of compiling Java plugins, there > are several ways of doing it that do not require "Compile and Run" and > similar, so for now that's what I'll recommend. I hope that plugin developers > will make installation easy for their users by creating ImageJ update sites, > rather than shipping bare .java files. > > Regards, > Curtis > > P.S. When searching for code, you might try http://search.imagej.net/ and > click the GitHub button. > > > On Thu, May 21, 2015 at 3:01 PM, Michael Schmid <sch...@iap.tuwien.ac.at> > wrote: > Hi Curtis, > > thank you! > My fault was looking at the fiji, not the imagej repository. > > A quick search for PlugInFilterRunner in the ij1-patcher seems to indicate > that the PlugInFilterRunner is not patched. > I agree that the ij1-patcher is not easy too understand, and I did not find > anything that looks like it could cause the problem of Avital. > > Michael > ________________________________________________________________ > Michael Schmid email: sch...@iap.tuwien.ac.at > Institut für Angewandte Physik, Technische Universität Wien > Wiedner Hauptstr. 8-10/E134, A 1040 Wien, Austria > Tel. +43 1 58801-13452 or -13453, Fax +43 1 58801 13499 > ________________________________________________________________ > > On May 21, 2015, at 21:23, Curtis Rueden wrote: > > > Hi Michael, > > > > > [I must admit, I know nothing about how Fiji modifies ImageJ; in a > > > quick search I did not find anything on fiji.sc or the github] > > > > The relevant project is: > > https://github.com/imagej/ij1-patcher/ > > > > But digging into it is a substantial endeavor. > > > > Regards, > > Curtis > > > > On Thu, May 21, 2015 at 1:35 PM, Michael Schmid <sch...@iap.tuwien.ac.at> > > wrote: > > Hi Wayne, > > > > thank you for finding this out! > > > > It must be a strange Fiji bug! When called like this, the Versatile Wand > > behaves like an ordinary ExtendedPlugInFilter. It uses the ImagePlus passed > > to the showDialog method, which comes directly from > > WindowManager.getCurrentImage() executed by the PlugInFilterRunner. > > > > [I must admit, I know nothing about how Fiji modifies ImageJ; in a quick > > search I did not find anything on fiji.sc or the github] > > > > Best regards, > > > > Michael > > ________________________________________________________________ > > Michael Schmid email: sch...@iap.tuwien.ac.at > > Institut für Angewandte Physik, Technische Universität Wien > > Wiedner Hauptstr. 8-10/E134, A 1040 Wien, Austria > > Tel. +43 1 58801-13452 or -13453, Fax +43 1 58801 13499 > > ________________________________________________________________ > > > > On May 21, 2015, at 18:54, Rasband, Wayne (NIH/NIMH) [E] wrote: > > > > > Dear Avital, > > > > > > This is a Fiji issue. You should be able to work around it by deleting > > > the file “Versatile_Wand.java" (location is shown in Console error > > > messages), copying Versatile_Wand.class into the Fiji.app/plugins folder, > > > and restarting Fiji. I have attached a copy of Versatile_Wand.class or > > > you can download it from the Versatile Wand webpage. > > > > > > Best regards, > > > > > > -wayne > > > > > > > > >> On May 21, 2015, at 3:03 AM, Avital Steinberg > > >> <steinbergavi...@gmail.com> wrote: > > >> > > >> Hi Wayne, > > >> When I run your code (in which you create 2 images), I get an error > > >> message - ROI manager, "the active image does not have a selection". > > >> Also, it didn't form an ROI - the ROI manager is empty. > > >> > > >> There is also a console window that shows red warnings - I've had it for > > >> a long time, ever since I upgraded imageJ. This console shows up both on > > >> my mac and also on my Linux machine. I don't remember when it first > > >> showed up. It didn't bother me, since everything was working then. > > >> > > >> Are the attached warning messages related to the problem? > > >> > > >> Thanks, > > >> Avital > > >> > > >> On Wed, May 20, 2015 at 6:42 PM, Rasband, Wayne (NIH/NIMH) [E] > > >> <rasba...@mail.nih.gov> wrote: > > >> Dear Avital, > > >> > > >> The following version of your test macro creates a selection in the > > >> saved image. > > >> > > >> Best regards, > > >> > > >> -wayne > > >> > > >> setBatchMode(true); > > >> newImage("Untitled", "8-bit ramp", 500, 500, 1); > > >> image1ID = getImageID(); > > >> newImage("Untitled", "8-bit ramp", 500, 500, 1); > > >> image2ID = getImageID(); > > >> selectImage(image1ID); > > >> if(isActive(image1ID)) > > >> print("The first image is active"); > > >> else > > >> print("The first image isn't active"); > > >> if (isActive(image2ID)) > > >> print("The second image is active"); > > >> else > > >> print("The second image isn't active"); > > >> run("Gaussian Blur...", "sigma=2"); > > >> run("Set Scale...", "distance=0"); > > >> run("Versatile Wand", "value=60 color=-100 gradient=10 > > >> connectedness=8-connected x=2 y=2 do"); > > >> run("ROI Manager..."); > > >> roiManager("Add"); > > >> saveAs("tiff", getDirectory("home")+"test.tif”) > > >> > > >> > > >>> On May 20, 2015, at 5:35 AM, Avital Steinberg > > >>> <steinbergavi...@gmail.com> wrote: > > >>> > > >>> Thanks, but the problem isn't solved. Can anyone else check if they're > > >>> having similar problems running this code? Does this code create a > > >>> selection in the saved image also for you? > > >>> > > >>> setBatchMode(true); > > >>> open(); > > >>> image1ID = getImageID(); > > >>> open(); > > >>> image2ID = getImageID(); > > >>> selectImage(image1ID); > > >>> if(isActive(image1ID)){ > > >>> print("The first image is active"); > > >>> } > > >>> else { > > >>> print("The first image isn't active"); > > >>> } > > >>> > > >>> if(isActive(image2ID)){ > > >>> print("The second image is active"); > > >>> } > > >>> else { > > >>> print("The second image isn't active"); > > >>> } > > >>> makePoint(1854, 726); > > >>> run("Gaussian Blur...", "sigma=2"); > > >>> run("Set Scale...", "distance=0"); > > >>> run("Versatile Wand", "value=60 color=-100 gradient=10 > > >>> connectedness=8-connected x=2 y=2 do"); > > >>> run("ROI Manager..."); > > >>> roiManager("Add"); > > >>> saveAs("Tiff"); > > >>> > > >>> > > >>> I am using ImageJ 1.49t7, which came with Java 1.6.0_065 (64 bit). I am > > >>> running it on a mac, but I had the same problems also on a Linux machine > > >>> with ImageJ 1.49s and java 1.6.0_24. > > >>> > > >>> MakePoint isn't needed, but it's besides the point, since the bug has > > >>> nothing to do with it and exists also without it. > > >>> > > >>> Thanks, > > >>> Avital > > >>> > > >>> On Tue, May 19, 2015 at 6:25 PM, Michael Schmid > > >>> <sch...@iap.tuwien.ac.at> > > >>> wrote: > > >>> > > >>>> Hi Avital, > > >>>> > > >>>> sorry, I can't reproduce the problem. Your macro works; it blurs the > > >>>> first > > >>>> image and does the wand selection on it. I also get the selection in > > >>>> the > > >>>> ROI Manager. > > >>>> I tried with both 8-bit grayscale as well as RGB images. > > >>>> > > >>>> What I don't understand is the "makePoint(1854, 726)" command; Gaussian > > >>>> Blur does not care about point selections. So it blurs the whole image. > > >>>> > > >>>> I am using ImageJ 1.49u4, Java 1.6.0_45. > > >>>> > > >>>> Michael > > >>>> ________________________________________________________________ > > >>>> On May 19, 2015, at 17:01, Avital Steinberg wrote: > > >>>> > > >>>>> Hi, > > >>>>> I'm trying to use Versatile Wand in batch mode. The following macro > > >>>>> works > > >>>>> well in batch mode: > > >>>>> > > >>>>> setBatchMode(true); > > >>>>> open(); > > >>>>> makePoint(1854, 726); > > >>>>> run("Gaussian Blur...", "sigma=2"); > > >>>>> run("Set Scale...", "distance=0"); > > >>>>> run("Versatile Wand", "value=60 color=-100 gradient=10 > > >>>>> connectedness=8-connected x=2 y=2 do"); > > >>>>> run("ROI Manager..."); > > >>>>> roiManager("Add"); > > >>>>> saveAs("Tiff"); > > >>>>> > > >>>>> However - when I try to work with multiple images, select the active > > >>>> image > > >>>>> and then use the Versatile Wand, no selection is created: > > >>>>> > > >>>>> setBatchMode(true); > > >>>>> open(); > > >>>>> image1ID = getImageID(); > > >>>>> open(); > > >>>>> image2ID = getImageID(); > > >>>>> selectImage(image1ID); > > >>>>> if(isActive(image1ID)){ > > >>>>> print("The first image is active"); > > >>>>> } > > >>>>> else { > > >>>>> print("The first image isn't active"); > > >>>>> } > > >>>>> > > >>>>> if(isActive(image2ID)){ > > >>>>> print("The second image is active"); > > >>>>> } > > >>>>> else { > > >>>>> print("The second image isn't active"); > > >>>>> } > > >>>>> makePoint(1854, 726); > > >>>>> run("Gaussian Blur...", "sigma=2"); > > >>>>> run("Set Scale...", "distance=0"); > > >>>>> run("Versatile Wand", "value=60 color=-100 gradient=10 > > >>>> connectedness=8-connected x=2 y=2 do"); > > >>>>> run("ROI Manager..."); > > >>>>> roiManager("Add"); > > >>>>> saveAs("Tiff"); > > >>>>> > > >>>>> Why wouldn't this script work? Only one image is active. > > >>>>> > > >>>>> Thank you, > > >>>>> Avital > > >>>> > > >>>> -- > > >>>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html > > >>>> > > >>> > > >>> -- > > >>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html > > >> > > >> > > >> <OutputWindowsWaynesCode.jpg><ConsoleWindowRedWarnings.jpg> > > > > > > <Versatile_Wand.class> > > > > > > _______________________________________________ ImageJ-devel mailing list ImageJ-devel@imagej.net http://imagej.net/mailman/listinfo/imagej-devel