www.gusucode.com > appdesigner工具箱matlab源码程序 > appdesigner/+appdesigner/+internal/+model/AbstractAppDesignerModel.m
classdef AbstractAppDesignerModel < ... appdesservices.internal.interfaces.model.AbstractModel & ... matlab.mixin.Heterogeneous & ... matlab.ui.internal.componentframework.services.optional.ControllerInterface % Give access to getControllerHandle in GBT component % Parent class for all App Designer design time models % % This class provides the implementation for AbstractModel abstract % classes. % % Additionally, it provides a "Controller" property as a convenience of % not having to directly use getController / setController. As these % model objects are not part of the HG hierarchy, there is no name % collison. % Copyright 2014-2015 The MathWorks, Inc. properties(... SetAccess = { ... ?appdesservices.internal.interfaces.model.AbstractModel, ... ?appdesservices.internal.interfaces.model.AbstractModelMixin, ... ?appdesservices.internal.interfaces.controller.AbstractController}, ... ... GetAccess = { ... ?appdesservices.internal.interfaces.model.AbstractModel, ... ?appdesservices.internal.interfaces.model.AbstractModelMixin, ... ?appdesservices.internal.interfaces.controller.AbstractController}, ... ... Transient=true ... ) % A appdesservices.internal.interfaces.model.AbstractController Controller; end methods(Abstract, Access = 'public') % CREATECONTROLLER(OBJ, PARENTCONTROLLER, PROXYVIEW) creates the % controller for the AppDesigner specific models. % controller = createController(obj, parentController, proxyView) end % Implementations of parent class interface methods(Access = { ... ?appdesservices.internal.interfaces.model.AbstractModel, ... ?appdesservices.internal.interfaces.model.AbstractModelMixin, ... ?appdesservices.internal.interfaces.controller.AbstractController, ... ?appdesservices.internal.interfaces.controller.AbstractControllerMixin }) function controller = getController(obj) controller = obj.Controller; end end methods(Access = { ... ?appdesservices.internal.interfaces.model.AbstractModel, ... ?appdesservices.internal.interfaces.model.AbstractModelMixin, ... ?appdesservices.internal.interfaces.controller.AbstractController, ... ?appdesservices.internal.interfaces.controller.AbstractControllerMixin }) function setController(obj, controller) obj.Controller = controller; end end methods(Access = { ... ?appdesservices.internal.interfaces.controller.DesignTimeParentingController, ... ?appdesigner.internal.application.AppDesignerWindowController, ... ?appdesservices.internal.interfaces.model.DesignTimeModelFactory}) function controller = getControllerHandle(obj) % return this model's controller. This method was added as % an alias to standardize how to access a model's controller % in the code. With this method all models, both component and % appdesigner, have a common way to access their controllers. controller = obj.getController(); end end end