Posted by
Aryeh Weiss on
URL: http://imagej.273.s1.nabble.com/question-about-Windowmanager-toFront-tp5022379.html
I wish to select a window to be the front window in my display. to do
this I have function called setFrontWin() that checks if the image is
displayed, shows it if needed, and then moves it to the front. I tested
setFrontWin() using the script below, that loops through all of the open
windows and moves them to the front. This works fine.
################################
def setFrontWin(imp):
win = WindowManager.getWindow(imp.getTitle())
if win == None:
imp.show()
win = WindowManager.getWindow(imp.getTitle())
win.toFront()
return win
for w in WindowManager.getImageTitles():
imp = WindowManager.getImage(w)
setFrontWin(imp)
wd=WaitForUserDialog("wait")
wd.show()
#################################
Below is a script where this does not work. I open an image, make a
copy, and then want the original image
to be displayed in front. However, this does not happen -- the copy is
left in front.
The test script above moves these same images as expected, and I cannot
figure out where they are different.
######################
import os
from os import sys, sep, path, makedirs
def open_image():
"""
opens an image, returns an imagePlus object and its name in that order
"""
# Prompt user for the input image file.
print "open_image begin"
op = OpenDialog("Choose input image...", "")
print op.getFileName()
if op.getFileName() == None:
sys.exit('User canceled dialog')
# open selected image and prepare it for analysis
inputName = op.getFileName()
inputDirPath = op.getDirectory()
inputPath = inputDirPath + inputName
# Strip the suffix off of the input image name
if inputName[-4] == ".":
inputPrefix = inputName[:-4] # assumes that a suffix exists
else:
inputPrefix = inputName
#opens image and returns it.
inputImp = ImagePlus(inputPath)
print "open_image finis"
return inputImp, inputPrefix, inputDirPath
def setFrontWin(imp):
win = WindowManager.getWindow(imp.getTitle())
if win == None:
imp.show()
win = WindowManager.getWindow(imp.getTitle())
print win
win.toFront()
return win
fullInputImp, inputPrefix, inputDirPath = open_image()
fullInputImp.show()
print fullInputImp, inputPrefix, inputDirPath
inputImp = fullInputImp.duplicate()
inputImp.show()
inputImp.setTitle(inputPrefix+"_copy")
fullInputImp.setTitle(inputPrefix+"_orig")
setFrontWin(fullInputImp)
#############################
For testing purposes I am using auto-import, and these scripts should be
able to run anywhere.
Where have I gone wrong?
Tnx in advance
--aryeh
--
Aryeh Weiss
Faculty of Engineering
Bar Ilan University
Ramat Gan 52900 Israel
Ph: 972-3-5317638
FAX: 972-3-7384051
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html