Autocomplete of properties for hgsetget derived class

4 vues (au cours des 30 derniers jours)
Oleg Komarov
Oleg Komarov le 28 Juin 2014
Commenté : James le 2 Oct 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?

Réponse acceptée

Oleg Komarov
Oleg Komarov le 9 Juil 2014
Modifié(e) : Oleg Komarov le 9 Juil 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 commentaires
Yair Altman
Yair Altman le 12 Août 2014
Nice one, Oleg.
I added your discovery to my recent post on class property tab-completion .
James
James le 2 Oct 2014
Note that this only works for classes derived from matlab.System.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Create System Objects dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by