Thread overview
SelectionListener called twice
Nov 13, 2009
Mitja
Nov 13, 2009
Mitja
Nov 14, 2009
Frank Benoit
Nov 16, 2009
Mitja
November 13, 2009
SelectionListener for calendar is called twice after button has been pressed. You have to select other than today's date first.
I want for the listener to trigger only once.

What am I doing wrong?


November 13, 2009
Mitja Wrote:

> SelectionListener for calendar is called twice after button has been pressed. You have to select other than today's date first.
> I want for the listener to trigger only once.
> 
> What am I doing wrong?
> 
module datetime;

import Clock = tango.time.Clock;
import tango.io.Stdout;

import dwt.DWT;
import dwt.widgets.Button;
import dwt.widgets.Shell;
import dwt.widgets.Display;
import dwt.widgets.DateTime;
import dwt.layout.GridLayout;
import dwt.widgets.Listener;
import dwt.widgets.Event;
import dwt.events.SelectionAdapter;
import dwt.events.SelectionEvent;

void main()
{
    Display display = new Display;
    Shell shell = new Shell(display);
    shell.setLayout(new GridLayout(1, false));

    DateTime calendar = new DateTime(shell, DWT.CALENDAR);

    calendar.addSelectionListener(new class(calendar) SelectionAdapter
    {
	DateTime cal;
	this(DateTime cal)
	{
	    this.cal = calendar;
	}
	public void widgetSelected(SelectionEvent e)
	{
	    Stdout("selected").newline;
	}
    });

    Button b = new Button(shell, DWT.NONE);
    b.setText("TODAY");

    b.addListener(DWT.Selection, new class(calendar) Listener
    {
	DateTime cal;
	this(DateTime d)
	{
	    this.cal = calendar;
	}
	public void handleEvent(Event event)
	{
	    auto date = Clock.Clock().toDate.date;
	    this.cal.setDate(date.year, date.month - 1, date.day);
	}
    });

    shell.open;
    while(!shell.isDisposed)
    {
	if(!display.readAndDispatch)
	    display.sleep;
    }
    display.dispose;
}

November 14, 2009
Windows/Linux/Mac ?
Please provide more information.
I tried it on winxp with no problem.
November 16, 2009
Linux 2.6.18-5-686 Debian Lenny
DMD v1.033
Tango 0.99.7
DWT 3.4-1

Frank Benoit Wrote:

> Windows/Linux/Mac ?
> Please provide more information.
> I tried it on winxp with no problem.