MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

GUIKit tool to select frames

  • To: mathgroup at smc.vnet.net
  • Subject: [mg73504] GUIKit tool to select frames
  • From: Guy lamouche <no at public.email.com>
  • Date: Tue, 20 Feb 2007 06:22:14 -0500 (EST)

Hi, below is a very naive attempt at using the GUIKit to plot a selected 
frame of an ensemble of frames.

The variable Global`data in plotDialog[] is a Matrix containing 100 
frames of 250 x 250 (Real numbers), it is obviously defined outside 
plotDialog[].

PlotDialog opens a window, display a frame selected by the slider. This 
was built by modifying the plotgroupdialog and slider in the GUIKit 
examples. The code looks horribly formatted below, but it looks a very 
little bit better when pasted in Mathematica.

Question: It is very slow with my 100X250X250 matrice when changing the 
display from one frame to another, can someone effective un GUIKit 
programming suggest a change that would make it more responsive?


Thanks in advance.

Guy Lamouche


plotDialog=[] := GUIRunModal[Widget["Panel", 
    WidgetGroup[{Widget["MathPanel", {"preferredSize" -> Widget
["Dimension", {"width" -> 150, "height" -> 150}], 
        "usesFE" -> True}, WidgetLayout -> {"Stretching" -> {Maximize, 
Maximize}}, Name -> "canvas"], 
      WidgetGroup[{Widget["TextField", {"text" -> "", "columns" -> 3, 
"editable" -> False}, Name -> "textField"], 
        Widget["Slider", {BindEvent["change", Script[SetPropertyValue
[{"textField", "text"}, 
             ToString[PropertyValue[{"slider", "value"}], InputForm]]]], 
BindEvent["change", 
           Script[updatePlot[]]]}, Name -> "slider"]}, WidgetLayout -> 
Row], BindEvent["componentResized", 
       Script[updatePlot[]]], BindEvent["endModal", Script[Show[expr]]], 
      Script[updatePlot[] := Block[{slid, $DisplayFunction = Identity}, 
          slid = ToExpression[PropertyValue[{"slider", value}]]; expr = 
Show[ArrayPlot[data[[slid,All,All]]], 
             PlotRange -> All]; SetPropertyValue[{"canvas", 
"mathCommand"}, ToString[expr, InputForm]]; 
           InvokeMethod[{"canvas", "repaintNow"}]; ]; updatePlot[]]}, 
WidgetLayout -> Column], 
    WidgetLayout -> {"Stretching" -> {True, True}}], 
IncludedScriptContexts -> {$Context}]


  • Prev by Date: FullGraphics question
  • Next by Date: Re: Quick integral.
  • Previous by thread: Re: FullGraphics question
  • Next by thread: Re: GUIKit tool to select frames