Thread: [java-gnome-hackers] event code
Brought to you by:
afcowie
From: Jeffrey M. <Jeffrey.Morgan@BristolWest.com> - 2002-08-13 15:08:09
|
I have just checked very basic code for event handling into cvs. If you check the gtk.Widget class you can see very simple handling for the focus events. This can serve the basis of our dicussion. -Jeff |
From: Rubio Jr. <ser...@hi...> - 2002-08-13 15:29:48
|
Umm, I like it. Another thing, what about adding a setHandler method to GObject? Isn't it a good way of building a new empty object and asing it the native handler? Rubio Jr. El mar, 13-08-2002 a las 17:07, Jeffrey Morgan escribi=F3: > I have just checked very basic code for event handling > into cvs. If you check the gtk.Widget class you can > see very simple handling for the focus events. This > can serve the basis of our dicussion. >=20 > -Jeff |
From: Philip A. C. <pc...@td...> - 2002-08-13 16:14:05
|
Jeff, Thanks for this reference implementation. I do not belive the removeFocusListener will work because a WeakReference was added into the Vector, but a listener is being removed. I've checked in a few changes that should take care of this issue. However, the code changes I've made *should* work as well. I like the idea of using Vector rather than WeakHashMap as the Vector should be thread-safe without extra work Perhaps we need a WeakVector (subclass of Vector) so that the findFocusListener code does not have to be implemented for every single listener Vector we use? What do you think of creating a FocusEvent with a type property. That way, the listener could implement a single method and tell what kind of focus event it received by the type property of the FocusEvent. interface FocusListener { public void focusEventFired(FocusEvent event); } class MyFocusListener extends FocusListener { public void focusEventFired(FocusEvent event) { if (FocusEvent.getType() =3D=3D FocusEventType.GOT_FOCUS()) { // Do Something else if (FocusEvent.getType() =3D=3D FocusEventType.LOST_FOCUS()) { // Do Something different } // Else, I don't want to handle it. } } For this example, it doesn't change much; maybe it even huts some.=20 However, for a "class" of events which have a lot of different types, this may be easier to work with than a lot of different method calls. On Tue, 2002-08-13 at 10:07, Jeffrey Morgan wrote: > I have just checked very basic code for event handling > into cvs. If you check the gtk.Widget class you can > see very simple handling for the focus events. This > can serve the basis of our dicussion. >=20 > -Jeff --=20 Philip A. Chapman |
From: Rubio Jr. <ser...@hi...> - 2002-08-13 16:37:34
|
I like it more. This will make easy to add future focus events, more swing like. Anyway it's just my silly opinion. El mar, 13-08-2002 a las 18:16, Philip A. Chapman escribi=F3: > Jeff, >=20 > Thanks for this reference implementation. >=20 > I do not belive the removeFocusListener will work because a > WeakReference was added into the Vector, but a listener is being > removed. I've checked in a few changes that should take care of this > issue. However, the code changes I've made *should* work as well. I > like the idea of using Vector rather than WeakHashMap as the Vector > should be thread-safe without extra work Perhaps we need a WeakVector > (subclass of Vector) so that the findFocusListener code does not have to > be implemented for every single listener Vector we use? >=20 > What do you think of creating a FocusEvent with a type property. That > way, the listener could implement a single method and tell what kind of > focus event it received by the type property of the FocusEvent. >=20 > interface FocusListener > { > public void focusEventFired(FocusEvent event); > } >=20 > class MyFocusListener > extends FocusListener > { > public void focusEventFired(FocusEvent event) > { > if (FocusEvent.getType() =3D=3D FocusEventType.GOT_FOCUS()) { > // Do Something >=20 > else if (FocusEvent.getType() =3D=3D FocusEventType.LOST_FOCUS()) { > // Do Something different >=20 > } // Else, I don't want to handle it. > } > } >=20 > For this example, it doesn't change much; maybe it even huts some.=20 > However, for a "class" of events which have a lot of different types, > this may be easier to work with than a lot of different method calls. >=20 > On Tue, 2002-08-13 at 10:07, Jeffrey Morgan wrote: > > I have just checked very basic code for event handling > > into cvs. If you check the gtk.Widget class you can > > see very simple handling for the focus events. This > > can serve the basis of our dicussion. > >=20 > > -Jeff > --=20 > Philip A. Chapman |
From: Jeffrey M. <ku...@zo...> - 2002-08-13 18:11:15
|
I like the idea. I want to create a new package to contain the interfaces and the event classes. Perhaps org.gnu.gtk.event. I will create this package, create the event class, update the Widget class and add a few additional events. I will check this updated code in sometime this evening. I need to check off for now. I should be back online late tonight. -Jeff On Tue, 2002-08-13 at 12:16, Philip A. Chapman wrote: > What do you think of creating a FocusEvent with a type property. That > way, the listener could implement a single method and tell what kind of > focus event it received by the type property of the FocusEvent. > > interface FocusListener > { > public void focusEventFired(FocusEvent event); > } > > class MyFocusListener > extends FocusListener > { > public void focusEventFired(FocusEvent event) > { > if (FocusEvent.getType() == FocusEventType.GOT_FOCUS()) { > // Do Something > > else if (FocusEvent.getType() == FocusEventType.LOST_FOCUS()) { > // Do Something different > > } // Else, I don't want to handle it. > } > } > > For this example, it doesn't change much; maybe it even huts some. > However, for a "class" of events which have a lot of different types, > this may be easier to work with than a lot of different method calls. > |