I hope this might help...

Simple SUnit tests.. through basic morphic...

LayoutTests and MorphicWidgetTests would be nice.. #testModelAndView would
be basics of what might help...

But they are really the very rudimentary stuff.. Always use Model
/controller - presenter along with the View/ UI class. makes it easier..



On Sun, Apr 1, 2012 at 2:54 AM, S Krish
<[email protected]>wrote:

> I am not sure I would recommend using Builder.. except for playing
> initially around.
>
> It is better to simply use the basic capabilities in Morph and tie it up
> with TableLayout policy.. Proportional Layout
>
> In that you do have a better chance of working these issues out once you
> get the core behaviors, the API/ methods of each of the morphs. That said
> many of these morphs are not perfect and will require patience to rip
> through the attributes you need and save to inst vars et al.
>
> Maybe sometime soon I can package a clean MorphicView system that will
> alleviate this pain of figuring out Morphic.. but its fun once you figure
> it out..
>
>
>
>
> On Sat, Mar 31, 2012 at 7:44 AM, Nelson Pingitore <
> [email protected]> wrote:
>
>> Hello Pharo Users.  I am seeking help with the interaction with widgets
>> or morphs like Checkboxes, and Radio buttons and Texteditor boxes, I am
>> creating a User Settings Class to learn how to use Pharo. I copied some
>> core widgets from the UITheme exampleBasicControls. I would like to know,
>> starting with the code below, how to detect if the User has selected the
>> "Ok" or "Cancel" button in the lower right of the form, and then if the
>> user selects "Ok" how do I detect the state of the widgets (Checkboxes,
>> Radio buttons, or Texteditor), and save those states to instance variables?
>>
>> |dialog builder radioModel treeModel CheckboxA|
>>  builder := UITheme exampleBuilder.
>>  dialog := (builder newPluggableDialogWindow: 'Example basic controls')
>> useDefaultOKCancelButton.
>>  radioModel := ExampleRadioButtonModel new.
>>  treeModel := ValueHolder new contents: TextStyle actualTextStyles
>> explorerContents.
>>  dialog contentMorph:
>>  (
>>   (
>>    dialog newRow:
>>    {
>>     dialog newLabelGroup:
>>     {
>>      'Normal Label'->(dialog newLabel: 'A Label').
>>      'Normal Button'->(dialog newButtonFor: nil action: nil label: 'A
>> Button' help: 'This is a button').
>>      'Default Button'->((dialog newButtonFor: nil action: nil label:
>> 'Default Button' help: 'This is a default button') isDefault: true).
>>      'Selected Button'->(dialog newButtonFor: (ValueHolder new contents:
>> true) getState: #contents
>>        action: nil arguments: #() getEnabled: nil label: 'A Button' help:
>> 'This is a selected button').
>>      'Checkbox A'->(dialog newCheckboxFor: (ValueHolder new contents:
>> true)
>>        getSelected: #contents setSelected: #contents: label: 'A Checkbox'
>> help: 'This is a checkbox').
>>      'Checkbox B'->(dialog newCheckboxFor: (ValueHolder new contents:
>> true)
>>        getSelected: #contents setSelected: #contents: label: 'A Checkbox'
>> help: 'This is a checkbox').
>>      'Checkbox C'->(dialog newCheckboxFor: (ValueHolder new contents:
>> true)
>>        getSelected: #contents setSelected: #contents: label: 'A Checkbox'
>> help: 'This is a checkbox').
>>      'Radio Buttons'->
>>      (
>>       (
>>        dialog newColumn:
>>        {
>>         (dialog newRadioButtonFor: radioModel getSelected: #isLeft
>> setSelected: #beLeft label: 'Left' help: 'This is a radio buton').
>>         (dialog newRadioButtonFor: radioModel getSelected: #isCenter
>> setSelected: #beCenter label: 'Center' help: 'This is a radio buton').
>>         (dialog newRadioButtonFor: radioModel getSelected: #isRight
>> setSelected: #beRight label: 'Right' help: 'This is a radio buton')
>>        }
>>       )
>>      vResizing: #shrinkWrap
>>      ).
>>      'Text Entry'->(dialog newTextEntryFor: (ValueHolder new contents:
>> 'Hello')  getText: #contents setText: #contents: help: 'This is a text
>> entry').
>>      'Slider'->(dialog newSliderFor: (ValueHolder new contents: 0.5)
>>  getValue: #contents setValue: #contents: help: 'This is a slider').
>>      'Bump Temp'->(dialog newTextEntryFor: (ValueHolder new contents:
>> '75') getText: #contents setText: #contents: help: 'This is the random
>> shift').
>>     }.
>>     dialog newVerticalSeparator.
>>     dialog newLabelGroup:
>>     {
>>      'Drop List'->(dialog newDropListFor: (ListModel new list: #('One'
>> 'Two' 'Three' 'Four'))
>>        list: #list getSelected: #selectionIndex setSelected:
>> #selectionIndex: help: 'This is a drop list').
>>      'Normal List'->
>>      (
>>       (
>>        dialog newListFor: (ListModel new list: #('One' 'Two' 'Three'
>> 'Four'); selectionIndex: 3) list: #list selected: #selectionIndex
>> changeSelected: #selectionIndex:
>>        help: 'This is a list'
>>       )
>>       minWidth: 120
>>      ).
>>     }.
>>    }
>>   )
>>   vResizing: #spaceFill
>>  );
>>  model: nil.
>>  builder openModal: dialog.
>>
>
>

Attachment: SKRMorphicTests.st
Description: application/extension-st

Reply via email to