Hide class property, but retain autocomplete?

8 visualizaciones (últimos 30 días)
Philip Ohnewein
Philip Ohnewein el 15 de Nov. de 2018
Comentada: Philip Ohnewein el 18 de Nov. de 2018
Hi all,
Following question:
I have a handle class, and I'd like to hide certain properties from being displayed in the command window when I type an object. To do this, I define the property as hidden:
classdef xy < handle
properties (Hidden)
abc
end
end
Now if do so, I lose autocomplete capability in the command window:
my_obj = xy();
xy.[TAB]
(autocomplete only works if abc has no Hidden attribute).
So, my question is: How can I can hide a property from display, but keep it autocompleting in the command window?
Thank you very much!
Philip

Respuesta aceptada

Guillaume
Guillaume el 17 de Nov. de 2018
Hidden means hidden, from display and autocompletion. There's no workaround.
However, what you could do is customise the display of your class, so that it only displays whatever you want even if the property is not hidden. For that you'd have to derive your class from matlab.mixin.CustomDisplay and override getPropertyGroups to omit the property you want to hide.
All in all, a lot of works for something that doesn't sound very logical.
  1 comentario
Philip Ohnewein
Philip Ohnewein el 18 de Nov. de 2018
Thanks for your reply!
I was not aware of matlab.mixin.CustomDisplay. Thank you for pointing me at that.
I know my question doesn't sound very logical at first view, but we have good reasons for this design in our application. Also the arbitrary reordering of properties makes a lot of sense, in our case.
The properties which are hidden but should support auto-completion are Dependent properties that make working with our main objects in the command window more straightforward. Apart from that, they are not important or characteristic properites for the object, so they basically just clutter the display, and leaving them out will reduce the number of properties by around 50%, while the other 50% are significant properties (for the user). Hope this gives some insight... :-)
@per isakson: Concerning private and protected properties: This behavior is more obvious to me, because private and protected is more concerned with the design of an application, whereas Hidden properties, well, not to the same extent, I would say. I am only talking about public, Hidden properties in my case.
So thank you both for your replies!
Philip

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by