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. >> > >
SKRMorphicTests.st
Description: application/extension-st
