Esempio n. 1
0
def field_class_mapping():
    return (
        (J.class_for_name('imagej.display.Display'), FT_IMAGE),
        (J.class_for_name('imagej.data.Dataset'), FT_IMAGE),
        (J.class_for_name('imagej.data.display.DatasetView'), FT_IMAGE),
        (J.class_for_name('imagej.ImageJ'), FT_CONTEXT)
    )
Esempio n. 2
0
def field_class_mapping():
    return (
        (J.class_for_name('imagej.data.display.ImageDisplay'), FT_IMAGE),
        (J.class_for_name('imagej.data.Dataset'), FT_IMAGE),
        (J.class_for_name('imagej.data.display.DatasetView'), FT_IMAGE),
        (J.class_for_name('imagej.data.table.TableDisplay'), FT_TABLE)
    )
Esempio n. 3
0
def field_class_mapping():
    return (
        (J.class_for_name('imagej.display.Display'), FT_IMAGE),
        (J.class_for_name('imagej.data.Dataset'), FT_IMAGE),
        (J.class_for_name('imagej.data.display.DatasetView'), FT_IMAGE),
        (J.class_for_name('imagej.ImageJ'), FT_CONTEXT)
    )
Esempio n. 4
0
def field_class_mapping():
    return (
        (J.class_for_name('imagej.data.display.ImageDisplay'), FT_IMAGE),
        (J.class_for_name('imagej.data.Dataset'), FT_IMAGE),
        (J.class_for_name('imagej.data.display.DatasetView'), FT_IMAGE),
        (J.class_for_name('imagej.data.table.TableDisplay'), FT_TABLE),
        (J.class_for_name('org.scijava.plugin.SciJavaPlugin'), FT_PLUGIN)
    )
Esempio n. 5
0
def get_plugin(classname):
    '''Return an instance of the named plugin'''
    if classname.startswith("ij."):
        cls = J.class_for_name(classname)
    else:
        cls = J.class_for_name(classname, get_user_loader())
    cls = J.get_class_wrapper(cls, True)
    constructor = J.get_constructor_wrapper(cls.getConstructor(None))
    return constructor.newInstance(None)
Esempio n. 6
0
def get_plugin(classname):
    """Return an instance of the named plugin"""
    if classname.startswith("ij."):
        cls = J.class_for_name(classname)
    else:
        cls = J.class_for_name(classname, get_user_loader())
    cls = J.get_class_wrapper(cls, True)
    constructor = J.get_constructor_wrapper(cls.getConstructor(None))
    return constructor.newInstance(None)
Esempio n. 7
0
def get_context():
    '''Get the ImageJ context
    
    This is a singleton ImageJ context. We need a singleton for now because
    of http://trac.imagej.net/ticket/1413
    This is an imagej.ImageJ, which at one point was the context.
    Call self.getContext() to get the org.scijava.Context which may be 
    what you want.
    '''
    global the_imagej_context
    if the_imagej_context is None:
        the_imagej_context = create_context(None)
        #
        # We have to turn off the updater and tell ImageJ to never call
        # System.exit. We have to tell ImageJ that we read the readme file.
        #
        # To Do: programatically turn off the updater and take control of
        #        the quitting and exit process.
        #
        max_value = J.run_script(
            "java.lang.Long.toString(java.lang.Long.MAX_VALUE);")
        prefs = [("imagej.updater.core.UpToDate", "latestNag", max_value),
                 ("imagej.core.options.OptionsMisc", "exitWhenQuitting",
                  "false")]
        plugin_service = the_imagej_context.getService(
            "org.scijava.plugin.PluginService")
        ui_interface = J.class_for_name("imagej.ui.UserInterface")
        script = """
        var result = java.lang.System.getProperty('ij.ui');
        if (! result) {
            var infos = pluginService.getPluginsOfType(ui_interface);
            if (infos.size() > 0) {
                result = infos.get(0).getClassName();
            }
        }
        result;"""
        ui_class = J.run_script(
            script,
            dict(pluginService=plugin_service, ui_interface=ui_interface))
        first_run = "firstRun-" + the_imagej_context.getVersion()
        if ui_class:
            prefs.append((ui_class, first_run, "false"))
        for class_name, key, value in prefs:
            c = J.class_for_name(class_name)
            J.static_call(
                "imagej/util/Prefs", "put",
                "(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)V", c,
                key, value)
    return the_imagej_context
Esempio n. 8
0
def get_context():
    '''Get the ImageJ context
    
    This is a singleton ImageJ context. We need a singleton for now because
    of http://trac.imagej.net/ticket/1413
    This is an imagej.ImageJ, which at one point was the context.
    Call self.getContext() to get the org.scijava.Context which may be 
    what you want.
    '''
    global the_imagej_context
    if the_imagej_context is None:
        the_imagej_context = create_context(None)
        #
        # We have to turn off the updater and tell ImageJ to never call
        # System.exit. We have to tell ImageJ that we read the readme file.
        #
        # To Do: programatically turn off the updater and take control of
        #        the quitting and exit process.
        #
        max_value = J.run_script(
            "java.lang.Long.toString(java.lang.Long.MAX_VALUE);")
        prefs = [
            ("imagej.updater.core.UpToDate", "latestNag", max_value),
            ("imagej.core.options.OptionsMisc", "exitWhenQuitting", "false")]
        plugin_service = the_imagej_context.getService(
            "org.scijava.plugin.PluginService")
        ui_interface = J.class_for_name("imagej.ui.UserInterface")
        script = """
        var result = java.lang.System.getProperty('ij.ui');
        if (! result) {
            var infos = pluginService.getPluginsOfType(ui_interface);
            if (infos.size() > 0) {
                result = infos.get(0).getClassName();
            }
        }
        result;"""
        ui_class = J.run_script(script, dict(pluginService=plugin_service,
                                             ui_interface=ui_interface))
        first_run = "firstRun-"+the_imagej_context.getVersion()
        if ui_class:
            prefs.append((ui_class, first_run, "false"))
        for class_name, key, value in prefs:
            c = J.class_for_name(class_name)
            J.static_call(
                "imagej/util/Prefs", "put",
                "(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)V",
                c, key, value)
    return the_imagej_context
Esempio n. 9
0
 def __init__(self):
     env = jutil.get_env()
     class_name = 'loci/formats/ImageReader'
     klass = env.find_class(class_name)
     base_klass = env.find_class('loci/formats/IFormatReader')
     self.o = jutil.make_instance(
         "loci/formats/ClassList",
         "(Ljava/lang/String;"
         "Ljava/lang/Class;"  # base
         "Ljava/lang/Class;)V",  # location in jar
         "readers.txt",
         base_klass,
         klass)
     problem_classes = [
         # BDReader will read all .tif files in an experiment if it's
         # called to load a .tif.
         #
         'loci.formats.in.BDReader',
         #
         # MRCReader will read .stk files which should be read
         # by MetamorphReader
         #
         'loci.formats.in.MRCReader'
     ]
     for problem_class in problem_classes:
         # Move to back
         klass = jutil.class_for_name(problem_class)
         self.remove_class(klass)
         self.add_class(klass)
Esempio n. 10
0
 def test_03_11_cw_get_constructor(self):
     c = J.get_class_wrapper('java.lang.String')
     sclass = J.class_for_name('java.lang.String')
     constructor = c.getConstructor([sclass])
     self.assertEqual(
         J.call(constructor, 'getName', '()Ljava/lang/String;'),
         'java.lang.String')
Esempio n. 11
0
 def prepare_run(self, workspace):
     """Create an IPD for every url that passes the filter"""
     if workspace.pipeline.in_batch_mode():
         return True
     file_list = workspace.pipeline.file_list
     if self.filter_choice != FILTER_CHOICE_NONE:
         if self.filter_choice == FILTER_CHOICE_IMAGES:
             expression = FILTER_DEFAULT
         else:
             expression = self.filter.value_text
         env = J.get_env()
         ifcls = J.class_for_name("org.cellprofiler.imageset.ImageFile")
         scls = env.find_class("java/lang/String")
         iffilter = J.make_instance(
             "org/cellprofiler/imageset/filter/Filter", "(Ljava/lang/String;Ljava/lang/Class;)V", expression, ifcls
         )
         file_array = env.make_object_array(len(file_list), scls)
         for i, url in enumerate(file_list):
             if isinstance(url, unicode):
                 ourl = env.new_string(url)
             else:
                 ourl = env.new_string_utf(url)
             env.set_object_array_element(file_array, i, ourl)
         passes_filter = J.call(iffilter, "filterURLs", "([Ljava/lang/String;)[Z", file_array)
         file_list = [f for f, passes in zip(file_list, passes_filter) if passes]
     workspace.pipeline.set_filtered_file_list(file_list, self)
     return True
Esempio n. 12
0
 def __init__(self):
     env = jutil.get_env()
     class_name = 'loci/formats/ImageReader'
     klass = env.find_class(class_name)
     base_klass = env.find_class('loci/formats/IFormatReader')
     self.o = jutil.make_instance("loci/formats/ClassList", 
                                  "(Ljava/lang/String;"
                                  "Ljava/lang/Class;" # base
                                  "Ljava/lang/Class;)V", # location in jar
                                  "readers.txt", base_klass, klass)
     problem_classes = [
         # BDReader will read all .tif files in an experiment if it's
         # called to load a .tif.
         #
         'loci.formats.in.BDReader',
         #
         # MRCReader will read .stk files which should be read
         # by MetamorphReader
         #
         'loci.formats.in.MRCReader'
         ]
     for problem_class in problem_classes:
         # Move to back
         klass = jutil.class_for_name(problem_class)
         self.remove_class(klass)
         self.add_class(klass)
Esempio n. 13
0
 def prepare_run(self, workspace):
     '''Create an IPD for every url that passes the filter'''
     if workspace.pipeline.in_batch_mode():
         return True
     file_list = workspace.pipeline.file_list
     if self.filter_choice != FILTER_CHOICE_NONE:
         if self.filter_choice == FILTER_CHOICE_IMAGES:
             expression = FILTER_DEFAULT
         else:
             expression = self.filter.value_text
         env = J.get_env()
         ifcls = J.class_for_name("org.cellprofiler.imageset.ImageFile")
         scls = env.find_class("java/lang/String")
         iffilter = J.make_instance(
             "org/cellprofiler/imageset/filter/Filter",
             "(Ljava/lang/String;Ljava/lang/Class;)V", expression, ifcls)
         file_array = env.make_object_array(len(file_list), scls)
         for i, url in enumerate(file_list):
             if isinstance(url, unicode):
                 ourl = env.new_string(url)
             else:
                 ourl = env.new_string_utf(url)
             env.set_object_array_element(file_array, i, ourl)
         passes_filter = J.call(iffilter, "filterURLs",
                                "([Ljava/lang/String;)[Z", file_array)
         file_list = [
             f for f, passes in zip(file_list, passes_filter) if passes
         ]
     workspace.pipeline.set_filtered_file_list(file_list, self)
     return True
Esempio n. 14
0
 def getIndex(self):
     index = J.call(self.o, "getIndex", "()Limagej/module/ModuleIndex;")
     index = J.get_collection_wrapper(index, wrap_module_info)
     index.getC = lambda c: J.get_collection_wrapper(
         J.call(index.o, "get", "(Ljava/lang/Class;)Ljava/util/List;", c), wrap_module_info
     )
     index.getS = lambda class_name: index.getC(J.class_for_name(class_name))
     return index
Esempio n. 15
0
 def getService(self, class_name):
     """Get a service with the given class name
     
     class_name - class name in dotted form
     
     returns the class or None if no implementor loaded.
     """
     klass = J.class_for_name(class_name)
     return J.call(self.o, "get", "(Ljava/lang/Class;)Lorg/scijava/service/Service;", klass)
Esempio n. 16
0
 def getIndex(self):
     index = J.call(self.o, "getIndex", "()Limagej/module/ModuleIndex;")
     index = J.get_collection_wrapper(index, wrap_module_info)
     index.getC = lambda c: J.get_collection_wrapper(
         J.call(index.o, "get", "(Ljava/lang/Class;)Ljava/util/List;", c
                ), wrap_module_info)
     index.getS = lambda class_name: \
         index.getC(J.class_for_name(class_name))
     return index
Esempio n. 17
0
 def getService(self, class_name):
     '''Get a service with the given class name
     
     class_name - class name in dotted form
     
     returns the class or None if no implementor loaded.
     '''
     klass = J.class_for_name(class_name)
     return J.call(self.o, 'getService', 
                   '(Ljava/lang/Class;)Limagej/service/Service;', klass)
Esempio n. 18
0
 def getActiveImageDisplay(self):
     """Get the active imagej.data.display.ImageDisplay"""
     return wrap_display(
         J.call(
             self.o,
             "getActiveDisplay",
             "()Limagej/display/Display;",
             J.class_for_name("imagej.data.display.ImageDisplay"),
         )
     )
Esempio n. 19
0
 def loadService(self, class_name):
     '''Load the service class with the given class name
     
     You can use this method to pick specific implementations such as
     the headless or Swing UI.
     
     class_name - class name in dotted form, e.g. java.lang.String
     '''
     klass = J.class_for_name(class_name)
     J.call(self.o, 'loadService', '(Ljava/lang/Class;)V', klass)
Esempio n. 20
0
 def test_03_09_cw_get_method(self):
     sclass = J.class_for_name('java.lang.String')
     iclass = J.get_static_field('java/lang/Integer', 'TYPE', 
                                 'Ljava/lang/Class;')
     c = J.get_class_wrapper('java.lang.String')
     m = c.getMethod('charAt', [ iclass ])
     self.assertEqual(J.to_string(J.call(m, 'getReturnType', '()Ljava/lang/Class;')), 'char')
     m = c.getMethod('concat', [ sclass])
     self.assertEqual(J.to_string(J.call(m, 'getReturnType', '()Ljava/lang/Class;')), 
                      'class java.lang.String')
Esempio n. 21
0
 def loadService(self, class_name):
     '''Load the service class with the given class name
     
     You can use this method to pick specific implementations such as
     the headless or Swing UI.
     
     class_name - class name in dotted form, e.g. java.lang.String
     '''
     klass = J.class_for_name(class_name)
     J.call(self.o, 'loadService', '(Ljava/lang/Class;)V', klass)
Esempio n. 22
0
 def getService(self, class_name):
     '''Get a service with the given class name
     
     class_name - class name in dotted form
     
     returns the class or None if no implementor loaded.
     '''
     klass = J.class_for_name(class_name)
     return J.call(self.o, 'getService', 
                   '(Ljava/lang/Class;)Limagej/IService;', klass)
Esempio n. 23
0
 def test_03_09_cw_get_method(self):
     sclass = J.class_for_name('java.lang.String')
     iclass = J.get_static_field('java/lang/Integer', 'TYPE',
                                 'Ljava/lang/Class;')
     c = J.get_class_wrapper('java.lang.String')
     m = c.getMethod('charAt', [iclass])
     self.assertEqual(
         J.to_string(J.call(m, 'getReturnType', '()Ljava/lang/Class;')),
         'char')
     m = c.getMethod('concat', [sclass])
     self.assertEqual(
         J.to_string(J.call(m, 'getReturnType', '()Ljava/lang/Class;')),
         'class java.lang.String')
Esempio n. 24
0
 def __init__(self):
     if service_classes is None:
         classes = None
         ctxt_fn = J.run_script(
             """new java.util.concurrent.Callable() {
                 call: function() {
                     return new Packages.imagej.ImageJ(false);
                 }
             }""")
     else:
         classes = [ 
             J.class_for_name(x) 
             for x in service_classes or REQUIRED_SERVICES]
         classes = J.make_list(classes)
         ctxt_fn = J.run_script(
             """new java.util.concurrent.Callable() {
                 call: function() {
                     return new Packages.imagej.ImageJ(classes);
                 }
             }""", dict(classes = classes.o))
     
     self.o = J.execute_future_in_main_thread(
         J.make_future_task(ctxt_fn))
Esempio n. 25
0
 def __init__(self):
     env = jutil.get_env()
     class_name = "loci/formats/ImageReader"
     klass = env.find_class(class_name)
     base_klass = env.find_class("loci/formats/IFormatReader")
     self.o = jutil.make_instance(
         "loci/formats/ClassList",
         "(Ljava/lang/String;" "Ljava/lang/Class;" "Ljava/lang/Class;)V",  # base  # location in jar
         "readers.txt",
         base_klass,
         klass,
     )
     problem_classes = [
         # BDReader will read all .tif files in an experiment if it's
         # called to load a .tif.
         #
         "loci.formats.in.BDReader"
     ]
     for problem_class in problem_classes:
         # Move to back
         klass = jutil.class_for_name(problem_class)
         self.remove_class(klass)
         self.add_class(klass)
Esempio n. 26
0
        def __init__(self):
            if service_classes is None:
                classes = None
                ctxt_fn = J.run_script("""new java.util.concurrent.Callable() {
                        call: function() {
                            return new Packages.imagej.ImageJ(false);
                        }
                    }""")
            else:
                classes = [
                    J.class_for_name(x)
                    for x in service_classes or REQUIRED_SERVICES
                ]
                classes = J.make_list(classes)
                ctxt_fn = J.run_script(
                    """new java.util.concurrent.Callable() {
                        call: function() {
                            return new Packages.imagej.ImageJ(classes);
                        }
                    }""", dict(classes=classes.o))

            self.o = J.execute_future_in_main_thread(
                J.make_future_task(ctxt_fn))
Esempio n. 27
0
def field_class_mapping():
    return ((J.class_for_name('imagej.data.display.ImageDisplay'),
             FT_IMAGE), (J.class_for_name('imagej.data.Dataset'), FT_IMAGE),
            (J.class_for_name('imagej.data.display.DatasetView'), FT_IMAGE),
            (J.class_for_name('imagej.data.table.TableDisplay'), FT_TABLE))
Esempio n. 28
0
 def getActiveImageDisplay(self):
     '''Get the active imagej.data.display.ImageDisplay'''
     return wrap_display(
         J.call(self.o, "getActiveDisplay",
                "()Limagej/display/Display;",
                J.class_for_name("imagej.data.display.ImageDisplay")))
Esempio n. 29
0
 def test_03_04_cw_get_annotation(self):
     c = J.get_class_wrapper('java.security.Identity')
     annotation = c.getAnnotation(J.class_for_name('java.lang.Deprecated'))
     self.assertTrue(annotation is not None)
Esempio n. 30
0
    'java.lang.Long': FT_INTEGER,
    'int': FT_INTEGER,
    'short': FT_INTEGER,
    'byte': FT_INTEGER,
    'long': FT_INTEGER,
    'java.lang.Float': FT_FLOAT,
    'java.lang.Double': FT_FLOAT,
    'float': FT_FLOAT,
    'double': FT_FLOAT,
    'java.lang.String': FT_STRING,
    'java.lang.Boolean': FT_BOOL,
    'boolean': FT_BOOL,
    'imagej.util.ColorRGB': FT_COLOR
}

field_class_mapping = ((J.class_for_name('imagej.display.Display'), FT_IMAGE),
                       (J.class_for_name('imagej.data.Dataset'), FT_IMAGE),
                       (J.class_for_name('imagej.data.roi.Overlay'),
                        FT_OVERLAY))


def run_imagej(*args):
    J.static_call("imagej/Main", "main", "([Ljava/lang/String;)V",
                  *[unicode(arg) for arg in args])


def create_planar_img(a):
    '''Create a PlanarImg from a numpy array
    
    a - numpy array. The values should be scaled to be between 0 and 255
    
Esempio n. 31
0
 def __init__(self):
     classes = [J.class_for_name(x) for x in service_classes]
     self.o = J.run_in_main_thread(
         lambda: J.static_call("imagej/ImageJ", "createContext",
                               "([Ljava/lang/Class;)Limagej/ImageJ;",
                               classes), True)
Esempio n. 32
0
 def __init__(self):
     classes = [ J.class_for_name(x) for x in service_classes]
     self.o = J.run_in_main_thread(
         lambda :J.static_call(
         "imagej/ImageJ", "createContext", 
         "([Ljava/lang/Class;)Limagej/ImageJ;", classes), True)
Esempio n. 33
0
def field_class_mapping():
    return ((J.class_for_name('imagej.data.display.ImageDisplay'),
             FT_IMAGE), (J.class_for_name('imagej.data.Dataset'), FT_IMAGE),
            (J.class_for_name('imagej.data.display.DatasetView'), FT_IMAGE),
            (J.class_for_name('imagej.data.table.TableDisplay'), FT_TABLE),
            (J.class_for_name('org.scijava.plugin.SciJavaPlugin'), FT_PLUGIN))
Esempio n. 34
0
 def test_01_11_class_for_name(self):
     c = J.class_for_name('java.lang.String')
     name = J.call(c, 'getCanonicalName', '()Ljava/lang/String;')
     self.assertEqual(name, 'java.lang.String')
Esempio n. 35
0
 def test_03_04_cw_get_annotation(self):
     c = J.get_class_wrapper('java.security.Identity')
     annotation = c.getAnnotation(J.class_for_name('java.lang.Deprecated'))
     self.assertTrue(annotation is not None)
Esempio n. 36
0
 def test_01_11_class_for_name(self):
     c = J.class_for_name('java.lang.String')
     name = J.call(c, 'getCanonicalName', '()Ljava/lang/String;')
     self.assertEqual(name, 'java.lang.String')
Esempio n. 37
0
 def test_03_11_cw_get_constructor(self):
     c = J.get_class_wrapper('java.lang.String')
     sclass = J.class_for_name('java.lang.String')
     constructor = c.getConstructor([sclass])
     self.assertEqual(J.call(constructor, 'getName', '()Ljava/lang/String;'),
                      'java.lang.String')
Esempio n. 38
0
    'int': FT_INTEGER,
    'short': FT_INTEGER,
    'byte': FT_INTEGER,
    'long': FT_INTEGER,
    'java.lang.Float': FT_FLOAT,
    'java.lang.Double': FT_FLOAT,
    'float': FT_FLOAT,
    'double': FT_FLOAT,
    'java.lang.String': FT_STRING,
    'java.lang.Boolean': FT_BOOL,
    'boolean': FT_BOOL,
    'imagej.util.ColorRGB': FT_COLOR
}

field_class_mapping = (
    (J.class_for_name('imagej.display.Display'), FT_IMAGE),
    (J.class_for_name('imagej.data.Dataset'), FT_IMAGE),
    (J.class_for_name('imagej.data.roi.Overlay'), FT_OVERLAY) )

def run_imagej(*args):
    J.static_call("imagej/Main", "main", "([Ljava/lang/String;)V",
                  *[unicode(arg) for arg in args])

def create_planar_img(a):
    '''Create a PlanarImg from a numpy array
    
    a - numpy array. The values should be scaled to be between 0 and 255
    
    returns a PlanarImg of double valueswith the same dimensions as the array.
    '''
    a = a.astype(np.float64)