# HG changeset patch # User Claus Gittinger # Date 1287663498 -7200 # Node ID a2bb164d401c46edc681359914adf5f9d5da6a67 # Parent 78c502e62b007edf27965c22d9155b0695695458 added: #doBrowseApplicationMethodFor: #doBrowseEnabledMethod #doBrowseVisibilityMethod changed: #doBrowseActionMethod #helpSpec diff -r 78c502e62b00 -r a2bb164d401c MenuEditor.st --- a/MenuEditor.st Thu Oct 21 13:55:30 2010 +0200 +++ b/MenuEditor.st Thu Oct 21 14:18:18 2010 +0200 @@ -280,6 +280,9 @@ #basicsAction 'An action selector with 0, 1 (the argument field), or 2 (the selected item) arguments.' +#browseMethod +'Open a browser on this method in the application. Create the method, if it does not exist.' + #basicsArgument 'An optional arg passed with above selector, if it is a 1 or 2 arg selector (enter a Smalltalk literal).' @@ -411,7 +414,7 @@ ) - "Modified: / 20-09-2010 / 13:24:49 / cg" + "Modified: / 21-10-2010 / 14:18:03 / cg" ! localFlyHelpSpecStrings @@ -2581,26 +2584,34 @@ ! doBrowseActionMethod + "open a browser on the callback method (create if not yet existing)" + + self doBrowseApplicationMethodFor:#itemValue + + "Modified: / 21-10-2010 / 14:09:33 / cg" +! + +doBrowseApplicationMethodFor:aspect |selector cls category| - selector := (self aspectFor:#itemValue) value. - - selector isEmptyOrNil ifTrue:[ - Dialog information:(resources - string:'Please enter an action method name.'). + specClass isNil ifTrue:[ + self warn:(resources string:'Please define the application class first.'). ^ self ]. - selector := selector asSymbol. - - specClass isNil ifTrue:[ - self warn:'Please define the application class first.'. + selector := (self aspectFor:aspect) value. + selector isEmptyOrNil ifTrue:[ + Dialog information:(resources string:'Please enter an action method name.'). ^ self ]. + (selector = 'true' or:[selector = 'false']) ifTrue:[^ self]. + (selector == true or:[selector == false]) ifTrue:[^ self]. + + selector := selector asSymbol. cls := self resolveName:specClass. cls isNil ifTrue:[ - self warn:'Class ', specClass asString, ' does not exist!!'. + self warn:(resources string:'Class %1 does not exist!!' with:specClass asString). ^ self ]. @@ -2613,7 +2624,25 @@ redefine:(self redefineAspectMethodsChannel value). ]. - UserPreferences current systemBrowse + UserPreferences current systemBrowserClass openInClass:cls selector:selector + + "Created: / 21-10-2010 / 14:07:32 / cg" +! + +doBrowseEnabledMethod + "open a browser on the enabled method (create if not yet existing)" + + self doBrowseApplicationMethodFor:#enabled + + "Created: / 21-10-2010 / 14:09:41 / cg" +! + +doBrowseVisibilityMethod + "open a browser on the visibility method (create if not yet existing)" + + self doBrowseApplicationMethodFor:#isVisible + + "Created: / 21-10-2010 / 14:09:56 / cg" ! doGenerateAspectMethods @@ -3306,17 +3335,17 @@ - ^ + ^ #(FullSpec name: detailsEditSpec - window: + window: (WindowSpec label: 'Details Edit' name: 'Details Edit' min: (Point 10 10) bounds: (Rectangle 0 0 407 291) ) - component: + component: (SpecCollection collection: ( (LabelSpec @@ -3354,7 +3383,7 @@ ) (InputFieldSpec name: 'enabledField' - layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0) + layout: (LayoutFrame 110 0 40 0 -25 1.0 62 0) activeHelpKey: detailsEnabled tabable: true model: enabled @@ -3367,6 +3396,17 @@ modifiedChannel: modifiedChannel acceptOnPointerLeave: false ) + (ActionButtonSpec + label: 'browseActionImage' + name: 'Button1' + layout: (LayoutFrame -25 1 40 0 -5 1 62 0) + activeHelpKey: browseMethod + hasCharacterOrientedLabel: false + translateLabel: true + resizeForLabel: true + tabable: true + model: doBrowseEnabledMethod + ) (LabelSpec label: 'Visibility:' name: 'visibilityLabel' @@ -3378,7 +3418,7 @@ ) (InputFieldSpec name: 'isVisibleInputField' - layout: (LayoutFrame 110 0 65 0 -5 1.0 87 0) + layout: (LayoutFrame 110 0 65 0 -25 1.0 87 0) activeHelpKey: detailsVisibility tabable: true model: isVisible @@ -3391,6 +3431,17 @@ modifiedChannel: modifiedChannel acceptOnPointerLeave: false ) + (ActionButtonSpec + label: 'browseActionImage' + name: 'Button2' + layout: (LayoutFrame -25 1 65 0 -5 1 87 0) + activeHelpKey: browseMethod + hasCharacterOrientedLabel: false + translateLabel: true + resizeForLabel: true + tabable: true + model: doBrowseVisibilityMethod + ) (LabelSpec label: 'Aux Value' name: 'auxLabel' @@ -3431,7 +3482,11 @@ activeHelpKey: detailsStartGroup tabable: true model: startGroup - menu: (left right conditionalRight) + menu: + (Array + left right + conditionalRight + ) ) (LabelSpec label: 'Access Character Position:' @@ -3495,22 +3550,18 @@ adjust: right ) (FontMenuSpec - attributes: - (tabable - true - ) name: 'fontMenu' layout: (LayoutFrame 110 0 260 0 -5 1.0 282 0) activeHelpKey: fontMenu model: font - allowSymbolicFonts: true + allowSymbolicFonts: true ) ) - + ) ) - "Modified: / 16-10-2006 / 12:48:12 / cg" + "Modified: / 21-10-2010 / 14:15:09 / cg" ! ! !MenuEditor::Item class methodsFor:'interface-editor'! @@ -3953,6 +4004,7 @@ resizeForLabel: true tabable: true model: doBrowseActionMethod + activeHelpKey: browseMethod ) (LabelSpec label: 'Argument:' @@ -4116,6 +4168,8 @@ ) ) + + "Modified: / 21-10-2010 / 14:14:49 / cg" ! ! !MenuEditor::ActionItem class methodsFor:'interface-editor'!