www.gusucode.com > appdesigner工具箱matlab源码程序 > appdesigner/+appdesigner/+internal/+application/getAppDesignEnvironment.m
function appDesignEnvironment = getAppDesignEnvironment() %GETAPPDESIGNENVIRONMENT Internal function to guarantee only one % App Designer will be launched % % GETAPPDESIGNENVIRONMENT uses local persistent variable to make sure % only one instance of AppDesignEnvironment through the MATLAB sessionn % Copyright 2015 The MathWorks, Inc. % Make the AppDesignEnvironment have only one instance via % a persistent variable persistent localAppDesignEnvironment; if isempty(localAppDesignEnvironment) || ~isvalid(localAppDesignEnvironment) % First time starting App Designer, localAppDesignEnvironment would be % empty. % After closing App Designer, localAppDesignEnvironment would be % invalid when launching App Designer again % get PeerModelManager peerModelManager = appdesigner.internal.application.AppDesignEnvironment.getPeerModelManager( ... appdesigner.internal.application.AppDesignEnvironment.NameSpace); % create the AppDesignerModel componentAdapterMap = appdesigner.internal.application.appmetadata.createComponentAdapterMap(); model = appdesigner.internal.model.AppDesignerModel(componentAdapterMap, peerModelManager); % the AppDesignEnvironment localAppDesignEnvironment = appdesigner.internal.application.AppDesignEnvironment(peerModelManager, model); addlistener(localAppDesignEnvironment,'ObjectBeingDestroyed', ... @(source, event)delete(model)); end appDesignEnvironment = localAppDesignEnvironment; % put a lock on the instance so this instance cannot be cleared by a % "clear all". If not "clear all" would close the App Designer mlock; end