SWT CellEditor & Popup

lumo

Top Contributor
ich versuche meinem CellEditor ein popup-fenster anzubinden.
also, sobald der editor gewählt wird, geht ein fenster auf in dem man die werte ändert.
wenn das fenster geschlossen wird (ESC, DEL, ENTER) dann soll der wert zurückgegeben werden, in den editor geschrieben werden und letztendlich der focus vom editor verloren gehn.

klingt einfach, aber beim verlieren des focuses scheiterts bei mir.

das popup besteht bei mir aus einer shell und der editor ist ein text feld.

hat jemand ne lösung, wie ich das umsetzen kann?
habs jetzt schon mit diversen listenern versucht aber immer mit dem selben resultat...
Code:
java.lang.NullPointerException
	at org.eclipse.jface.viewers.ColumnViewerEditor.activateCellEditor(ColumnViewerEditor.java:211)
	at org.eclipse.jface.viewers.ColumnViewerEditor.handleEditorActivationEvent(ColumnViewerEditor.java:444)
	at org.eclipse.jface.viewers.ColumnViewer.triggerEditorActivationEvent(ColumnViewer.java:680)
	at org.eclipse.jface.viewers.ColumnViewer.handleMouseDown(ColumnViewer.java:664)
	at org.eclipse.jface.viewers.ColumnViewer.access$0(ColumnViewer.java:660)
	at org.eclipse.jface.viewers.ColumnViewer$1.mouseDown(ColumnViewer.java:89)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:179)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3880)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473)

ein einfaches beispiel würde mir schon reichen, grad, dass ein leeres popup aufgeht und der wert (kann ruhig fix gecoded sein) zurückgegeben wird...

:autsch:
danke schon mal

EDIT: erwähnenswert ist vielleicht, dass mein ansatz sowohl mit ENTER als auch mit DEL funktioniert, beim ESC scheiterts...
 
EDIT: erwähnenswert ist vielleicht, dass mein ansatz sowohl mit ENTER als auch mit DEL funktioniert, beim ESC scheiterts...

Ohne echten Code kann man wohl wenig sagen: Wie fragst Du denn das "ESC-Event" ab?

Du solltest Dich selbst aber fragen, ob das Schliessen des Fensters mit der WAR ALLES NUR SPASS-ESC-Taste zum Übernehmen des Inhaltes überhaupt sinnvoll ist, da es gegen jede Konvention und Erfahrung des Users spricht:
Üblicherweise werden beim Drücken der ESC-Taste die Daten verworfen (also gar nicht erst ausgewertet).

Das würde Deine null-pointer-exception übrigens auch prima erklären... 😀
 
Ohne echten Code kann man wohl wenig sagen: Wie fragst Du denn das "ESC-Event" ab?

Üblicherweise werden beim Drücken der ESC-Taste die Daten verworfen (also gar nicht erst ausgewertet).

Das würde Deine null-pointer-exception übrigens auch prima erklären... 😀

ich schau mal dass ich ein möglichst kleines standalone programm zusammenbeomme (habs derzeit in nem größeren projekt drin)

bei der ESC taste sollte auch nichts verarbeitet werden...
-> wenn esc gedrückt wird, wird der alte wert beibehalten 😉 (rückgabewert des fensters besteht aus ACCEPT/CANCEL und daten, ergo daten gibts nur wenn accept kommt)
 

Neue Themen


Zurück
Oben