# HG changeset patch # User Jan Vrany # Date 1417084642 -3600 # Node ID fc606681075854d5fb1ba5f99942b7f67cb4026b # Parent eb71540a025624fb96f5199b3680b3853352443e Reverted back to plain rule selection dialog showing rule tree and description. diff -r eb71540a0256 -r fc6066810758 Tools__LintRuleSelectionDialog.st --- a/Tools__LintRuleSelectionDialog.st Thu Nov 27 11:36:26 2014 +0100 +++ b/Tools__LintRuleSelectionDialog.st Thu Nov 27 11:37:22 2014 +0100 @@ -68,10 +68,21 @@ documentation " - documentation to be added. + A dialog to select SmallLint rules. + + [example:] + | dialog rules | + + dialog := Tools::LintRuleSelectionDialog new. + dialog open. + dialog accepted ifTrue:[ + rules := dialog selectionAsRule + ] ifFalse:[ + Dialog warn: 'Cancelled...'. + ]. [author:] - Jan Vrany (jv@neso) + Jan Vrany [instance variables:] @@ -84,9 +95,15 @@ examples " - Starting the application: + Ask user to select some SmallLint rules [exBegin] - Tools::LintRuleSelectionDialog open + | dialog rules | + + dialog := Tools::LintRuleSelectionDialog new. + dialog open. + dialog accepted ifTrue:[ + rules := dialog selectionAsRule + ] [exEnd] @@ -123,23 +140,85 @@ label: 'Select Lint Rules' name: 'Select Lint Rules' min: (Point 10 10) - bounds: (Rectangle 0 0 466 403) + bounds: (Rectangle 0 0 580 373) ) component: (SpecCollection collection: ( - (LinkButtonSpec - label: 'Configure Rule Sets...' - name: 'Button1' - layout: (LayoutFrame -250 1 0 0 -3 1 24 0) - translateLabel: true - labelChannel: configureRulesetsButtonLabel - adjust: right - model: doConfigureRulesets + (ViewSpec + name: 'ContentPanel' + layout: (LayoutFrame 10 0 0 0 -10 1 -40 1) + component: + (SpecCollection + collection: ( + (VariableVerticalPanelSpec + name: 'VariableVerticalPanel1' + layout: (LayoutFrame 0 0 0 0 0 1 0 1) + component: + (SpecCollection + collection: ( + (SubCanvasSpec + name: 'RuleList' + hasHorizontalScrollBar: false + hasVerticalScrollBar: false + majorKey: #'Tools::HierarchicalLintRuleList' + subAspectHolders: + (Array + + (SubChannelInfoSpec + subAspect: inGeneratorHolder + aspect: allRulesHolder + ) + (SubChannelInfoSpec + subAspect: listSelection + aspect: listSelection + ) + + (SubChannelInfoSpec + subAspect: modeHolder + aspect: modeHolder + ) + (SubChannelInfoSpec + subAspect: outGeneratorHolder + aspect: selectedRulesHolder + ) + + (SubChannelInfoSpec + subAspect: selectionHolder + aspect: selectionHolder + ) + ) + createNewApplication: true + createNewBuilder: true + ) + (SubCanvasSpec + name: 'RuleDesc' + hasHorizontalScrollBar: false + hasVerticalScrollBar: false + majorKey: #'Tools::LintRuleDetail' + subAspectHolders: + (Array + + (SubChannelInfoSpec + subAspect: ruleHolder + aspect: listSelection + ) + ) + createNewApplication: true + createNewBuilder: true + ) + ) + + ) + handles: (Any 0.5 1.0) + ) + ) + + ) ) (HorizontalPanelViewSpec name: 'BottonPanel' - layout: (LayoutFrame 0 0.0 -40 1 0 1.0 0 1) + layout: (LayoutFrame 10 0 -40 1 -10 1 0 1) horizontalLayout: right verticalLayout: center horizontalSpace: 3 @@ -153,158 +232,7 @@ name: 'CancelButton' translateLabel: true model: doCancel - extent: (Point 159 25) - ) - (ActionButtonSpec - label: 'OK' - name: 'OKButton' - translateLabel: true - model: doAccept - enableChannel: canAcceptHolder - isDefault: true - defaultable: true - extent: (Point 159 25) - ) - ) - - ) - keepSpaceForOSXResizeHandleH: true - ) - (LabelSpec - label: 'Select Ruleset' - name: 'Label1' - layout: (LayoutFrame 3 0 0 0 -250 1 24 0) - translateLabel: true - adjust: left - ) - (SelectionInListModelViewSpec - name: 'SelectionInListModelView1' - layout: (LayoutFrame 3 0 30 0 -3 1 -40 1) - model: rulesetHolder - hasHorizontalScrollBar: true - hasVerticalScrollBar: true - listModel: rulesetList - useIndex: false - highlightMode: line - ) - ) - - ) - ) -! - -windowSpec_old - "This resource specification was automatically generated - by the UIPainter of ST/X." - - "Do not manually edit this!! If it is corrupted, - the UIPainter may not be able to read the specification." - - " - UIPainter new openOnClass:Tools::LintRuleSelectionDialog andSelector:#windowSpec - Tools::LintRuleSelectionDialog new openInterface:#windowSpec - Tools::LintRuleSelectionDialog open - " - - - - ^ - #(FullSpec - name: windowSpec - window: - (WindowSpec - label: 'Select Lint Rules' - name: 'Select Lint Rules' - min: (Point 10 10) - bounds: (Rectangle 0 0 600 400) - ) - component: - (SpecCollection - collection: ( - (ComboListSpec - name: 'ComboBox1' - layout: (LayoutFrame 0 0 0 0 0 1 25 0) - model: rulesetNameHolder - comboList: rulesetNameList - ) - (VariableVerticalPanelSpec - name: 'VariableVerticalPanel1' - layout: (LayoutFrame 0 0 60 0 0 1 -30 1) - component: - (SpecCollection - collection: ( - (SubCanvasSpec - name: 'RuleList' - hasHorizontalScrollBar: false - hasVerticalScrollBar: false - majorKey: #'Tools::HierarchicalLintRuleList' - subAspectHolders: - (Array - - (SubChannelInfoSpec - subAspect: inGeneratorHolder - aspect: allRulesHolder - ) - (SubChannelInfoSpec - subAspect: listSelection - aspect: listSelection - ) - - (SubChannelInfoSpec - subAspect: modeHolder - aspect: modeHolder - ) - (SubChannelInfoSpec - subAspect: outGeneratorHolder - aspect: selectedRulesHolder - ) - - (SubChannelInfoSpec - subAspect: selectionHolder - aspect: selectionHolder - ) - ) - createNewApplication: true - createNewBuilder: true - ) - (SubCanvasSpec - name: 'RuleDesc' - hasHorizontalScrollBar: false - hasVerticalScrollBar: false - majorKey: #'Tools::LintRuleDetail' - subAspectHolders: - (Array - - (SubChannelInfoSpec - subAspect: ruleHolder - aspect: listSelection - ) - ) - createNewApplication: true - createNewBuilder: true - ) - ) - - ) - handles: (Any 0.80810810810810796 1.0) - ) - (HorizontalPanelViewSpec - name: 'BottonPanel' - layout: (LayoutFrame 0 0 -30 1 0 1 0 1) - horizontalLayout: fitSpace - verticalLayout: center - horizontalSpace: 3 - verticalSpace: 3 - reverseOrderIfOKAtLeft: true - component: - (SpecCollection - collection: ( - (ActionButtonSpec - label: 'Cancel' - name: 'CancelButton' - translateLabel: true - model: doCancel - extent: (Point 295 22) + extent: (Point 120 25) ) (ActionButtonSpec label: 'OK' @@ -313,37 +241,20 @@ model: doAccept isDefault: true defaultable: true - extent: (Point 296 22) + extent: (Point 120 22) ) ) ) ) - (LinkButtonSpec - label: 'Configure Rule Sets...' - name: 'Button1' - layout: (LayoutFrame 0 0 26 0 0 1 50 0) - translateLabel: true - labelChannel: configureRulesetsButtonLabel - adjust: right - model: doConfigureRulesets - ) ) ) ) - - "Created: / 13-10-2014 / 20:40:33 / Jan Vrany " ! ! !LintRuleSelectionDialog methodsFor:'accessing'! -ruleset: ruleset - self rulesetHolder value: ruleset - - "Created: / 27-02-2013 / 23:36:18 / Jan Vrany " -! - selection ^self selectionHolder value @@ -359,36 +270,14 @@ ! selectionAsRule - - self rulesetHolder value rules: self selection. - ^self rulesetHolder value. + ^ RBCompositeLintRule rules: self selection name: (resources string: 'Selected Rules') "Created: / 25-08-2010 / 14:10:58 / Jan Vrany " - "Modified: / 27-02-2013 / 23:40:39 / Jan Vrany " + "Modified: / 27-11-2014 / 09:26:37 / Jan Vrany " ! ! !LintRuleSelectionDialog methodsFor:'actions'! -doConfigureRulesets - "raise an error: this method should be implemented (TODO)" - - ^AbstractLauncherApplication openSettingsAndSelect: 'Tools/SmallLint' - - "Created: / 08-10-2014 / 23:10:50 / Jan Vrany " -! - -doEditRuleset - self doEditRuleset: self rulesetHolder value. - - "Created: / 13-10-2014 / 21:06:55 / Jan Vrany " -! - -doEditRuleset: anRBCompositeLintRule - ^ self shouldImplement - - "Created: / 13-10-2014 / 21:07:14 / Jan Vrany " -! - hideResultView detailsShown == true ifFalse:[^self]. @@ -429,32 +318,12 @@ canAcceptHolder - "automatically generated by UIPainter ..." - - "*** the code below creates a default model when invoked." - "*** (which may not be the one you wanted)" - "*** Please change as required and accept it in the browser." - "*** (and replace this comment by something more useful ;-)" - canAcceptHolder isNil ifTrue:[ - canAcceptHolder := false asValue. -"/ if your app needs to be notified of changes, uncomment one of the lines below: -"/ canAcceptHolder addDependent:self. -"/ canAcceptHolder onChangeSend:#canAcceptHolderChanged to:self. + canAcceptHolder := true asValue. ]. ^ canAcceptHolder. - "Modified: / 13-10-2014 / 21:05:20 / Jan Vrany " -! - -configureRulesetsButtonLabel - ^'Configure...' asText - colorizeAllWith: Color blue; - actionForAll:[ self doConfigureRulesets ]; - yourself - - "Created: / 08-10-2014 / 23:10:27 / Jan Vrany " - "Modified: / 13-10-2014 / 20:55:18 / Jan Vrany " + "Modified (comment): / 27-11-2014 / 09:17:11 / Jan Vrany " ! listSelection @@ -474,121 +343,10 @@ modeHolder - ^[#displaySelection] + ^ [ #select ] "Created: / 15-04-2010 / 20:13:51 / Jan Vrany " - "Modified: / 08-10-2014 / 22:56:41 / Jan Vrany " -! - -rulesetHolder - "return/create the 'rulesetHolder' value holder (automatically generated)" - - rulesetHolder isNil ifTrue:[ - rulesetHolder := ValueHolder new. - rulesetHolder addDependent:self. - ]. - ^ rulesetHolder -! - -rulesetHolder:something - "set the 'rulesetHolder' value holder (automatically generated)" - - |oldValue newValue| - - rulesetHolder notNil ifTrue:[ - oldValue := rulesetHolder value. - rulesetHolder removeDependent:self. - ]. - rulesetHolder := something. - rulesetHolder notNil ifTrue:[ - rulesetHolder addDependent:self. - ]. - newValue := rulesetHolder value. - oldValue ~~ newValue ifTrue:[ - self update:#value with:newValue from:rulesetHolder. - ]. -! - -rulesetList - "return/create the 'rulesetList' value holder (automatically generated)" - - rulesetList isNil ifTrue:[ - rulesetList := List new. - rulesetList addAll: RBCompositeLintRule rulesetsBuiltin. - rulesetList addAll: RBCompositeLintRule rulesetsUserDefined. - rulesetList addDependent:self. - ]. - ^ rulesetList - - "Modified: / 16-10-2014 / 10:51:43 / Jan Vrany " -! - -rulesetList:something - "set the 'rulesetList' value holder (automatically generated)" - - |oldValue newValue| - - rulesetList notNil ifTrue:[ - oldValue := rulesetList value. - rulesetList removeDependent:self. - ]. - rulesetList := something. - rulesetList notNil ifTrue:[ - rulesetList addDependent:self. - ]. - newValue := rulesetList value. - oldValue ~~ newValue ifTrue:[ - self update:#value with:newValue from:rulesetList. - ]. -! - -rulesetNameHolder - "return/create the 'rulesetNameHolder' value holder (automatically generated)" - - rulesetNameHolder isNil ifTrue:[ - | ruleset | - - ruleset := self rulesetHolder value. - rulesetNameHolder := ValueHolder with: (ruleset notNil ifTrue:[ ruleset displayString ] ifFalse:[ nil ]). - rulesetNameHolder addDependent:self. - ]. - ^ rulesetNameHolder - - "Modified: / 13-10-2014 / 20:49:28 / Jan Vrany " -! - -rulesetNameHolder:something - "set the 'rulesetNameHolder' value holder (automatically generated)" - - |oldValue newValue| - - rulesetNameHolder notNil ifTrue:[ - oldValue := rulesetNameHolder value. - rulesetNameHolder removeDependent:self. - ]. - rulesetNameHolder := something. - rulesetNameHolder notNil ifTrue:[ - rulesetNameHolder addDependent:self. - ]. - newValue := rulesetNameHolder value. - oldValue ~~ newValue ifTrue:[ - self update:#value with:newValue from:rulesetNameHolder. - ]. -! - -rulesetNameList - "return/create the 'rulesetNameList' value holder (automatically generated)" - - rulesetNameList isNil ifTrue:[ - rulesetNameList := ValueHolder new. - ]. - ^ rulesetNameList -! - -rulesetNameList:something - "set the 'rulesetNameList' value holder (automatically generated)" - - rulesetNameList := something. + "Modified (format): / 27-11-2014 / 09:19:06 / Jan Vrany " ! selectionHolder @@ -609,96 +367,17 @@ "Created: / 24-07-2010 / 15:05:21 / Jan Vrany " ! ! -!LintRuleSelectionDialog methodsFor:'change & update'! - -update:something with:aParameter from:changedObject - "Invoked when an object that I depend upon sends a change notification." - - "stub code automatically generated - please change as required" - - changedObject == rulesetList ifTrue:[ - self updateRulesetNameList. - ^ self. - ]. - changedObject == rulesetHolder ifTrue:[ - | ruleset | - - ruleset := self rulesetHolder value. - ruleset notNil ifTrue:[ - self rulesetNameHolder value: ruleset value name withoutNotifying: self. - self selection: ruleset value flattened. - self canAcceptHolder value: true. - ] ifFalse:[ - self rulesetNameHolder value: nil withoutNotifying: self. - self selection: nil. - self canAcceptHolder value: false. - ]. - ^ self. - ]. - changedObject == rulesetNameHolder ifTrue:[ - self updateRulesetHolder. - ^ self. - ]. - super update:something with:aParameter from:changedObject - - "Modified: / 13-10-2014 / 21:05:44 / Jan Vrany " -! - -updateRulesetHolder - | ruleset | - - self rulesetHolder value name == self rulesetNameHolder value ifTrue:[ - ^self. - ]. - - (self rulesetNameList value notNil and:[self rulesetNameHolder value asString = self rulesetNameList value last asString]) ifTrue:[ - ruleset := RBCompositeLintRule new. - ruleset name: ('New Rule Set ' , (self rulesetList size + 1) printString). - self rulesetList add: ruleset. - RBCompositeLintRule rulesetsUserDefined add: ruleset. - self rulesetNameHolder value: ruleset name. - ] ifFalse:[ - | idx | - idx := self rulesetNameList value indexOf: self rulesetNameHolder value. - ruleset := self rulesetList at: idx. - ]. - self rulesetHolder value: ruleset. - - "Created: / 27-02-2013 / 23:15:27 / Jan Vrany " -! - -updateRulesetNameList - - self rulesetNameList value: - ((self rulesetList collect:[:e|e displayString]) -"/ add: 'New Ruleset...' asText allItalic; - yourself) - - "Created: / 27-02-2013 / 23:08:22 / Jan Vrany " - "Modified: / 13-10-2014 / 20:46:43 / Jan Vrany " -! ! - -!LintRuleSelectionDialog methodsFor:'hooks'! - -commonPostBuild - self updateRulesetNameList. - self canAcceptHolder value: self rulesetHolder value notNil - - "Created: / 27-02-2013 / 23:10:54 / Jan Vrany " - "Modified: / 13-10-2014 / 21:05:58 / Jan Vrany " -! ! - !LintRuleSelectionDialog class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleSelectionDialog.st,v 1.11 2014-11-21 14:02:14 cg Exp $' + ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleSelectionDialog.st,v 1.12 2014-11-27 10:37:22 vrany Exp $' ! version_CVS - ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleSelectionDialog.st,v 1.11 2014-11-21 14:02:14 cg Exp $' + ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleSelectionDialog.st,v 1.12 2014-11-27 10:37:22 vrany Exp $' ! version_SVN - ^ '$Id: Tools__LintRuleSelectionDialog.st,v 1.11 2014-11-21 14:02:14 cg Exp $' + ^ '$Id: Tools__LintRuleSelectionDialog.st,v 1.12 2014-11-27 10:37:22 vrany Exp $' ! !