Index: trunk/src/transform_field/signal_spectrum.m
===================================================================
--- trunk/src/transform_field/signal_spectrum.m	(revision 935)
+++ trunk/src/transform_field/signal_spectrum.m	(revision 944)
@@ -80,4 +80,25 @@
             DataOut.TransformInput.IndexRange(ilist,1:2)=str2num(answer{ilist+1});
         end
+        if DataOut.TransformInput.IndexRange(1,2)-DataOut.TransformInput.IndexRange(1,1)<DataOut.TransformInput.WindowLength
+            msgbox_uvmat('ERROR','WindowLength must be smaller than the total time index range')
+            return
+        end
+        huvmat=findobj(allchild(0),'Tag','uvmat');
+        UvData=get(huvmat,'UserData');
+        Data=UvData.PlotAxes;
+        YName=Data.ListVarName{1};
+        XName=Data.ListVarName{2};
+        yindex=DataOut.TransformInput.IndexRange(2,:);
+        y=Data.(YName)(yindex);
+        xindex=DataOut.TransformInput.IndexRange(3,:);
+        x=Data.(XName)(xindex);
+        haxes=findobj(huvmat,'Tag','PlotAxes');
+        axes(haxes);
+        hbounds=findobj(haxes,'Tag','Bounds');
+        if isempty(hbounds)
+        hbounds=rectangle('Position',[x(1) y(1) x(2)-x(1) y(2)-y(1)],'Tag','Bounds');
+        else
+            set(hbounds,'Position',[x(1) y(1) x(2)-x(1) y(2)-y(1)])
+        end
     end
     return
@@ -90,4 +111,7 @@
 
 %% get the variable to process
+if  ~isfield(DataIn,Param.TransformInput.VariableName)
+    return
+end
 Var= DataIn.(Param.TransformInput.VariableName);%variable to analyse
 if isfield(Param.TransformInput,'IndexRange')
@@ -128,5 +152,5 @@
 end
 
-%% claculate the spectrum
+%% calculate the spectrum
 specmean=0;% mean spectrum initialisation
 cospecmean=0;
