Posted by
Michael Strupp on
Jun 23, 2009; 5:01pm
URL: http://imagej.273.s1.nabble.com/dragging-an-big-image-tp3691912p3691916.html
Hello mailing list readers.
Thank you for your help respectively interest. I implemented the thread, which watches if the user is dragging the image, but I cannot find the right command in imagej to move the image.
I added the functionality explained in my first mail and now I need the basic functionality, that the scrolling tool(hand) normally has in imagej. Is there a way to call this functionality explicitly?
@Prodanov Dimiter: I have to ask my employer, if I can give you the source files. I will write you soon...
Kind regards, Michael
-------- Original-Nachricht --------
> Datum: Mon, 22 Jun 2009 18:18:30 +0200
> Von: Michael Schmid <
[hidden email]>
> An:
[hidden email]
> Betreff: Re: dragging an big image
> Hi Michael,
>
> you need a listener to 'mouse dragged' events and a second background
> thread that moves the image and loads the missing parts (interface
> Runnable).
> Here is a rough concept:
>
> public class LargeImageViewer implements MouseListener,
> MouseMotionListener, Runnable {
> //Class vars
> x0, y0; //position of mouse down
> deltaX, deltaY; //how much the image has been dragged
> Thread backgroundThread;
>
> in constructor (or setup if plugin):
> get foreground image, get canvas thereof
> canvas.addMouseListener(this);
> canvas.addMouseMotionListener(this);
>
> destructor, mouseReleased, close or whereever:
> canvas.removeMouseListener(this);
> canvas.removeMouseMotionListener(this);
>
> public void MouseDragged(MouseEvent e) {
> deltaX = e.getX()-x0;
> deltaY = e.getY()-y0;
> synchronized(this) {notify();}
> }
>
> public void mousePressed ...
> record x0, y0
> backgroundThread = new Thread(this, "ImageDragger");
> backgroundThread.start();
>
>
> public void mouseReleased ...
> backgroundThread.interrupt();
>
> public void run() {
> while (true) { //i.e., while mouse down
> update display(deltaX, deltaY);
> synchronized(this) {
> try {wait();}
> catch(InterruptedException) {return;}
> }
> }
> }
>
> Michael
> ________________________________________________________________
>
> On 22 Jun 2009, at 16:49, Michael Strupp wrote:
>
> > Hello ImageJ community
> >
> > I'm writing a plugin for imagej, to view some images that are much
> > larger than the windowsize and the RAM. The plugin only loads the
> > parts of the image which are currently displayed in the viewer. I
> > overwrote the drag tool from imagej to navigate, so I can see all
> > parts of the image, which get loaded after the user navigated.
> > This all works fine so far, but now I want to improve the usability
> > of the plugin. The problem is, that the image does not move while
> > the user drags the image, instead it waits some seconds and then
> > the new image part gets shown.
> >
> > I hope some people here have experience with such a problem.
> >
> > Kind regards,
> > Michael
--
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter
http://portal.gmx.net/de/go/maxdome01