Autocomplete of properties for hgsetget derived class

2 visualizaciones (últimos 30 días)
Oleg Komarov
Oleg Komarov el 28 de Jun. de 2014
Comentada: James el 2 de Oct. de 2014
DESIRED BEHAVIOUR
If you create:
h = uicontrol('style','edit');
Then if you type
h.<tab>
and then select 'HorizontalAlignment', you can again < tab > to get a list of alignment options.
Alternatively, with
set(h, 'HorizontalAlignment', ' <tab> ...
ATTEMPT TO REPRODUCE IT
I am wondering if there is a way to take advantage of this behaviour for user defined classes of the type hgsetget
I tried
classdef foo < hgsetget
properties
HorizontalAlignment
end
end
Then in a separate folder, i.e. .\+foo\, I created and enumerator
classdef HorizontalAlignment
enumeration
left
center
right
end
end
but to no avail.
I tried several things, like defining a set.HorizontalAlignment(obj,val) mnethod which then calls the foo.HorizontalAlignment class, still no way to get the autocomplete.
Anybody has hints?

Respuesta aceptada

Oleg Komarov
Oleg Komarov el 9 de Jul. de 2014
Editada: Oleg Komarov el 9 de Jul. de 2014
I've been fiddling around and by mistake I found that the matlab.system.StringSet class of the matlab.System package allows exactly the < TAB > complete behaviour.
Note : the doc links are under symulink, however the package is under:
fullfile(matlabroot, 'toolbox\matlab\system')
and therefore, does not require Symulink to be installed.
A barebone example :
classdef foo < matlab.System
properties
Coordinates
end
properties(Hidden,Transient)
CoordinatesSet = matlab.system.StringSet({'north','south','east','west'});
end
end
usage :
obj = foo
obj =
System: foo
Properties:
Coordinates: []
set(obj,'Coordinates','<TAB>
.
  2 comentarios
Yair Altman
Yair Altman el 12 de Ag. de 2014
Nice one, Oleg.
I added your discovery to my recent post on class property tab-completion .
James
James el 2 de Oct. de 2014
Note that this only works for classes derived from matlab.System.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Create System Objects en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by