Re: Argument not passed to PluginFilter

Posted by Michael Schmid on
URL: http://imagej.273.s1.nabble.com/Argument-not-passed-to-PluginFilter-tp5019166p5019169.html

Hi Iain,

another way of retrieving an argument from a macro or 'IJ.run' call
would be a generic dialog; also IJ.getString(String prompt, String
defaultString) is one:

E.g. in the PlugInFilter you could have
   name = IJ.getString("File Name", "");

and you could call the PlugInFilter by
   IJ.run("My PlugInFilter Name", "file=myDatafile.dat");

[in a macro, omit the 'IJ.']

The keyword in the list of arguments is the first word of the prompt,
converted to lower case. Put square brackets around the argument after
the '=' if it can contain whitespace.

You can also use a file open dialog in the PlugInFilter and supply the
full path in the argument String.

In both cases, if you run the plugin manually, the macro recorder will
help you to form the correct call for a macro or IJ.run command.
(I wrote this without trying it, so if it does not work, use the command
recorder).

By the way, the 'arg' of public int setup(String arg, ImagePlus imp) can
be specified only if you pack a PligIn or PlugInFilter into a .jar file;
the plugins.config file in the .jar can specify to have more than one
menu command for the PlugIn, with different (fixed) values of 'arg'.
based on the 'arg' value, the PlugIn then knows what function to
perform. [1]


Michael

[1] https://imagej.nih.gov/ij/plugins/jar-demo.html
     https://imagej.net/Developing_Plugins_for_ImageJ_1.x
________________________________________________________________
On 04/08/2017 16:19, Salim Kanoun wrote:

> You have to get the argument with this command
>
> Macro.getOptions()
>
> As explained here :
> http://imagejdocu.tudor.lu/doku.php?id=howto:plugins:retrieving_the_optional_args_when_a_plugin_is_called_from_a_macro
>
>
> 2017-08-04 15:23 GMT+02:00 Iain Marcuson <[hidden email]
>> :
>
>> I am attempting to call a PluginFilter from a Plugin.
>>
>> I call the PluginFilter with
>> outfile = tf_back_sub_filename.getText();
>> IJ.showMessage(outfile);
>> IJ.run("Gradient Subtract Auto", outfile);
>>
>> The showMessage() verifies that outfile is correct and not empty or null.
>>
>> The setup function of the PluginFilter is:
>>
>> public int setup(String arg, ImagePlus imp) {
>>          this.imp = imp;
>>          back_filename = arg;
>>          IJ.showMessage("back_filename is \"" + back_filename + "\"\narg is
>> \""+arg+"\"");
>>          return DOES_32;
>> }
>>
>> However, the showMessage indicates that arg and back_filename are both
>> empty.
>>
>> Is there something I am missing?
>>
>> Thank you,
>>
>> Iain.
>>
>> --
>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html