Some experiments in toolbox settings jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 14 Feb 2012 17:08:43 +0000
branchjv
changeset 12161 c68944f50686
parent 12160 4c985c504aee
child 12162 19b159bf0116
Some experiments in toolbox settings
AbstractSettingsApplication.st
Tools__NewSystemBrowser.st
Tools__ProjectCheckerBrowser.st
extensions.st
--- a/AbstractSettingsApplication.st	Tue Feb 14 11:26:33 2012 +0000
+++ b/AbstractSettingsApplication.st	Tue Feb 14 17:08:43 2012 +0000
@@ -341,12 +341,20 @@
 !
 
 AbstractSettingsApplication subclass:#ToolboxSettingsAppl
-	instanceVariableNames:''
+	instanceVariableNames:'changesBrowserClassName'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
+ApplicationModel subclass:#ClassToolSetting
+	instanceVariableNames:'labelHolder classNameHolder classNameList classLabelHolder
+		classLabelList'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:AbstractSettingsApplication::ToolboxSettingsAppl
+!
+
 AbstractSettingsApplication subclass:#ToolsSettingsAppl
 	instanceVariableNames:'useNewVersionDiffBrowser transcriptBufferSize useNewInspector
 		showClockInLauncher useNewChangesBrowser useNewFileBrowser
@@ -16235,79 +16243,21 @@
         name: developmentToolsSpec
         window: 
        (WindowSpec
-          label: 'NewApplication'
-          name: 'NewApplication'
-          bounds: (Rectangle 0 0 550 465)
+          label: 'Development tools'
+          name: 'Development tools'
+          bounds: (Rectangle 0 0 674 614)
         )
         component: 
        (SpecCollection
           collection: (
            (VerticalPanelViewSpec
-              name: 'VerticalPanel1'
+              name: 'DevToolsPanel'
               layout: (LayoutFrame 0 0 0 0 0 1 0 1)
               horizontalLayout: fit
               verticalLayout: top
               horizontalSpace: 3
               verticalSpace: 3
-              component: 
-             (SpecCollection
-                collection: (
-                 (ViewSpec
-                    name: 'ChengeSetBrowser'
-                    component: 
-                   (SpecCollection
-                      collection: (
-                       (LabelSpec
-                          label: 'Changes Browser'
-                          name: 'ChangeSetBrowserLabel'
-                          layout: (LayoutFrame 0 0 0 0 200 0 30 0)
-                          translateLabel: true
-                          adjust: left
-                        )
-                       (RadioButtonSpec
-                          label: 'Standard'
-                          name: 'ChangeSetBrowserClassic'
-                          layout: (LayoutFrame 200 0 0 0 0 1 30 0)
-                          translateLabel: true
-                          model: changesBrowserType
-                          isTriggerOnDown: true
-                          select: ChangesBrowser
-                        )
-                       (RadioButtonSpec
-                          label: 'New (experimental)'
-                          name: 'ChangesBrowserNew'
-                          layout: (LayoutFrame 200 0 30 0 0 1 60 0)
-                          translateLabel: true
-                          model: changesBrowserType
-                          isTriggerOnDown: true
-                          select: #'Tools::ChangeSetBrowser2'
-                        )
-                       (RadioButtonSpec
-                          label: 'Custom'
-                          name: 'RadioButton1'
-                          layout: (LayoutFrame 200 0 60 0 0 1 90 0)
-                          translateLabel: true
-                          model: changesBrowserType
-                          isTriggerOnDown: true
-                          select: #'__Custom__'
-                        )
-                       (InputFieldSpec
-                          name: 'EntryField1'
-                          layout: (LayoutFrame 220 0 91 0 0 1 116 0)
-                          model: changesBrowserClassName
-                          type: symbolOrNil
-                          acceptOnReturn: true
-                          acceptOnTab: true
-                          acceptOnPointerLeave: true
-                        )
-                       )
-                     
-                    )
-                    extent: (Point 550 120)
-                  )
-                 )
-               
-              )
+              postBuildCallback: developmentToolSettingsInto:
             )
            )
          
@@ -16381,6 +16331,25 @@
 
 !AbstractSettingsApplication::ToolboxSettingsAppl methodsFor:'aspects'!
 
+changesBrowserClassName
+    <resource: #uiAspect>
+
+    "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 ;-)"
+
+    changesBrowserClassName isNil ifTrue:[
+        changesBrowserClassName := ValueHolder new.
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+"/       changesBrowserClassName addDependent:self.
+"/       changesBrowserClassName onChangeSend:#changesBrowserClassNameChanged to:self.
+    ].
+    ^ changesBrowserClassName.
+!
+
 notebookTabList
     "Generated by the TabListEditor"
 
@@ -16392,6 +16361,41 @@
     ^ list
 ! !
 
+!AbstractSettingsApplication::ToolboxSettingsAppl methodsFor:'hooks'!
+
+developmentToolSettingsInto:panel
+
+    (self addClassToolSettingFor: #changesBrowserClassName to: panel)
+        label: 'Changes Browser';
+        classes:#(  #ChangesBrowser 
+                    #NewChangesBrowser 
+                    #Tools::ChangeSetBrowser2 );
+        labels: #(  'ChangesBrowser - default'
+                    'NewChangesBrowser - experimental, not maintained'
+                    'Tools::ChangeSetBrowser2 - experimental' ).
+
+    "Created: / 14-02-2012 / 16:20:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl methodsFor:'private'!
+
+addClassToolSettingFor: settingAspect to: panel
+
+    | model setting canvas |
+    model := self perform: settingAspect.
+    canvas := ApplicationSubView new.
+    setting := ClassToolSetting new.
+    setting createBuilder.
+    setting classNameHolder: model.
+    setting window: canvas.
+    canvas client: setting.
+    canvas height: 30.
+    panel addSubView: canvas.
+    ^setting
+
+    "Created: / 14-02-2012 / 16:24:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !AbstractSettingsApplication::ToolboxSettingsAppl methodsFor:'protocol'!
 
 basicReadSettings
@@ -16422,6 +16426,29 @@
     ^ self shouldImplement
 ! !
 
+
+!AbstractSettingsApplication::ToolboxSettingsAppl::ClassToolSetting methodsFor:'accessing'!
+
+classes: collection
+    | classes |
+
+    classes := collection asOrderedCollection.
+"/    (classes includes: self classNameHolder value) ifFalse:[
+"/        classes add: self classNameHolder value
+"/    ].
+    classes add: #__custom__.
+    self classNameList value: classes
+
+    "Created: / 14-02-2012 / 16:28:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+label: aString
+    self labelHolder value: aString
+
+    "Created: / 14-02-2012 / 16:25:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+
 !AbstractSettingsApplication::ToolsSettingsAppl class methodsFor:'help specs'!
 
 flyByHelpSpec
@@ -16989,14 +17016,13 @@
 !AbstractSettingsApplication class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.423 2012/02/07 16:08:10 cg Exp $'
+    ^ '$Id: AbstractSettingsApplication.st 7890 2012-02-14 17:08:43Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.423 2012/02/07 16:08:10 cg Exp '
+    ^ '§Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.423 2012/02/07 16:08:10 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: AbstractSettingsApplication.st 7887 2012-02-13 19:19:58Z vranyj1 $'
-! !
-
+    ^ '$Id: AbstractSettingsApplication.st 7890 2012-02-14 17:08:43Z vranyj1 $'
+! !
--- a/Tools__NewSystemBrowser.st	Tue Feb 14 11:26:33 2012 +0000
+++ b/Tools__NewSystemBrowser.st	Tue Feb 14 17:08:43 2012 +0000
@@ -51338,7 +51338,12 @@
             ].
         ].
     ].
-    ^ { matches first . matches }
+
+    ^ matches isEmpty ifTrue:[
+        #(nil #())
+    ] ifFalse:[
+        { matches first . matches }
+    ]
 
     "Modified: / 04-08-2011 / 19:05:28 / cg"
     "Created: / 04-12-2011 / 22:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -55771,7 +55776,7 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__NewSystemBrowser.st 7888 2012-02-13 20:56:01Z vranyj1 $'
+    ^ '$Id: Tools__NewSystemBrowser.st 7890 2012-02-14 17:08:43Z vranyj1 $'
 !
 
 version_CVS
@@ -55779,7 +55784,7 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__NewSystemBrowser.st 7888 2012-02-13 20:56:01Z vranyj1 $'
+    ^ '$Id: Tools__NewSystemBrowser.st 7890 2012-02-14 17:08:43Z vranyj1 $'
 ! !
 
 NewSystemBrowser initialize!
--- a/Tools__ProjectCheckerBrowser.st	Tue Feb 14 11:26:33 2012 +0000
+++ b/Tools__ProjectCheckerBrowser.st	Tue Feb 14 17:08:43 2012 +0000
@@ -75,8 +75,8 @@
         name: windowSpec
         window: 
        (WindowSpec
-          label: 'NewApplication'
-          name: 'NewApplication'
+          label: 'Package Issues'
+          name: 'Package Issues'
           bounds: (Rectangle 0 0 581 370)
         )
         component: 
@@ -200,5 +200,5 @@
 !ProjectCheckerBrowser class methodsFor:'documentation'!
 
 version_SVN
-    ^ '$Id: Tools__ProjectCheckerBrowser.st 7886 2012-02-13 18:52:36Z vranyj1 $'
+    ^ '$Id: Tools__ProjectCheckerBrowser.st 7890 2012-02-14 17:08:43Z vranyj1 $'
 ! !
--- a/extensions.st	Tue Feb 14 11:26:33 2012 +0000
+++ b/extensions.st	Tue Feb 14 17:08:43 2012 +0000
@@ -1899,5 +1899,5 @@
 !stx_libtool class methodsFor:'documentation'!
 
 extensionsVersion_SVN
-    ^ '$Id: extensions.st 7887 2012-02-13 19:19:58Z vranyj1 $'
-! !
+    ^ '$Id: extensions.st 7890 2012-02-14 17:08:43Z vranyj1 $'
+! !
\ No newline at end of file