Index: trunk/gui/scripts/vtkisosurfaceviewer.tcl
===================================================================
--- trunk/gui/scripts/vtkisosurfaceviewer.tcl	(revision 4713)
+++ trunk/gui/scripts/vtkisosurfaceviewer.tcl	(revision 4715)
@@ -102,8 +102,9 @@
     private method Rotate {option x y}
     private method SetCurrentColormap { color }
+    private method SetCurrentFieldName { dataobj }
     private method SetLegendTip { x y }
-    private method SetObjectStyle { dataobj comp } 
+    private method SetObjectStyle { dataobj comp }
     private method SetOrientation { side }
-    private method Slice {option args} 
+    private method Slice {option args}
     private method Zoom {option}
     private method ViewToQuaternion {} { 
@@ -1001,7 +1002,9 @@
     set _first ""
     SendCmd "dataset visible 0"
+    eval scale $_dlist
     foreach dataobj [get -objects] {
         if { [info exists _obj2ovride($dataobj-raise)] &&  $_first == "" } {
             set _first $dataobj
+            SetCurrentFieldName $dataobj
         }
         set _obj2datasets($dataobj) ""
@@ -1039,44 +1042,4 @@
     }
 
-    if { $_first != "" } {
-	$itk_component(field) choices delete 0 end
-	$itk_component(fieldmenu) delete 0 end
-	array unset _fields
-        set _curFldName ""
-        foreach cname [$_first components] {
-            foreach fname [$_first fieldnames $cname] {
-                if { [info exists _fields($fname)] } {
-                    continue
-                }
-                foreach { label units components } \
-                    [$_first fieldinfo $fname] break
-                $itk_component(field) choices insert end "$fname" "$label"
-                $itk_component(fieldmenu) add radiobutton -label "$label" \
-                    -value $label -variable [itcl::scope _curFldLabel] \
-                    -selectcolor red \
-                    -activebackground $itk_option(-plotbackground) \
-                    -activeforeground $itk_option(-plotforeground) \
-                    -font "Arial 8" \
-                    -command [itcl::code $this Combo invoke]
-                set _fields($fname) [list $label $units $components]
-                if { $_curFldName == "" } {
-                    set _curFldName $fname
-                    set _curFldLabel $label
-                }
-            }
-        }
-        $itk_component(field) value $_curFldLabel
-
-        if { ![info exists _limits($_curFldName)] } {
-            SendCmd "dataset maprange all"
-        } else {
-            set limits $_limits($_curFldName)
-            SendCmd "dataset maprange explicit $limits $_curFldName"
-            if { $limits != $_currentLimits } {
-                set _currentLimits $limits
-                EventuallyChangeContourLevels
-            }
-        }
-    }
     InitSettings -cutplanesvisible -isosurfacevisible -outline
     if { $_reset } {
@@ -2628,2 +2591,43 @@
     set _contourList(values) $values
 }
+
+itcl::body Rappture::VtkIsosurfaceViewer::SetCurrentFieldName { dataobj } { 
+    set _first $dataobj
+    $itk_component(field) choices delete 0 end
+    $itk_component(fieldmenu) delete 0 end
+    array unset _fields
+    set _curFldName ""
+    foreach cname [$_first components] {
+        foreach fname [$_first fieldnames $cname] {
+            if { [info exists _fields($fname)] } {
+                continue
+            }
+            foreach { label units components } \
+                [$_first fieldinfo $fname] break
+            $itk_component(field) choices insert end "$fname" "$label"
+            $itk_component(fieldmenu) add radiobutton -label "$label" \
+                -value $label -variable [itcl::scope _curFldLabel] \
+                -selectcolor red \
+                -activebackground $itk_option(-plotbackground) \
+                -activeforeground $itk_option(-plotforeground) \
+                -font "Arial 8" \
+                -command [itcl::code $this Combo invoke]
+            set _fields($fname) [list $label $units $components]
+            if { $_curFldName == "" } {
+                set _curFldName $fname
+                set _curFldLabel $label
+            }
+        }
+    }
+    $itk_component(field) value $_curFldLabel
+    if { ![info exists _limits($_curFldName)] } {
+        SendCmd "dataset maprange all"
+    } else {
+        set limits $_limits($_curFldName)
+        SendCmd "dataset maprange explicit $limits $_curFldName"
+        if { $limits != $_currentLimits } {
+            set _currentLimits $limits
+            EventuallyChangeContourLevels
+        }
+    }
+}
