@@ -91,7 +91,7 @@ function fontWeight(uiElement, weight)
9191 end % getWebElements
9292
9393 function [win ] = getWebWindow(hUIFig )
94- mlapptools .toggleWarnings(' off' )
94+ warnState = mlapptools .toggleWarnings(' off' );
9595 % Make sure we got a valid handle
9696 assert(mlapptools .isUIFigure(hUIFig ),...
9797 ' mlapptools:getWebWindow:NotUIFigure' ,...
@@ -114,19 +114,20 @@ function fontWeight(uiElement, weight)
114114 if strcmp(err .identifier , ' MATLAB:nonExistentField' )
115115 pause(0.01 )
116116 else
117- mlapptools .toggleWarnings( ' on ' )
117+ warning( warnState ); % Restore warning state
118118 rethrow(err )
119119 end
120120 end
121121 end
122- mlapptools .toggleWarnings( ' on ' )
122+ warning( warnState ); % Restore warning state
123123
124124 if toc >= to
125125 msgID = ' mlapptools:getWidgetID:QueryTimeout' ;
126126 error(msgID , ...
127127 ' WidgetID query timed out after %u seconds, UI needs more time to load' , ...
128128 to );
129129 end
130+
130131 end % getWebWindow
131132
132133 function varargout = getWidgetInfo(hUIFig , verboseFlag )
@@ -269,9 +270,9 @@ function textAlign(uiElement, alignment)
269270 end % emptyStructWithFields
270271
271272 function [data_tag ] = getDataTag(uiElement )
272- mlapptools .toggleWarnings(' off' )
273+ warnState = mlapptools .toggleWarnings(' off' );
273274 data_tag = char(struct(uiElement ).Controller.ProxyView.PeerNode.getId);
274- mlapptools .toggleWarnings( ' on ' )
275+ warning( warnState );
275276 end % getDataTag
276277
277278 function [widgetID ] = getWidgetID(win , data_tag )
@@ -286,15 +287,13 @@ function textAlign(uiElement, alignment)
286287 break
287288 catch err
288289 if ~isempty(strfind(err .message , ' JavaScript error: Uncaught ReferenceError: dojo is not defined' )) || ...
289- ~isempty(strfind(err .message , ' Cannot read property '' widgetid'' of null' ))
290+ ~isempty(strfind(err .message , ' Cannot read property '' widgetid'' of null' ))
290291 pause(0.01 )
291292 else
292- mlapptools .toggleWarnings(' on' )
293293 rethrow(err )
294294 end
295295 end
296296 end
297- mlapptools .toggleWarnings(' on' )
298297
299298 if toc >= to
300299 msgID = ' mlapptools:getWidgetID:QueryTimeout' ;
@@ -314,14 +313,19 @@ function textAlign(uiElement, alignment)
314313 isstruct(struct(x ).ControllerInfo), hList );
315314 end
316315
317- function toggleWarnings(togglestr )
316+ function oldState = toggleWarnings(togglestr )
317+ OJF = ' MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame' ;
318+ SOO = ' MATLAB:structOnObject' ;
319+ if nargout > 0
320+ oldState = [warning(' query' ,OJF ); warning(' query' ,SOO )];
321+ end
318322 switch lower(togglestr )
319323 case ' on'
320- warning on MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame
321- warning on MATLAB:structOnObject
324+ warning( ' on ' , OJF );
325+ warning( ' on ' , SOO );
322326 case ' off'
323- warning off MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame
324- warning off MATLAB:structOnObject
327+ warning( ' off' , OJF );
328+ warning( ' off' , SOO );
325329 otherwise
326330 % Do nothing
327331 end
@@ -385,11 +389,12 @@ function validateAlignmentStr(alignment)
385389 end % validateFontWeight
386390
387391 function hFig = figFromWebwindow(hWebwindow )
392+ % Using this method is discouraged.
388393 hFigs = findall(groot , ' Type' , ' figure' );
389- mlapptools .toggleWarnings(' off' );
394+ warnState = mlapptools .toggleWarnings(' off' );
390395 hUIFigs = hFigs(arrayfun(@(x )isstruct(struct(x ).ControllerInfo), hFigs ));
391396 ww = arrayfun(@mlapptools .getWebWindow , hUIFigs );
392- mlapptools .toggleWarnings( ' on ' );
397+ warning( warnState ); % Restore warning state
393398 hFig = hFigs(hWebwindow == ww );
394399 end
395400
0 commit comments