Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Where is a list of eventtypes for listeners?

Asked by Matt Fig

Matt Fig (view profile)

on 11 Dec 2012
Latest activity Answered by Jim Hokanson

Jim Hokanson (view profile)

on 11 Feb 2015 at 21:25

Usually I think MATLAB has excellent documentation, but there are occasions when I have to pull my hair out looking for something. So when referring to this example solution posted by TMW, it seems we can add an eventlistener to a uicontrol with an eventtype of 'ActionEvent'. But when I use this example I get the following warning message in r2011b:

Warning: The specified event will be removed in a future release.
Please use the following event instead: ContinuousValueChange

So the obvious question is:

What are all of the choices when setting eventtypes for listeners?

I have searched everywhere I can think of for a list of such events but found nothing. Is this yet another instance of non-documentation in MATLAB or have I just not been able to find it?

Does anyone know of such a list in the doc? I want to find something like this list of axes properties but for events or listeners. On that list would be 'ActionEvent' and 'ContinuousValueChange' at least.

3 Comments

Daniel

Daniel (view profile)

on 12 Dec 2012

I cannot even find documentation on handle.listener. I wonder if this is a result of undocumented functionality associated with hg2.

Jan Simon

Jan Simon (view profile)

on 12 Dec 2012

The addlistener command works for many years now, so it is not connected to HG2. The M-file contains some documentation, but you do not find it in the docs, as far as I remember.

Vishal Rane

Vishal Rane (view profile)

on 27 Aug 2013

Matt, did you find any list or documentation for this?

Matt Fig

Matt Fig (view profile)

Products

No products are associated with this question.

2 Answers

Answer by Jim Hokanson

Jim Hokanson (view profile)

on 11 Feb 2015 at 21:25

For hg1, events can be found tin the schema.class object

h = uicontrol('style','slider')
class_info = classhandle(handle(h))
events = class_info.Events;
   event_names_local = cell(1,length(events));
   for iEvent = 1:length(events)
       event_names_local{iEvent} = events(iEvent).Name;
   end

For hg2, things are much easier, just reference the metaclass

class_info = metaclass(graphics_handle);
event_names_local = {class_info.EventList.Name};

'ActionEvent' is an event in the schema.class (UDD)

'ContinuousValueChange' is an event in hg2

I have no idea where to find a list of newer events (i.e. ContinuousValueChange when using hg1)

To be a bit more thorough, one could also examine the accompanying Java object using findjobj (FEX). Then you would need to search for properties with a 'Callback' with an accompanying 'CallbackData'

http://undocumentedmatlab.com/blog/matlab-callbacks-for-java-events

Note, one would also want to examine the properties for ones that are observable. This should be fairly straightforward using a similar approach as was used for events.

Jim

0 Comments

Jim Hokanson

Jim Hokanson (view profile)

Answer by Malcolm Lidierth

Malcolm Lidierth (view profile)

on 26 May 2013

@Matt

As the uicontrols use Java under the hood, see the available Java listeners at

http://docs.oracle.com/javase/tutorial/uiswing/events/api.html

The link above is now broken but I'll guess the UI was a slider or something of that sort which calls a stateChange rather than event listener.

MATLAB collapse these into their 'Callback'. I have always preferred to stick with documented components - so I use Java for GUIs in MATLAB not MATLAB uicontrols. TMW may not document them, but Sun/Oracle do of course.

4 Comments

Malcolm Lidierth

Malcolm Lidierth (view profile)

on 26 May 2013

@IA

There are two links, the first does not work: at least insofar that it now only brings up a page that says "Oops". So its broken according to the formal definition of the term given here:

http://www.mathworks.com/support/solutions/en/data/1-3SR0YI/index.html?solution=1-3SR0YI

!

Image Analyst

Image Analyst (view profile)

on 26 May 2013

I only saw one link that you listed - the one at docs.oracle.com, and clicking on it brings up a page that says

"Listener API Table

In the table that follows, the first column gives...."

Malcolm Lidierth

Malcolm Lidierth (view profile)

on 26 May 2013

IA

Oops. I meant the OPs first link. Probably best to break this LOop.

Malcolm Lidierth

Malcolm Lidierth (view profile)

Contact us