5894 ! |
5896 ! |
5895 |
5897 |
5896 menu:aMenu labeled:aString |
5898 menu:aMenu labeled:aString |
5897 |expanded item menu| |
5899 |expanded item menu| |
5898 |
5900 |
5899 self criticalDo:[ |
5901 self synchronized:[ |
5900 self isRootItem ifTrue:[ expanded := true ] |
5902 self isRootItem ifTrue:[ expanded := true ] |
5901 ifFalse:[ expanded := isExpanded ]. |
5903 ifFalse:[ expanded := isExpanded ]. |
5902 |
5904 |
5903 self removeAll. |
5905 self removeAll. |
5904 self rawLabel:aString. |
5906 self rawLabel:aString. |
5905 |
5907 |
5906 menu := aMenu value. |
5908 menu := aMenu value. |
5907 |
5909 |
5908 (menu isNil or:[menu isString]) ifTrue:[ |
5910 (menu isNil or:[menu isString]) ifTrue:[ |
5909 menu := nil |
5911 menu := nil |
5910 ] ifFalse:[ |
5912 ] ifFalse:[ |
5911 aMenu isCollection ifTrue:[ menu := Menu decodeFromLiteralArray:aMenu ] |
5913 aMenu isCollection ifTrue:[ menu := Menu decodeFromLiteralArray:aMenu ] |
5912 ifFalse:[ menu := aMenu ]. |
5914 ifFalse:[ menu := aMenu ]. |
5913 |
5915 |
5914 menu hasItems ifFalse:[ |
5916 menu hasItems ifFalse:[ |
5915 menu := nil |
5917 menu := nil |
5916 ]. |
5918 ]. |
5917 ]. |
5919 ]. |
5918 menu notNil ifTrue:[ |
5920 menu notNil ifTrue:[ |
5919 isExpanded := false. "/ discard change notifications |
5921 isExpanded := false. "/ discard change notifications |
5920 children := OrderedCollection new. |
5922 children := OrderedCollection new. |
5921 |
5923 |
5922 menu itemsDo:[:el| |
5924 menu itemsDo:[:el| |
5923 item := self class menuItem:el. |
5925 item := self class menuItem:el. |
5924 item parent:self. |
5926 item parent:self. |
5925 children add:item. |
5927 children add:item. |
5926 ]. |
5928 ]. |
5927 expanded ifTrue:[ self expand ]. |
5929 expanded ifTrue:[ self expand ]. |
5928 ]. |
5930 ]. |
5929 isExpanded := expanded. |
5931 isExpanded := expanded. |
5930 ]. |
5932 ]. |
5931 self changed |
5933 self changed |
5932 |
5934 |
5933 "Modified: / 29-11-2011 / 11:28:33 / cg" |
5935 "Modified: / 29-11-2011 / 11:28:33 / cg" |
|
5936 "Modified: / 28-07-2018 / 15:49:52 / Claus Gittinger" |
5934 ! |
5937 ! |
5935 |
5938 |
5936 menuItem |
5939 menuItem |
5937 "returns self as a MenuItem |
5940 "returns self as a MenuItem |
5938 " |
5941 " |