Tools__Inspector2Tab.st
author Claus Gittinger <cg@exept.de>
Mon, 20 Jan 2020 21:02:47 +0100
changeset 19422 c6ca1c3e0fd7
parent 18416 536ee8775804
permissions -rw-r--r--
#REFACTORING by exept class: MultiViewToolApplication added: #askForFile:default:forSave:thenDo: changed: #askForFile:default:thenDo: #askForFile:thenDo: #menuSaveAllAs #menuSaveAs

"{ Encoding: utf8 }"

"
 COPYRIGHT (c) 2006 by eXept Software AG
	      All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
"{ Package: 'stx:libtool' }"

"{ NameSpace: Tools }"

Object subclass:#Inspector2Tab
	instanceVariableNames:'inspector label view application priority'
	classVariableNames:''
	poolDictionaries:''
	category:'Interface-Inspector2'
!

!Inspector2Tab class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2006 by eXept Software AG
	      All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
! !

!Inspector2Tab class methodsFor:'special instance creation'!

toBrowseClass:aClass selector:initialSelectorOrNil label:label
    "create and return an inspector tab containing
     a browser on aClass (and optional initialSelector).
     This is a utility to be used by inspector2TabXXX methods, which want to embed a class browser."

    |makeView view|

    makeView :=
        [
            |spec browser navigationState canvas|


            (view isNil ifTrue:[
                "/ spec := #singleClassBrowserSpec.
                spec := #multipleClassBrowserSpec.

                browser := Tools::NewSystemBrowser new.
                browser isEmbeddedBrowser:true.
                browser createBuilder.

                navigationState := browser navigationState.
                navigationState canvasType:spec.
                browser browserCanvasType:spec.

                canvas := browser browserCanvas value.
                canvas builder:(browser builder).
                navigationState canvas:canvas.
                "/ browser switchToClassHierarchyView.
                "/ browser showInheritedMethods.

                navigationState classList value:(aClass theNonMetaclass withAllSuperclasses).
                navigationState meta value:(aClass isMetaclass).
                browser classListGenerator value:(aClass theNonMetaclass withAllSuperclasses).
                browser sortByNameAndInheritance value:true.
                browser
                    selectClass:aClass;
                    selectProtocol: (Tools::BrowserList nameListEntryForALL).
                browser switchToClass:aClass selector:initialSelectorOrNil updateHistory: false.
                view := ApplicationSubView new client: browser spec: spec.
                "/ sigh must be done after postbuild
                navigationState classListApplication addOwnerClasses value:false.
            ]).
            view
        ].

    ^ self new
            priority: 10;
            label:label;
            view: makeView;
            yourself

    "
     GenericToolbarIconLibrary systemBrowserIcon inspect
    "

    "Modified: / 11-02-2017 / 10:17:40 / cg"
    "Modified (format): / 09-11-2017 / 09:59:28 / mawalch"
    "Modified: / 22-09-2018 / 10:58:19 / Claus Gittinger"
! !

!Inspector2Tab methodsFor:'accessing'!

application:anApplicationModelOrBlockOrValueModel
    view := [
                ApplicationSubView new
                    client: anApplicationModelOrBlockOrValueModel value;
                    yourself
            ].

    "Created: / 16-01-2008 / 16:51:05 / janfrog"
    "Modified: / 17-02-2008 / 08:58:34 / janfrog"
    "Modified: / 11-02-2017 / 10:19:39 / cg"
!

applicationHolder:aValueModelOrBlock
    <resource: #obsolete>
    self application:aValueModelOrBlock.

    "Modified: / 11-02-2017 / 10:20:09 / cg"
!

inspector:anInspector2
    inspector := anInspector2

    "Created: / 11-02-2017 / 10:24:29 / cg"
!

label
    ^ label

    "Created: / 16-01-2008 / 16:51:05 / janfrog"
!

label:aString
    label := aString.

    "Created: / 16-01-2008 / 16:51:05 / janfrog"
    "Modified: / 17-02-2008 / 08:58:41 / janfrog"
!

priority
    ^ priority ? 25

    "Created: / 17-02-2008 / 10:05:51 / janfrog"
!

priority:something
    priority := something.

    "Created: / 17-02-2008 / 10:05:51 / janfrog"
!

text:aStringOrValueModel

    self view:((HVScrollableView for:TextView) model: aStringOrValueModel; yourself)

    "Modified: / 17-02-2008 / 08:58:41 / janfrog"
    "Created: / 07-11-2008 / 08:40:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

view
    view isNil ifTrue:[
        application notNil ifTrue:[
            view := ApplicationSubView new.
            view client: application value.
        ]
    ] ifFalse:[
        view isBlock ifTrue:[
            view := view value
        ].
    ].
    self setupView.
    ^ view

    "Created: / 16-01-2008 / 16:51:05 / janfrog"
    "Modified: / 17-02-2008 / 10:38:59 / janfrog"
    "Modified: / 24-03-2014 / 18:25:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 11-02-2017 / 10:22:09 / cg"
!

view:aViewOrBlockOrValueModel
    view := aViewOrBlockOrValueModel.

    "Created: / 16-01-2008 / 16:51:05 / janfrog"
    "Modified: / 17-02-2008 / 08:58:46 / janfrog"
    "Modified (format): / 11-02-2017 / 10:22:30 / cg"
!

viewHolder:aValueModelOrBlock
    <resource: #obsolete>
    self view: aValueModelOrBlock.

    "Modified: / 11-02-2017 / 10:22:53 / cg"
!

viewOrNil
    ^ view

    "Created: / 24-03-2014 / 18:23:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!Inspector2Tab methodsFor:'setup'!

setupView

    (view respondsTo:#setMasterInspectorApplication:) ifTrue:[ 
        "this is for BridgeOjectInspectorView"
        view setMasterInspectorApplication:inspector.
    ].
    (view respondsTo:#sortOrderHolder:) ifTrue:[ 
        view sortOrderHolder:(inspector sortOrderHolder)
    ].

    "Modified: / 11-02-2017 / 10:23:28 / cg"
! !

!Inspector2Tab class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
!

version_CVS_jvrany
    ^ '$Header$'
!

version_SVN
    ^ '$Id$'
! !