Tools_NavigationState.st
changeset 10079 d93b4a7b0392
parent 9564 ee5827388b2e
child 10147 2ef523137e8a
--- a/Tools_NavigationState.st	Sun Jul 03 19:50:23 2011 +0200
+++ b/Tools_NavigationState.st	Sun Jul 03 19:57:08 2011 +0200
@@ -22,8 +22,8 @@
 		classListGenerator categoryListGenerator nameSpaceListGenerator
 		projectListGenerator classHierarchyTopClass meta selectedMethods
 		selectedProtocols selectedClasses selectedCategories
-		selectedProjects selectedNamespaces variableFilter
-		filterClassVars sortBy noAllItem autoSearchPattern
+		selectedProjects selectedNamespaces selectedLintRules
+		variableFilter filterClassVars sortBy noAllItem autoSearchPattern
 		autoSearchIgnoreCase autoSearchAction realModifiedStateHolder
 		methodInfo versionDiffApplication selectorListGeneratorArray
 		selectedMethodsArray infoLabelHolder packageLabelHolder
@@ -31,7 +31,11 @@
 		sortVariablesBy editModeHolder scrollableCodeView specialEditors
 		selectedEditorNoteBookTabIndexHolder editorNoteBookListHolder
 		editorNoteBookCanvasHolder codeView stringSearchToolView
-		noteBookView inheritanceView documentationView'
+		noteBookView inheritanceView documentationView languageHolder
+		messageSpecHolder messageHolder progressHolder tabContentView
+		messagePaneView codePaneAndPluginView
+		codePaneAndPluginViewRelativeCorners pluginVisibleHolder
+		bookmarkHolder worker'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Browsers-New'
@@ -143,6 +147,30 @@
     "Created: / 11.2.2000 / 12:43:45 / cg"
 !
 
+codePaneAndPluginView
+    ^ codePaneAndPluginView
+!
+
+codePaneAndPluginView:something
+    codePaneAndPluginView := something.
+!
+
+codePaneAndPluginViewRelativeCorners
+    codePaneAndPluginViewRelativeCorners ifNil:[
+        codePaneAndPluginViewRelativeCorners := #(0.76 1.0)
+    ].
+    ^ codePaneAndPluginViewRelativeCorners
+
+    "Modified: / 04-10-2010 / 08:20:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+codePaneAndPluginViewRelativeCorners: anArray
+
+    codePaneAndPluginViewRelativeCorners := anArray.
+
+    "Modified: / 04-10-2010 / 08:14:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 editorNoteBookCanvasHolder
     editorNoteBookCanvasHolder isNil ifTrue:[
         editorNoteBookCanvasHolder := nil asValue.
@@ -161,6 +189,14 @@
     ^ Smalltalk
 !
 
+messagePaneView
+    ^ messagePaneView
+!
+
+messagePaneView:something
+    messagePaneView := something.
+!
+
 modified
     "check for modified code by asking the editTextView;
      this one returns true if ever modified - even if
@@ -227,6 +263,22 @@
 stringSearchToolView: aStringSearchTool
 
     stringSearchToolView := aStringSearchTool
+!
+
+tabContentView
+    ^ tabContentView
+!
+
+tabContentView:something
+    tabContentView := something.
+!
+
+worker
+    ^ worker
+!
+
+worker:aProcess
+    worker := aProcess.
 ! !
 
 !NavigationState methodsFor:'accessing-selection'!
@@ -391,38 +443,55 @@
 !
 
 setUpScrollableCodeView
-    |v aScrollableCodeView codeView|
+    |v aScrollableCodeView codeView |
 
-    aScrollableCodeView := HVScrollableView for:CodeView.
+    UserPreferences current useCodeView2InTools ifTrue:[
+        codeView := aScrollableCodeView := CodeView2 new.
+        codeView mode: #method.
+        codeView methodHolder: self theSingleSelectedMethodHolder
+    ] ifFalse:[
+        aScrollableCodeView := HVScrollableView for:CodeView.
+        codeView := aScrollableCodeView scrolledView.
+        aScrollableCodeView horizontalMini:true.
+    ].
+
     aScrollableCodeView name:'CodeView'.
-    aScrollableCodeView horizontalMini:true.
-    codeView := aScrollableCodeView scrolledView.
     codeView modifiedChannel:self codeModifiedHolder.
-    codeView model: self codeHolder.
+    codeView model:self codeHolder.
     codeView canTab:true.
+    UserPreferences current useCodeView2InTools ifTrue:[
+        codeView
+            classHolder:self theSingleSelectedClassFromMethodHolder;
+            languageHolder:self languageHolder
+    ].
 
     UserPreferences current showAcceptCancelBarInBrowser ifTrue:[
         ViewWithAcceptAndCancelBar notNil ifTrue:[
             v := ViewWithAcceptAndCancelBar new.
             v slaveView:aScrollableCodeView.
             v reallyModifiedHolder:self realModifiedStateHolder.
-            v cancelAction:[
+            v cancelAction:
+                [
                     "/ codeView setClipboardText:(codeView contents).   "/ for undo
                     codeView device rememberInCopyBufferHistory:(codeView contents).  "/ for undo
-                    codeView application 
+                    codeView application
                         delayedUpdateCodeWithAutoSearch:false checkModified:false.
-                    codeView requestFocus. 
+                    codeView requestFocus.
                 ].
-            v compareAction:[ 
+            v compareAction:
+                [
                     codeView application doCompareIn:self.
-                    codeView requestFocus 
+                    codeView requestFocus
                 ].
             aScrollableCodeView := v.
         ]
     ].
-    ^ aScrollableCodeView
+
+   ^aScrollableCodeView
 
     "Modified: / 25-08-2010 / 22:04:07 / cg"
+    "Modified: / 17-06-2011 / 12:39:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 03-07-2011 / 19:56:41 / cg"
 !
 
 specialEditorCanvasClassForResourceType:resourceTypeSymbol
@@ -460,6 +529,19 @@
 
 !NavigationState methodsFor:'aspects'!
 
+bookmarkHolder
+    "return/create the 'bookmarkHolder' value holder (automatically generated)"
+
+    bookmarkHolder isNil ifTrue:[
+        bookmarkHolder := ValueHolder with: self theSingleSelectedBookmarkFromMethodOrClass.
+        self selectedMethods onChangeSend: #updateBookmarkHolder to: self.
+        self selectedClasses onChangeSend: #updateBookmarkHolder to: self.
+    ].
+    ^ bookmarkHolder
+
+    "Modified: / 03-06-2011 / 12:00:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 categoryList
     categoryList isNil ifTrue:[
         categoryList := nil asValue.
@@ -591,6 +673,62 @@
     ^ infoLabelHolder
 !
 
+languageHolder
+
+    languageHolder ifNil:[
+        languageHolder := ValueHolder with: self theSingleSelectedLanguageFromMethodOrClass.
+        self selectedMethods onChangeSend: #updateLanguageHolder to: self.
+        self selectedClasses onChangeSend: #updateLanguageHolder to: self.
+    ].
+    ^languageHolder
+
+    "Created: / 20-07-2010 / 16:03:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+lintRuleListGenerator
+
+    | result |
+    result := self objectAttributeAt: #lintRuleListGenerator.
+    result ifNil:
+        [result := ValueHolder new.
+        self objectAttributeAt: #lintRuleListGenerator put: result].
+    ^result
+
+    "Created: / 22-07-2009 / 15:27:48 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+messageHolder
+    "return/create the 'messageHolder' value holder (automatically generated)"
+
+    messageHolder isNil ifTrue:[
+        messageHolder := ValueHolder new.
+    ].
+    ^ messageHolder
+!
+
+messageHolder:aValueHolder
+    "set the 'messageHolder' value holder (automatically generated)"
+
+    messageHolder := aValueHolder.
+!
+
+messageSpecHolder
+    "return/create the 'messageSpecHolder' value holder (automatically generated)"
+
+    messageSpecHolder isNil ifTrue:[
+        messageSpecHolder := ValueHolder with:#messageInfoSpec.
+    ].
+    ^ messageSpecHolder
+
+    "Modified: / 28-08-2010 / 11:40:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+messageSpecHolder:something
+    "set the 'messageSpecHolder' value holder (automatically generated)"
+
+    messageSpecHolder := something.
+!
+
 meta
     meta isNil ifTrue:[
         meta := false asValue.
@@ -650,6 +788,19 @@
     "Modified: / 18.8.2000 / 14:27:59 / cg"
 !
 
+navigationHistory
+
+    | history |
+    history := self objectAttributeAt: #navigationHistory.
+    history ifNil:
+        [history := NavigationHistory new.
+        self objectAttributeAt: #navigationHistory put: history].
+    ^history
+
+    "Created: / 21-02-2008 / 20:08:43 / janfrog"
+    "Modified: / 21-07-2009 / 22:39:57 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
 noAllItem
     noAllItem isNil ifTrue:[
         noAllItem := nil asValue.
@@ -687,6 +838,51 @@
     ^ packageLabelHolder
 !
 
+pluginVisibleHolder
+    pluginVisibleHolder isNil ifTrue:[
+        pluginVisibleHolder := false asValue.
+    ].
+    ^ pluginVisibleHolder
+
+    "Created: / 03-10-2010 / 17:50:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+profilerStatistics
+
+    | statistics |
+    statistics := self objectAttributeAt: #profilerStatistics.
+    statistics ifNil:
+        [statistics := ValueHolder new.
+        self objectAttributeAt: #profilerStatistics put: statistics].
+    ^statistics
+
+    "Created: / 21-02-2008 / 20:08:43 / janfrog"
+    "Modified: / 21-07-2009 / 22:40:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+profilerStatistics: anObject
+
+    self objectAttributeAt: #profilerStatistics put: anObject
+
+    "Created: / 21-02-2008 / 20:08:43 / janfrog"
+    "Modified: / 21-07-2009 / 22:41:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+progressHolder
+    "return/create the 'progressHolder' value holder (automatically generated)"
+
+    progressHolder isNil ifTrue:[
+        progressHolder := ValueHolder new.
+    ].
+    ^ progressHolder
+!
+
+progressHolder:aValueHolder
+    "set the 'progressHolder' value holder (automatically generated)"
+
+    progressHolder := aValueHolder.
+!
+
 projectListGenerator
     projectListGenerator isNil ifTrue:[
         projectListGenerator := nil asValue.
@@ -720,6 +916,15 @@
     ^ selectedClasses
 !
 
+selectedLintRules
+    selectedLintRules isNil ifTrue:[
+        selectedLintRules := nil asValue.
+    ].
+    ^ selectedLintRules
+
+    "Modified: / 02-02-2010 / 20:42:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 selectedMethods
     selectedMethods isNil ifTrue:[
         selectedMethods := nil asValue.
@@ -803,6 +1008,76 @@
     ^ sortBy
 !
 
+theSingleSelectedBookmarkFromMethodOrClass
+
+    | mth cls |
+
+    mth := self theSingleSelectedMethod. 
+    (mth notNil and:[mth mclass notNil])
+        ifTrue:[^Tools::NewSystemBrowser bookmarkForClass:mth mclass selector:mth selector].
+    cls := self theSingleSelectedClass.
+    cls 
+        ifNotNil:[^Tools::NewSystemBrowser bookmarkForClass:cls selector:nil].
+    ^nil
+
+    "Created: / 02-06-2011 / 22:16:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-06-2011 / 23:19:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+theSingleSelectedClassFromMethodHolder
+
+    ^BlockValue 
+        with:
+            [:i1 :i2| | mth cls |
+            mth := self theSingleSelectedMethod. 
+            cls := mth ifNil:[nil] ifNotNil:[mth mclass].
+            cls ifNil:[
+            cls := self theSingleSelectedClass].
+            cls]
+        argument: self selectedMethods
+        argument: self selectedClasses.
+
+    "Created: / 14-02-2010 / 10:05:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+theSingleSelectedLanguageFromMethodOrClass
+
+    | mth cls |
+
+    mth := self theSingleSelectedMethod. 
+    mth ifNotNil:[^mth programmingLanguage].
+    cls := self theSingleSelectedClass.
+    cls ifNotNil:[^cls programmingLanguage].
+    ^SmalltalkLanguage instance
+
+    "Created: / 20-07-2010 / 15:59:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+theSingleSelectedMethodHolder
+
+    ^BlockValue 
+        with:
+            [:i1 | self theSingleSelectedMethod]
+        argument: 
+            self selectedMethods
+
+    "Created: / 17-06-2011 / 12:39:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateBookmarkHolder
+
+   ^self bookmarkHolder value: self theSingleSelectedBookmarkFromMethodOrClass
+
+    "Created: / 02-06-2011 / 22:13:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateLanguageHolder
+
+   ^self languageHolder value: self theSingleSelectedLanguageFromMethodOrClass
+
+    "Created: / 20-07-2010 / 16:05:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 variableFilter
     variableFilter isNil ifTrue:[
         variableFilter := nil asValue.
@@ -836,6 +1111,21 @@
     ^ notMetaToggle
 ! !
 
+!NavigationState methodsFor:'history'!
+
+addToHistory: class selector: selector
+
+    | entry |
+    selector ifNil:[^self].
+    entry := SystemBrowser historyEntryForClass: class selector: selector.
+    self navigationHistory goTo: entry.
+    ^entry
+
+    "Created: / 22-02-2008 / 08:44:05 / janfrog"
+    "Modified: / 22-02-2008 / 17:20:00 / janfrog"
+    "Modified: / 25-10-2009 / 15:06:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !NavigationState methodsFor:'printing & storing'!
 
 colorizeForModifiedBuffer:someString
@@ -1013,6 +1303,7 @@
 
     theSingleMethod notNil ifTrue:[
         methodName := theSingleMethod selector.
+        methodName ifNotNil:[methodName := methodName selector].
         theSingleMethod isJavaMethod ifTrue:[
             methodName := theSingleMethod printStringForBrowserWithSelector:methodName.
         ].
@@ -1126,8 +1417,9 @@
     nm isNil ifTrue:[ ^ nil ].
     ^ nm , suffix.
 
-    "Created: / 11.2.2000 / 13:32:16 / cg"
-    "Modified: / 18.8.2000 / 21:06:35 / cg"
+    "Created: / 11-02-2000 / 13:32:16 / cg"
+    "Modified: / 18-08-2000 / 21:06:35 / cg"
+    "Modified: / 20-07-2010 / 10:52:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 shortNameString
@@ -1309,10 +1601,6 @@
 
 !NavigationState class methodsFor:'documentation'!
 
-version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_NavigationState.st,v 1.33 2010-08-25 20:06:22 cg Exp $'
-!
-
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_NavigationState.st,v 1.33 2010-08-25 20:06:22 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_NavigationState.st,v 1.34 2011-07-03 17:57:08 cg Exp $'
 ! !