Is it a bug or a feature?

Status
Nicht offen für weitere Antworten.

dzim

Top Contributor
Hallo zusammen,

vor einigen Tagen ist mir etwas aufgefallen, dass entweder mich als totalen Blödmann in Sachen Programmierung entlarvt, oder schlicht ein Bug ist.

Folgende Aufgabe:
* Lege DateTime-Widget an (Style-Bit auf Calendar)
* füge Listener mit EventTypeBit SWT.Selection an das Object und beobachte das Verhalten
* das selbe mit expliziten SelectionListener

Meine Beobachtung ist:
* SelectionListener geht, einfacher Listener nicht

Das ist blöd insofern, dass ich primär den einfachen Listener verwende und über den EventTypen festlege, wie ein Widgted damit umzugehen hat. Ich finde das besser, aber das ist wahrscheinlich Geschmackssache.
Kennt ihr das Problem, könnt ihr es überhaupt reproduzieren?
Was ist da eure Erfahrung?
 
V

Vayu

Gast
sollte eigentlich funktionieren, da der TypedListener auch auf SWT.Selection abfragt, bevor er alle SelectionListener informiert

Code:
case SWT.Selection: {
			/* Fields set by Sash */
			SelectionEvent event = new SelectionEvent (e);
			((SelectionListener) eventListener).widgetSelected (event);			
			e.x = event.x;
			e.y = event.y;
			e.doit = event.doit;
			break;
		}
 

dzim

Top Contributor
sollte - ich weiß nicht ob es ein lokales Problem ist, aber es geht halt nicht...
Ich bin mir nicht sicher, woran es genau liegt, fakt ist, es will nicht.

das einzige Problem könnte sein, das explizit die addSelectionListener() implementiert/überschrieben wurde
Code:
public void addSelectionListener (SelectionListener listener) {
	checkWidget ();
	if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
	TypedListener typedListener = new TypedListener (listener);
	addListener (SWT.Selection, typedListener);
	addListener (SWT.DefaultSelection, typedListener);
}
Was vielleicht dafür sorgt, dass beim addListener(eventType,listener) irgendwas schief geht.
Ich weiß, weit hergeholt, aber das ist das einzige, wie ich es mir gerade erklären könnte...
 
V

Vayu

Gast
phew ... sieht eigentlich korrekt aus ... es sei denn du fliegst jedesmal bei checkWidget() raus und kriegst es nicht mit :) dann wird natürlich auch kein Listener geaddet
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben