class: Tools::LintRuleSettingsApplication
authorClaus Gittinger <cg@exept.de>
Tue, 07 Jul 2015 12:46:51 +0200
changeset 15734 4c376216e8aa
parent 15732 a40158f53779
child 15735 d59ccef25442
class: Tools::LintRuleSettingsApplication class definition added: #defaultInBrowserRuleNameHolder #makeDefaultInBrowser #smallLintRulesetDefault changed: #basicReadSettings #basicSaveSettings #flyByHelpSpec #windowSpec
Tools__LintRuleSettingsApplication.st
--- a/Tools__LintRuleSettingsApplication.st	Mon Jul 06 17:20:05 2015 +0200
+++ b/Tools__LintRuleSettingsApplication.st	Tue Jul 07 12:46:51 2015 +0200
@@ -17,7 +17,8 @@
 
 AbstractSettingsApplication subclass:#LintRuleSettingsApplication
 	instanceVariableNames:'rulesetList rulesetSelectionHolder hasSelectionHolder
-		hasSelectionAndUserDefinedHolder smallSenseEnabledHolder'
+		hasSelectionAndUserDefinedHolder smallSenseEnabledHolder
+		smallLintRulesetDefault defaultInBrowserRuleNameHolder'
 	classVariableNames:'LastFileName'
 	poolDictionaries:''
 	category:'Interface-Lint'
@@ -92,6 +93,9 @@
 #resetDefault
 'Recreate the default ruleset with all existing RBRules.\(Do this after new rules have been added or rule classes were modified)'
 
+#makeDefaultInBrowser
+'Make this the default ruleset to be used in browsers'
+
 #smallSenseEnabled
 'Enable SmallSense (incremental lint rule checking in the editor).\If the SmallSense package is not yet loaded, checking this will force it into the image.\\Sorry, but this will only affect new windows,\so you have to reopen the browsers.'
 
@@ -178,7 +182,7 @@
                        )
                       (SelectionInListModelViewSpec
                          name: 'ProfileList'
-                         layout: (LayoutFrame 0 0 30 0 -128 1 0 1)
+                         layout: (LayoutFrame 0 0 30 0 -128 1 -30 1)
                          enableChannel: svnEnabled
                          model: rulesetSelectionHolder
                          hasHorizontalScrollBar: true
@@ -190,7 +194,7 @@
                        )
                       (VerticalPanelViewSpec
                          name: 'Buttons1'
-                         layout: (LayoutFrame -128 1 30 0 0 1 -65 0.70000000000000018)
+                         layout: (LayoutFrame -128 1 30 0 0 1 -65 0.70000000000000084)
                          horizontalLayout: fit
                          verticalLayout: top
                          horizontalSpace: 5
@@ -203,8 +207,8 @@
                                name: 'ButtonEdit'
                                activeHelpKey: edit
                                translateLabel: true
+                               tabable: true
                                model: doEdit
-                               enableChannel: canEditHolder
                                extent: (Point 128 22)
                              )
                             (ActionButtonSpec
@@ -212,8 +216,8 @@
                                name: 'ButtonCopy'
                                activeHelpKey: copy
                                translateLabel: true
+                               tabable: true
                                model: doCopy
-                               enableChannel: canCopyHolder
                                extent: (Point 128 22)
                              )
                             (ActionButtonSpec
@@ -221,6 +225,7 @@
                                name: 'ButtonAdd'
                                activeHelpKey: add
                                translateLabel: true
+                               tabable: true
                                model: doAdd
                                extent: (Point 128 22)
                              )
@@ -229,8 +234,8 @@
                                name: 'ButtonRemove'
                                activeHelpKey: remove
                                translateLabel: true
+                               tabable: true
                                model: doRemove
-                               enableChannel: canRemoveHolder
                                extent: (Point 128 22)
                              )
                             )
@@ -239,7 +244,7 @@
                        )
                       (VerticalPanelViewSpec
                          name: 'Buttons2'
-                         layout: (LayoutFrame -128 1 -64 0.70000000000000018 0 1 0 1)
+                         layout: (LayoutFrame -128 1 -64 0.70000000000000084 0 1 0 1)
                          horizontalLayout: fit
                          verticalLayout: bottom
                          horizontalSpace: 5
@@ -248,10 +253,27 @@
                         (SpecCollection
                            collection: (
                             (ActionButtonSpec
-                               label: 'Reset Default'
+                               label: 'Make Default\in Browser'
+                               name: 'Button5'
+                               activeHelpKey: makeDefaultInBrowser
+                               translateLabel: true
+                               adjust: centerEach
+                               multiLineLabel: true
+                               tabable: true
+                               model: makeDefaultInBrowser
+                               enableChannel: hasSelectionHolder
+                               extent: (Point 128 44)
+                             )
+                            (ViewSpec
+                               name: 'Box3'
+                               extent: (Point 128 29)
+                             )
+                            (ActionButtonSpec
+                               label: 'Reinitialize'
                                name: 'Button4'
                                activeHelpKey: resetDefault
                                translateLabel: true
+                               tabable: true
                                model: doResetDefault
                                extent: (Point 128 22)
                              )
@@ -264,8 +286,8 @@
                                name: 'Button2'
                                activeHelpKey: export
                                translateLabel: true
+                               tabable: true
                                model: doExport
-                               enableChannel: canExportHolder
                                extent: (Point 128 22)
                              )
                             (ActionButtonSpec
@@ -273,6 +295,7 @@
                                name: 'Button3'
                                activeHelpKey: import
                                translateLabel: true
+                               tabable: true
                                model: doImport
                                extent: (Point 128 22)
                              )
@@ -280,6 +303,20 @@
                           
                          )
                        )
+                      (LabelSpec
+                         label: 'Default in Browser:'
+                         name: 'Label1'
+                         layout: (LayoutFrame 0 0 -30 1 200 0 0 1)
+                         translateLabel: true
+                         adjust: left
+                       )
+                      (LabelSpec
+                         label: 'default ruleset in browser'
+                         name: 'Label2'
+                         layout: (LayoutFrame 200 0 -30 1 -128 1 0 1)
+                         translateLabel: true
+                         labelChannel: defaultInBrowserRuleNameHolder
+                       )
                       )
                     
                    )
@@ -432,6 +469,12 @@
     <resource: #uiCallback>
 
     RBBuiltinRuleSet flushBuiltinDefault.
+!
+
+makeDefaultInBrowser
+    <resource: #uiCallback>
+
+    self smallLintRulesetDefault value:(self rulesetSelectionHolder value).
 ! !
 
 !LintRuleSettingsApplication methodsFor:'aspects'!
@@ -462,6 +505,13 @@
     "Modified: / 11-11-2014 / 15:12:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+defaultInBrowserRuleNameHolder
+    defaultInBrowserRuleNameHolder isNil ifTrue:[
+        defaultInBrowserRuleNameHolder := '' asValue
+    ].
+    ^ defaultInBrowserRuleNameHolder
+!
+
 hasSelectionAndUserDefinedHolder
 
 
@@ -514,6 +564,21 @@
     ^ rulesetSelectionHolder
 !
 
+smallLintRulesetDefault
+    smallLintRulesetDefault isNil ifTrue:[
+        smallLintRulesetDefault := ValueHolder with:false.
+        smallLintRulesetDefault 
+            onChangeEvaluate:[
+                self updateModifiedChannel.
+                self defaultInBrowserRuleNameHolder 
+                    value:(smallLintRulesetDefault value isNil
+                            ifTrue:['* none *']
+                            ifFalse:[ smallLintRulesetDefault value name ])
+            ].
+    ].
+    ^ smallLintRulesetDefault
+!
+
 smallSenseEnabledHolder
     smallSenseEnabledHolder isNil ifTrue:[
         smallSenseEnabledHolder := ValueHolder with:false.
@@ -531,7 +596,9 @@
 
     self smallSenseEnabledHolder 
         value:(self hasSmallSenseLoaded
-               and:[ UserPreferences current perform:#smallSenseEnabled ifNotUnderstood:false]).
+               and:[ currentUserPrefs perform:#smallSenseEnabled ifNotUnderstood:false]).
+
+    self smallLintRulesetDefault value:(currentUserPrefs smallLintRulesetDefault).
 
     rbCompositeLintRuleClass := Smalltalk at:#'RBCompositeLintRule'.
 
@@ -560,10 +627,12 @@
     | oldRulesets newRulesets toRemove toAdd rbCompositeLintRuleClass|
 
     self smallSenseEnabledHolder value ifTrue:[
-        UserPreferences current addPreloadedPackage:'stx:goodies/smallsense'
+        currentUserPrefs addPreloadedPackage:'stx:goodies/smallsense'
     ] ifFalse:[
-        UserPreferences current removePreloadedPackage:'stx:goodies/smallsense'
+        currentUserPrefs removePreloadedPackage:'stx:goodies/smallsense'
     ].
+    currentUserPrefs smallLintRulesetDefault:(smallLintRulesetDefault value).
+
     (Smalltalk at:#'SmallSense::SmalltalkChecker') notNil ifTrue:[
         UserPreferences current 
             perform:#smallSenseEnabled: with:(self smallSenseEnabledHolder value) ifNotUnderstood:[]