3713 languageListMenuSlice |
3713 languageListMenuSlice |
3714 |m allLanguages | |
3714 |m allLanguages | |
3715 |
3715 |
3716 allLanguages := OrderedCollection new. |
3716 allLanguages := OrderedCollection new. |
3717 ProgrammingLanguage allDo:[:eachLanguage | |
3717 ProgrammingLanguage allDo:[:eachLanguage | |
3718 eachLanguage isSmalltalk ifFalse:[ |
3718 eachLanguage isSmalltalk ifFalse:[ |
3719 allLanguages add:eachLanguage |
3719 allLanguages add:eachLanguage |
3720 ] |
3720 ] |
3721 ]. |
3721 ]. |
3722 allLanguages sort:[:a :b | a name < b name]. |
3722 allLanguages sort:[:a :b | a name < b name]. |
3723 |
3723 |
3724 m := Menu new. |
3724 m := Menu new. |
3725 m addItem:((MenuItem |
3725 m addItem:((MenuItem |
3726 label:'Smalltalk' |
3726 label:'Smalltalk' |
3727 choice:#syntaxHolder |
3727 choice:#syntaxHolder |
3728 choiceValue:SmalltalkLanguage instance) |
3728 choiceValue:SmalltalkLanguage instance) |
3729 enabled: self canChangeLanguageHolder). |
3729 enabled: self canChangeLanguageHolder). |
3730 |
3730 |
3731 "/ allLanguages notEmpty ifTrue:[ |
3731 "/ allLanguages notEmpty ifTrue:[ |
3732 "/ m addItem:(MenuItem separator). |
3732 "/ m addItem:(MenuItem separator). |
3733 |
3733 |
3734 allLanguages do:[:eachLanguage | |
3734 allLanguages do:[:eachLanguage | |
3735 "JV@2012-02-18: Add language only iff it supports |
3735 "JV@2012-02-18: Add language only iff it supports |
3736 evaluation (most of then do, but some may not - |
3736 evaluation (most of then do, but some may not - |
3737 such as Java)" |
3737 such as Java)" |
3738 (eachLanguage evaluatorClass notNil |
3738 (eachLanguage isJava not |
3739 and:[eachLanguage evaluatorClass canUnderstand: #evaluate:in:receiver:notifying:logged:ifFail:]) |
3739 "/ Java is funny - we don't have an evaluator for Java |
3740 ifTrue:[ |
3740 "/ but we have to define evaluatorClass to return GroovyEvaluator |
3741 m addItem:((MenuItem |
3741 "/ to be able to inspect code in debugger/inspector. Hence this hack. |
3742 label:(eachLanguage name) |
3742 "/ We may need something like evaluatorClassForInspector/Debugger. |
3743 choice:#syntaxHolder |
3743 and:[eachLanguage evaluatorClass notNil |
3744 choiceValue:eachLanguage) |
3744 and:[eachLanguage evaluatorClass canUnderstand: #evaluate:in:receiver:notifying:logged:ifFail:]]) |
3745 enabled: self canChangeLanguageHolder). |
3745 ifTrue:[ |
3746 ]. |
3746 m addItem:((MenuItem |
3747 ]. |
3747 label:(eachLanguage name) |
|
3748 choice:#syntaxHolder |
|
3749 choiceValue:eachLanguage) |
|
3750 enabled: self canChangeLanguageHolder). |
|
3751 ]. |
|
3752 ]. |
3748 "/ ]. |
3753 "/ ]. |
3749 ^ m |
3754 ^ m |
3750 |
3755 |
3751 "Modified: / 04-02-2012 / 11:52:07 / cg" |
3756 "Modified: / 04-02-2012 / 11:52:07 / cg" |
3752 "Modified: / 10-05-2012 / 23:44:24 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3757 "Modified: / 29-08-2013 / 12:18:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3753 ! |
3758 ! |
3754 |
3759 |
3755 makeRecentDoItsMenuFor:aSelector |
3760 makeRecentDoItsMenuFor:aSelector |
3756 |doIts m cmdLabelLen| |
3761 |doIts m cmdLabelLen| |
3757 |
3762 |