Posted by
L'assegnista on
Apr 12, 2016; 3:20am
URL: http://imagej.273.s1.nabble.com/Adding-keyboard-shortcut-to-toggle-visibility-of-patches-in-TrakEM2-tp5016099p5016103.html
Dear Albert,
thank you very much for your answer, the code works fine (you'll see it at
the bottom of this mail)!
unfortunately however while scrolling back and forth through the sections
it suddenly and randomly stop working; the System Log shows this message
if KeyEvent.VK_1 == keyCode:
NameError: global name 'KeyEvent' is not defined
Running again the script is ineffective, closing and re-opening the canvas
is the only way, but this is very annoying!
Thank you very much for your help, and for your work.
Federico
from java.awt.event import KeyEvent, KeyAdapter
from ini.trakem2.display import Display, Patch
class MyKeyListener(KeyAdapter):
def keyPressed(self, event):
keyCode = event.getKeyCode()
if KeyEvent.VK_1 == keyCode:
for layer in Display.getFront().getLayerSet().getLayers():
patches = layer.getDisplayables(Patch)
for patch in patches:
if "NFL" in patch.title:
if patch.visible == True:
patch.visible = False
else:
patch.visible = True
elif KeyEvent.VK_2 == keyCode:
for layer in Display.getFront().getLayerSet().getLayers():
patches = layer.getDisplayables(Patch)
for patch in patches:
if "GFP" in patch.title:
if patch.visible == True:
patch.visible = False
else:
patch.visible = True
elif KeyEvent.VK_3 == keyCode:
for layer in Display.getFront().getLayerSet().getLayers():
patches = layer.getDisplayables(Patch)
for patch in patches:
if "Ki67" in patch.title:
if patch.visible == True:
patch.visible = False
else:
patch.visible = True
elif KeyEvent.VK_4 == keyCode:
for layer in Display.getFront().getLayerSet().getLayers():
patches = layer.getDisplayables(Patch)
for patch in patches:
if "DCX" in patch.title:
if patch.visible == True:
patch.visible = False
else:
patch.visible = True
Display.getFront().getCanvas().addKeyListener(MyKeyListener())
2016-04-11 21:31 GMT-04:00 Albert Cardona <
[hidden email]>:
> Hi Federico,
>
> Basically, you can create your own KeyListener and attach it to the TrakEM2
> window canvas, and react upon its keyPressed KeyEvent.
>
> The canvas element you can get from Display.getFront().getCanvas().
>
> Would be something like this:
>
> from java.awt import KeyAdapter
>
> class MyKeyListener(KeyAdapter):
> def keyPressed(self, event):
> # Run your code here
> ...
>
> Display.getFront().getCanvas().addKeyListener(MyKeyListener())
>
> Best,
>
> Albert
>
> 2016-04-11 17:05 GMT-04:00 Federico Luzzati <
[hidden email]>:
>
> > Dear List,
> > I'm using TrakEM2 to analyze huge multi-channel confocal reconstructions.
> > I'm
> > importing the channels as separate 8-bit patches with the antigen
> specified
> > within the patch name, apply a LUT with "adjust image filters" and set
> the
> > composite mode to Add.
> > To switch on and off a channel I'm using the "select all that match
> > function". Nonetheless, this method is very slow, and it would be much
> > better if one could define keyboard shortcuts for that.
> > I wrote this simple script to toggle visibility of patches based on their
> > names, but I can't figure out how I could call it from a keyboard
> shortcut
> > inside TraKEM2.
> >
> > Any hint will be greatly appreciated
> > Thank you very much!
> >
> > Federico
> >
> > Here is an example of the script:
> >
> > from ini.trakem2.display import *
> >
> > for layer in Display.getFront().getLayerSet().getLayers():
> > patches = layer.getDisplayables(Patch)
> > for patch in patches:
> > if "DCX" in patch.title:
> > if patch.visible == True:
> > patch.visible = False
> > else:
> > patch.visible = True
> >
> >
> >
> > --
> > Federico Luzzati, PhD
> > Assistant Professor
> > University of Turin,
> > Dept. LIfe Sciences and Systems Biology (DBIOS)
> > Via Accademia Albertina, 13 - 10123 Torino - IT
> >
> > Researcher at
> > Neuroscience Institute Cavalieri Ottolenghi (NICO)
> > Regione Gonzole, 10 - 10043 Orbassano (To) - IT
> >
> > tel. +39-0116704683/ -6631
> >
http://www.nico.ottolenghi.unito.it/index.php/it/adult-neurogenesis> >
> > Sostieni con il tuo 5xmille il NICO e la ricerca sulle malattie
> > neurodegenerative
> > Firma nel riquadro "Finanziamento della ricerca scientifica e
> > dell'Università"
> > CF 97564560015
> >
> > --
> > ImageJ mailing list:
http://imagej.nih.gov/ij/list.html> >
>
>
>
> --
>
http://albert.rierol.net>
http://www.janelia.org/lab/cardona-lab>
http://www.ini.uzh.ch/~acardona/>
> --
> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html>
--
Federico Luzzati, PhD
Assistant Professor
University of Turin,
Dept. LIfe Sciences and Systems Biology (DBIOS)
Via Accademia Albertina, 13 - 10123 Torino - IT
Researcher at
Neuroscience Institute Cavalieri Ottolenghi (NICO)
Regione Gonzole, 10 - 10043 Orbassano (To) - IT
tel. +39-0116704683/ -6631
http://www.nico.ottolenghi.unito.it/index.php/it/adult-neurogenesisSostieni con il tuo 5xmille il NICO e la ricerca sulle malattie
neurodegenerative
Firma nel riquadro "Finanziamento della ricerca scientifica e
dell'Università"
CF 97564560015
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html