555 #'layout:' #(#LayoutFrame 86 0 16 0 17 1.0 36 0) |
555 #'layout:' #(#LayoutFrame 86 0 16 0 17 1.0 36 0) |
556 #'activeHelpKey:' #readSelector |
556 #'activeHelpKey:' #readSelector |
557 #'model:' #readSelector |
557 #'model:' #readSelector |
558 #'type:' #symbolOrNil |
558 #'type:' #symbolOrNil |
559 ) |
559 ) |
|
560 #(#InputFieldSpec |
|
561 #'name:' 'writeSelector' |
|
562 #'layout:' #(#LayoutFrame 86 0 38 0 17 1.0 58 0) |
|
563 #'activeHelpKey:' #writeSelector |
|
564 #'model:' #writeSelector |
|
565 #'type:' #symbolOrNil |
|
566 ) |
560 #(#LabelSpec |
567 #(#LabelSpec |
561 #'name:' 'printLabel' |
568 #'name:' 'printLabel' |
562 #'layout:' #(#AlignmentOrigin 84 0 51 0 1 0.5) |
569 #'layout:' #(#AlignmentOrigin 84 0 78 0 1 0.5) |
563 #'label:' 'Print:' |
570 #'label:' 'Print:' |
564 #'adjust:' #right |
571 #'adjust:' #right |
565 #'resizeForLabel:' true |
572 #'resizeForLabel:' true |
566 ) |
573 ) |
567 #(#InputFieldSpec |
574 #(#InputFieldSpec |
568 #'name:' 'printSelector' |
575 #'name:' 'printSelector' |
569 #'layout:' #(#LayoutFrame 86 0 42 0 17 1.0 62 0) |
576 #'layout:' #(#LayoutFrame 86 0 69 0 17 1.0 89 0) |
570 #'activeHelpKey:' #printSelector |
577 #'activeHelpKey:' #printSelector |
571 #'model:' #printSelector |
578 #'model:' #printSelector |
572 #'type:' #symbolOrNil |
579 #'type:' #symbolOrNil |
|
580 ) |
|
581 #(#LabelSpec |
|
582 #'name:' 'writeLabel' |
|
583 #'layout:' #(#AlignmentOrigin 84 0 48 0 1 0.5) |
|
584 #'label:' 'Write:' |
|
585 #'adjust:' #right |
|
586 #'resizeForLabel:' true |
573 ) |
587 ) |
574 ) |
588 ) |
575 ) |
589 ) |
576 #'label:' 'Values:' |
590 #'label:' 'Values:' |
577 #'labelPosition:' #topLeft |
591 #'labelPosition:' #topLeft |
578 ) |
592 ) |
579 #(#FramedBoxSpec |
593 #(#FramedBoxSpec |
580 #'name:' 'menusBox' |
594 #'name:' 'menusBox' |
581 #'layout:' #(#LayoutFrame 0 0.0 115 0 0 1.0 195 0) |
595 #'layout:' #(#LayoutFrame 0 0.0 137 0 0 1.0 217 0) |
582 #'component:' |
596 #'component:' |
583 #(#SpecCollection |
597 #(#SpecCollection |
584 #'collection:' |
598 #'collection:' |
585 #( |
599 #( |
586 #(#LabelSpec |
600 #(#LabelSpec |
1355 ]. |
1369 ]. |
1356 |
1370 |
1357 type := (aspects at:#rendererType) value. |
1371 type := (aspects at:#rendererType) value. |
1358 |
1372 |
1359 type == #rowSelector ifTrue:[ |
1373 type == #rowSelector ifTrue:[ |
1360 #( label width minWidth editorType choices readSelector printSelector |
1374 #( label width minWidth editorType choices readSelector writeSelector printSelector |
1361 formatString type size height canSelect selectSelector |
1375 formatString type size height canSelect selectSelector |
1362 ) do:[:aKey| (aspects at:aKey) value:nil ]. |
1376 ) do:[:aKey| (aspects at:aKey) value:nil ]. |
1363 ]. |
1377 ]. |
1364 |
1378 |
1365 aspects keysAndValuesDo:[:aKey :aModel| |
1379 aspects keysAndValuesDo:[:aKey :aModel| |
1622 ( aColumn rendererType ~~ #rowSelector |
1636 ( aColumn rendererType ~~ #rowSelector |
1623 and:[(sel := aColumn readSelector) notNil |
1637 and:[(sel := aColumn readSelector) notNil |
1624 and:[(aClass implements:sel) not]] |
1638 and:[(aClass implements:sel) not]] |
1625 ) ifTrue:[ |
1639 ) ifTrue:[ |
1626 (aColumn printSelector isNil or:[aColumn canSelect]) ifTrue:[ |
1640 (aColumn printSelector isNil or:[aColumn canSelect]) ifTrue:[ |
1627 bCode := sel asString, code. |
1641 sel numArgs == 0 ifTrue:[ |
|
1642 bCode := sel asString, code |
|
1643 ] ifFalse:[ |
|
1644 bCode := sel asString, 'anIndex\', code |
|
1645 ]. |
1628 aColumn rendererType == #CheckToggle ifFalse:[ |
1646 aColumn rendererType == #CheckToggle ifFalse:[ |
1629 bCode := bCode, ' ^ nil' |
1647 bCode := bCode, ' ^ nil' |
1630 ] ifTrue:[ |
1648 ] ifTrue:[ |
1631 bCode := bCode, ' ^ true' |
1649 bCode := bCode, ' ^ true' |
1632 ]. |
1650 ]. |
1663 ! |
1681 ! |
1664 |
1682 |
1665 generateWriteSelectorIn:aClass |
1683 generateWriteSelectorIn:aClass |
1666 "generate code for #writeSelector |
1684 "generate code for #writeSelector |
1667 " |
1685 " |
1668 |sel catg code| |
1686 |sel catg code bCode sz| |
1669 |
1687 |
1670 catg := 'accessing writeSelector' asSymbol. |
1688 catg := 'accessing writeSelector' asSymbol. |
1671 code := 'aValue\' |
1689 code := 'aValue\' |
1672 , ' "automatically generated by DataSetBuilder ..."\' |
1690 , ' "automatically generated by DataSetBuilder ..."\' |
1673 , '\' |
1691 , '\' |
1674 , ' "set value"\' |
1692 , ' "set value"\' |
1675 . |
1693 . |
1676 |
1694 |
1677 columns do:[:aColumn| |
1695 columns do:[:aColumn| |
1678 ( (sel := aColumn writeSelector) notNil |
1696 ( (sel := aColumn writeSelector) notNil |
1679 and:[(aClass implements:sel) not] |
1697 and:[(aColumn canSelect) |
|
1698 and:[(aClass implements:sel) not]] |
1680 ) ifTrue:[ |
1699 ) ifTrue:[ |
1681 self compile:(sel asString, code) forClass:aClass inCategory:catg |
1700 sel numArgs == 1 ifTrue:[ |
|
1701 bCode := sel asString |
|
1702 ] ifFalse:[ |
|
1703 sz := sel indexOf:$:. |
|
1704 bCode := sel copyTo:sz. |
|
1705 bCode := bCode, 'anIndex ', (sel copyFrom:(sz + 1)). |
|
1706 ]. |
|
1707 self compile:(bCode, code) forClass:aClass inCategory:catg |
1682 ] |
1708 ] |
1683 ] |
1709 ] |
1684 ! ! |
1710 ! ! |
1685 |
1711 |
1686 !DataSetBuilder methodsFor:'initialization'! |
1712 !DataSetBuilder methodsFor:'initialization'! |