function Value = pvget(RespObj,Property)
%PVGET  Get values of public Response Object properties.
%
%   VALUES = PVGET(RespObj) returns the values of all public 
%   properties of RespObj in the cell array VALUES.
%
%   VALUES = PVGET(RespObj,PROPERTY) returns the value of the
%   single property with name PROPERTY.  The string property
%   must contain the true property name.
%   
%   See also GET.

%   Author(s): P. Gahinet, 7-8-97
%   Copyright 1986-2000 The MathWorks, Inc. 
%   $Revision: 1.8 $ $Date: 2000/06/14 20:05:40 $

ni = nargin;

% Get all STEPPLOT-specific public properties and their values
StepPropNames = pnames(RespObj,'specific');
StepPropValues  = struct2cell(RespObj);

% Get property value(s)
if ni==1
   % Get all property values
   Value = [StepPropValues(1:length(StepPropNames)) ; ...
         pvget(RespObj.response)];
else
   % Value of single property
   % Look among STEPPLOT-specific properties
   imatch = find(strcmp(Property,StepPropNames));
   
   if isempty(imatch),
      % Look among parent properties
      Value = pvget(RespObj.response,Property);
      
   elseif any(strcmp(Property,{'PeakResponseValue' , 'RiseTimeValue' , ...
            'SettlingTimeValue' , 'SteadyStateValue'}))
      % Special STEPPLOT-specific property
      Value = builtin('subsref',RespObj,substruct('.',Property));
      if any(cellfun('isempty',{Value.System}))
         % Compute Peak Response
         [Value,RespObj] = calcopt(Property,RespObj);
         ContextMenu = pvget(RespObj.response,'UIContextMenu');
         builtin('set',ContextMenu.Main,'UserData',RespObj)
      end
      
   else
      % Other STEPPLOT-specific property
      Value = StepPropValues{imatch};
   end
end

