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.7 $ $Date: 2000/06/14 20:10:51 $

ni = nargin;

% Get all IMPPLOT-specific public properties and their values
ImpPropNames = pnames(RespObj,'specific');
ImpPropValues = struct2cell(RespObj);

% Get property value(s)
if ni==1
   % Get all property values
   Value = [ImpPropValues(1:length(ImpPropNames)) ; ...
         pvget(RespObj.response)];
else
   % Value of single property
   % Look among IMPPLOT-specific properties
   imatch = find(strcmp(Property,ImpPropNames));
   
   if isempty(imatch),
      % Look among parent properties
      Value = pvget(RespObj.response,Property);
      
   elseif any(strcmp(Property,{'PeakResponseValue','SettlingTimeValue'}))
      % Special IMPPLOT-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 IMPPLOT-specific property
      Value = ImpPropValues{imatch};
   end
end

