class: Tools::Inspector2
added: (as dummy - to be implemented)
#hideHashes:
#hideMessages:
Fix expecco walkback
"
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 }"
ApplicationModel subclass:#Inspector2
instanceVariableNames:'tabViewAspect navigationHistoryHolder navigationStateAspect
browser currentObjectHolder colorProfileHolder
toolbarBackgroundHolder'
classVariableNames:'LastExtent ColorProfiles'
poolDictionaries:''
category:'Interface-Inspector2'
!
Model subclass:#NavigationState
instanceVariableNames:'theObject index tabs selectionIndex displayString'
classVariableNames:''
poolDictionaries:''
privateIn:Inspector2
!
!Inspector2 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.
"
!
documentation
"
an application for a multitab inspector
extendable by the inspected object itself, by providing additional
tabs via the inspector2XXX methods
[author:]
Jan Vrani
"
! !
!Inspector2 class methodsFor:'initialization'!
initialize
"Invoked at system start or when the class is dynamically loaded."
"/ please change as required (and remove this comment)
ColorProfiles := Dictionary new.
ColorProfiles
at: #default put: nil; "default color"
at: #red put: Color red lighter lighter;
at: #green put: Color green lighter;
at: #blue put: Color blue lighter;
at: #yellow put: Color yellow lighter;
at: #gray put: Color gray;
yourself.
"Modified: / 17-01-2012 / 12:57:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!Inspector2 class methodsFor:'help specs'!
flyByHelpSpec
"This resource specification was automatically generated
by the UIHelpTool of ST/X."
"Do not manually edit this!! If it is corrupted,
the UIHelpTool may not be able to read the specification."
"
UIHelpTool openOnClass:Tools::Inspector2
"
<resource: #help>
^ super flyByHelpSpec addPairsFrom:#(
#backwardInVisitingHistory
'Move backward in the history of previously visited objects'
#browseClassOfShownObject
'Open a SystemBrowser on the shown object''s class'
#browseFile
'Open a FileBrowser on the file represented by the shown object'
#editImage
'Open an ImageEditor on the bitmap/image represented by the shown object'
#forwardInVisitingHistory
'Move forward in the history of previously visited objects'
#colorProfile
'Change the color profile'
#refresh
'Refresh for changed object'
)
"Created: / 19-08-2011 / 08:52:33 / cg"
!
helpSpec
"This resource specification was automatically generated
by the UIHelpTool of ST/X."
"Do not manually edit this!! If it is corrupted,
the UIHelpTool may not be able to read the specification."
"
UIHelpTool openOnClass:Tools::Inspector2
"
<resource: #help>
^ super helpSpec addPairsFrom:#(
#colorProfile
''
)
! !
!Inspector2 class methodsFor:'image specs'!
settingsIcon
^self settingsIcon5
"Modified: / 17-01-2012 / 12:45:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 19-01-2012 / 14:00:35 / cg"
!
settingsIcon1
"This resource specification was automatically generated
by the ImageEditor of ST/X."
"Do not manually edit this!! If it is corrupted,
the ImageEditor may not be able to read the specification."
"
self settingsIcon inspect
ImageEditor openOnClass:self andSelector:#settingsIcon
Icon flushCachedIcons
"
<resource: #image>
^Icon
constantNamed:'Tools::Inspector2 class settingsIcon'
ifAbsentPut:[(Depth24Image new) width: 24; height: 24; photometric:(#rgb); bitsPerSample:(#[8 8 8]); samplesPerPixel:(3); bits:(ByteArray fromPackedString:'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[G*LY'':\Y'':\Y'':\Y'':\Y'':\Y'':\Y'':\Y'':\Y''6\
YW6[YG.ZX7.YX7*YX7*YX7*YX7.YYG.ZYW6[[G*L@@@@@@@@@@@@@@@@YW6["Y:4"Y:4"Y:4"9>4#*F4$JJ4$*N5$:R5$*N4#Y>2!!)&/_9R,^)F+^H>*]8>*
^YF+_YR- 9&0YG2Z@@@@@@@@@@@@@@@@YW6[!!I.2!!923"):3#JB3#*B3#*F3#*F4#:F4#I>3!!9*0)J65)J65)J65)J65)J65)J65)J65^YF,X7*Y@@@@@@@@
@@@@@@@@YW6[ 9&1!!)*1!!9.1!!921!!921!!9.1!!9.1!!9.1!!)*1 YZ.]86()J65.[&9.[&9.[&9.[&9.[&9[8&(X''*X@@@@@@@@@@@@@@@@YG2Z_)V._YV-_IR-
^9R.^9R.^9R.^9R.^9R.^)N-](>*[HZ%XG.](:24.K"8.K"8.K"8.K"8ZHN#XW"W@@@@@@@@@@@@@@@@YG2Z]H:+\8:+\X:,\(>,\(>,\(>,\(>,\X:+[82*
Z(^''X'': (:24.K"8.K"8.K"8.K"8.K"8YG>!!XW"W@@@@@@@@@@@@@@@@X7.YZ8"(ZX*)ZX*)ZX*)ZX*)ZX*)ZX*)ZX&)YXV&W7:!!(*.3-;^7-;^7-;^7-;^7
-;^7-;^7XG6 XG^V@@@@@@@@@@@@@@@@X7.YY(N&X8Z(X8Z(X8Z(X8Z(X8Z(X8Z(X(R(W8B$(*.3-;^7-;^7-;^7-;^7T''BX-;^7-;^7WG2 XG"V@@@@@@@@
@@@@@@@@X7.YXW>$W8R(W8R(W8R(W8R(W8R(W8R(W(N''WHB$U''&_-;^7-;^7-;^7UGV\U''"_U''&_-;^7V'':#XW"W@@@@@@@@@@@@@@@@X''*XW''2"WHJ''WHJ''
WHJ''WHJ''V(B&VG:%VW>&V(B&U7.#T7^_-+Z6T7^_U''."VG6$VG:$VG6$VW>%XW&W@@@@@@@@@@@@@@@@X''*XV''& U7>&VXF''V(N(VXF''T7&!!(Z*2T7&!!VHB''
VXF''U7>%U''6$U7>%VXF''V(J(V(J(VXF''V(J(X''&X@@@@@@@@@@@@@@@@X''*XV7"_(Z*2UW2#VXJ''UW2#(Z*2-+Z6-+Z6UW2#V(N(V8V*V8R)V8V*V(V*V8V*
V8Z*WHZ*V8Z*X''*X@@@@@@@@@@@@@@@@X''*XWW* (Z*2(Z*2UW*!!(Z*2-+Z6-+Z6-+Z6-+Z6W8^+X82.X82.X82.X82.X82.X82.X82.X8.-X''*X@@@@@@@@
@@@@@@@@XW&WXW6"(J&1-[V5(J&1-[V5-[V5-[V5-[V5XXZ''Z(>-[IF/[IF/[IF/[IF/[IF/[IF/[IF/W(..XW&W@@@@@@@@@@@@@@@@XW&WY(J%(J&1-[V5
-[V5-[V5-[V5-[V5ZX.(\)V/]Y^1]Y^1]Y^1]Y^1]Y^1]Y^1]Y^1]Y^1W(:1XW&W@@@@@@@@@@@@@@@@XG"VZ(V&'':"0-KR4-KR4-KR4-KR4Y(Z$])V-_I*1
_I*1_I*1_I*1_I*1_I*1_I*1_I*1^9*1WX>1XG"V@@@@@@@@@@@@@@@@XG"V[H^'''':"0-KR4-KR4-KR4-KR4-KR4\(>(_Y*/ I61 I61 I61 I61 I61 I61
I21 I21XH>1XG"V@@@@@@@@@@@@@@@@XG"V[(**'':"0-KR4-KR4-KR4-KR4-KR4-KR4^)^. I61 I61 I61 I61 I61_961_961_921Y(:0XG"V@@@@@@@@
@@@@@@@@W7^U\H2,[(&)[X"''[(&''[(&''[8&''\H*''\(2)]9F,^)N.^YJ.^YJ.^IF.]YB.\(:-\H6-[X2-[H.-W7^U@@@@@@@@@@@@@@@@X''BBW7^UW7^UW7^U
W7^UW7^UW7^UW7^UW7^UW7^UW7^UW7^UW7^UW7^UW7^UW7^UW7^UW7^UW7^UXF:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@') ; mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<@@@@@@@@') ; yourself); yourself]
"Created: / 17-01-2012 / 12:45:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
settingsIcon2
"This resource specification was automatically generated
by the ImageEditor of ST/X."
"Do not manually edit this!! If it is corrupted,
the ImageEditor may not be able to read the specification."
"
self settingsIcon2 inspect
ImageEditor openOnClass:self andSelector:#settingsIcon2
Icon flushCachedIcons
"
<resource: #image>
^Icon
constantNamed:'Tools::Inspector2 class settingsIcon2'
ifAbsentPut:[(Depth24Image new) width: 24; height: 24; photometric:(#rgb); bitsPerSample:(#[8 8 8]); samplesPerPixel:(3); bits:(ByteArray fromPackedString:'
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU"9J["IR#"IR#"IR#"IR#"IR#"IR#"IR#"IR#"IN#
!!9N"!!9J"!!)J!!!!)J!!!!)J!!!!)J!!!!)J!!!!9J"!!9N""9J[UUUUUUUUUUUUUUUU!!9N"&ZR/&ZR/&ZR/&*R/''JV/''ZZ/''*Z/''*^/''*Z/&:R.&JF,%I>+$)6*$Y2*$I2*
$Y6*$9>+%*F-!!9N"UUUUUUUUUUUUUUUU!!9N"%:J.&JN.&*R.&:V.''JV.''JV.''JV/''JV/&:R.&JJ-4][Z4][Z4][Z4][Z4][Z4][Z4][Z$Y6+!!)J!!UUUUUUUU
UUUUUUUU!!9N"%*F-&JJ-&JJ-&JN-&JN-&JJ-&JJ-&JJ-&JJ-%ZB,$I.)4][Z7M3\7M3\7M3\7M3\7M3\#I&)!!)J!!UUUUUUUUUUUUUUUU!!9N"%I>,$9>+$9>+
$)>,$)>,$)>,$)>,$)>,$):+$I2*"9"''!!YJ#)*./6=/[6=/[6=/[6=/["YZ&!!YF UUUUUUUUUUUUUUUU!!9N"#92*#)2*#Y2+#)2+#)2+#)2+#)2+#Y2*#I.*
")"(!!)R%)*./6=/[6=/[6=/[6=/[6=/[!!9R%!!YF UUUUUUUUUUUUUUUU!!)J!!")&)"Y*)"Y*)"Y*)"Y*)"Y*)"Y*)"Y&)!!9^(!!IR%)**.6=/[6=/[6=/[6=/[
6=/[6=/[!!YN%!!YB UUUUUUUUUUUUUUUU!!)J!!"IZ(!!)")!!)")!!)")!!)")!!)")!!)")!!)^)!!IV'')**.6=/[6=/[6=/[6=/[_(6!!6=/[6=/[ 9N%!!YF UUUUUUUU
UUUUUUUU!!)J!!!!YR''!!I^)!!I^)!!I^)!!I^)!!I^)!!I^)!!IZ( 9V'' IF$6=/[6=/[6=/[_8># IF$ IF$6=/[ )R&!!YF UUUUUUUUUUUUUUUU!!)J!!!!IN& 9Z( 9Z(
9Z( 9Z( )V( YR'' YR( )V( IJ&_)B$6-+Z_)B$ IJ& YN'' YR'' YN'' YR''!!YF UUUUUUUUUUUUUUUU!!)J!! )F% IR( YV( )Z) YV(_)F%)Z*._)F% YV(
YV( IR'' IN'' IR'' YV( )Z) )Z) YV( )Z)!!)F!!UUUUUUUUUUUUUUUU!!)J!! )F$)Z*._9N& YZ(_9N&)Z*.6-+Z6-+Z_9N& )Z) )^* )^) )^* )^* )^*
)"* 9"* )"*!!)J!!UUUUUUUUUUUUUUUU!!)J!! 9J%)Z*.)Z*._9J%)Z*.6-+Z6-+Z6-+Z6-+Z!!I"*!!).,!!).,!!).,!!).,!!).,!!).,!!).,!!)*+!!)J!!UUUUUUUU
UUUUUUUU!!YF !!YN&)Z&-6-+Z)Z&-6-+Z6-+Z6-+Z6-+Z!!Y"(")2+"96,"96,"96,"96,"96,"96,"96,!!I*,!!YF UUUUUUUUUUUUUUUU!!YF "IZ'')Z&-6-+Z
6-+Z6-+Z6-+Z6-+Z"Y*)#)>,#:B-#:B-#:B-#:B-#:B-#:B-#:B-#:B-!!I2-!!YF UUUUUUUUUUUUUUUU!!YF ")^()J&-6]''Y6]''Y6]''Y6]''Y"I"''$I>+$:J-
$:J-$:J-$:J-$:J-$:J-$:J-$:J-$*J- 92-!!YF UUUUUUUUUUUUUUUU!!YF "9"()J&-6]''Y6]''Y6]''Y6]''Y6]''Y#)2)$:J,%ZN-%ZN-%ZN-%ZN-%ZN-%ZN-
%ZN-%ZN-!!Y2-!!YF UUUUUUUUUUUUUUUU!!YF #I**)J&-6]''Y6]''Y6]''Y6]''Y6]''Y6]''Y$*B,%ZN-%ZN-%ZN-%ZN-%ZN-%JN-%JN-%JN-"I2-!!YF UUUUUUUU
UUUUUUUU!!IB_#Y.+#I&)"9&(#I&(#I&(#I&(#Y*(#).)$I6+$):,$Y:,$Y:,$Y6,#96,#)2+#Y.+"9.+"9*+!!IB_UUUUUUUUUUUUUUUU!!(6V!!IB_!!IB_!!IB_
!!IB_!!IB_!!IB_!!IB_!!IB_!!IB_!!IB_!!IB_!!IB_!!IB_!!IB_!!IB_!!IB_!!IB_!!IB_!!X2UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUU') ; mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<@@@@@@@@') ; yourself); yourself]
!
settingsIcon3
"This resource specification was automatically generated
by the ImageEditor of ST/X."
"Do not manually edit this!! If it is corrupted,
the ImageEditor may not be able to read the specification."
"
self settingsIcon3 inspect
ImageEditor openOnClass:self andSelector:#settingsIcon3
Icon flushCachedIcons
"
<resource: #image>
^Icon
constantNamed:'Tools::Inspector2 class settingsIcon3'
ifAbsentPut:[(Depth24Image new) width: 24; height: 24; photometric:(#rgb); bitsPerSample:(#[8 8 8]); samplesPerPixel:(3); bits:(ByteArray fromPackedString:'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TZC?V*_?V*_?V*_?V*_?V*_?V*_?V*_?V*_?V*S?
VJ[?UZO?TJK?TI??TI??TI??TJK?UZO?VJ[?TZC?@@@@@@@@@@@@@@@@VJ[?,]_?,]_?,]_?-]7?/NC?/>C?0=??1^C?0^K?-=7?*-G?&L+?"<W?!!<G?!!LO?
"\W?$<+?(]C?UZO?@@@@@@@@@@@@@@@@VJ[?)]''?+]S?-M_?-=7?/M/?/M/?/NC?/-3?-=7?+MK?7OC?7OC?7OC?7OC?7OC?7OC?7OC?"<S?TI??@@@@@@@@
@@@@@@@@VJ[?(]W?*]G?*=S?*=+?*=+?*=S?*=S?*=S?*]G?''L3?!![??7OC?????????????????????[+''?S:G?@@@@@@@@@@@@@@@@UZO?%\/?$<+?$\''?
#,''?#,''?#,''?#,''?#,''?#\#? <O?Y;S?QZK?6.????7=??7=??7=??7=W;C?SI??@@@@@@@@@@@@@@@@UZO?^<K?^LC?\,G?]<K?]<K?]<K?]<K?]LW?\LO?
X;W?TZ_?6.????7=??7=??7=??7=??7=UZ#?SI??@@@@@@@@@@@@@@@@TJK?Y[[?XLO?XLO?XLO?XLO?XLO?XLO?XLC?T;S?QZ/?5>7???+:??+:??+:??+:
??+:??+:RZ[?RI3?@@@@@@@@@@@@@@@@TJK?VJ??S+''?S+''?S+''?S+''?S+''?S+''?S[K?Q*7?5>7???+:??+:??+:??+:DH''???+:??+:OJW?RI3?@@@@@@@@
@@@@@@@@TJK?R:_?Q[''?Q[''?Q[''?Q[''?Q[''?Q[''?P[W?OKG?HZG???+:??+:??+:FY+?HY;?HZG???+:M:+?SI??@@@@@@@@@@@@@@@@S:G?P*W?N;S?N;S?
N;S?N;S?N[G?KZ+?L*/?N[G?J*S?E9???/#8E9??IZO?J:''?J;G?J:''?L[C?SJK?@@@@@@@@@@@@@@@@S:G?L9;?J+K?L+W?MK''?L+W?EJO?5^3?EJO?K;O?
L+W?J+K?I+C?J+K?L+W?MK[?MK[?L+W?MK[?S9;?@@@@@@@@@@@@@@@@S:G?M9/?5^3?HZ_?L+#?HZ_?5^3??/#8?/#8HZ_?MK''?M+/?NK+?M+/?MK7?M+/?
M+;?N[;?M+;?S:G?@@@@@@@@@@@@@@@@S:G?O:C?5^3?5^3?HJS?5^3??/#8?/#8?/#8?/#8P+;?S,[?S,[?S,[?S,[?S,[?S,[?S,[?S,W?S:G?@@@@@@@@
@@@@@@@@SJK?RZK?4^+???S44^+???S4??S4??S4??S4R[3?XL3?Y,;?Y,;?Y,;?Y,;?Y,;?Y,;?Y,;?O<_?SJK?@@@@@@@@@@@@@@@@SJK?VZ7?4^+???S4
??S4??S4??S4??S4XLO?]-K?_=S?_=S?_=S?_=S?_=S?_=S?_=S?_=S?O,??SJK?@@@@@@@@@@@@@@@@RI3?YKG?3>''???K2??K2??K2??K2V;/? =K?$]#?
$]#?$]#?$]#?$]#?$]#?$]#?$]#?#=_?O]O?RI3?@@@@@@@@@@@@@@@@RI3?ZK[?3>''???K2??K2??K2??K2??K2]L#?%]_?&-7?&-7?&-7?&-7?&-7?&-7?
&-+?&-+?P<7?RI3?@@@@@@@@@@@@@@@@RI3?[[+?3>''???K2??K2??K2??K2??K2??K2"=K?&-7?&-7?&-7?&-7?&-7?%=+?%=+?%=+?U<''?RI3?@@@@@@@@
@@@@@@@@QY3?\[7?[+''?Z;''?[K/?[K/?[+''?\[3?]+7?!!,W?"<#?",W?",W?!!<S?_,S?]<K?\+;?[K;?Z[/?QY3?@@@@@@@@@@@@@@@@M8;?QY3?QY3?QY3?
QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?K(;?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@') ; mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<@@@@@@@@') ; yourself); yourself]
!
settingsIcon4
"This resource specification was automatically generated
by the ImageEditor of ST/X."
"Do not manually edit this!! If it is corrupted,
the ImageEditor may not be able to read the specification."
"
self settingsIcon4 inspect
ImageEditor openOnClass:self andSelector:#settingsIcon4
Icon flushCachedIcons
"
<resource: #image>
^Icon
constantNamed:'Tools::Inspector2 class settingsIcon4'
ifAbsentPut:[(Depth24Image new) width: 24; height: 24; photometric:(#rgb); bitsPerSample:(#[8 8 8]); samplesPerPixel:(3); bits:(ByteArray fromPackedString:'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TZC?V*_?V*_?V*_?V*_?V*_?V*_?V*_?V*_?V*S?
VJ[?UZO?TJK?TI??TI??TI??TJK?UZO?VJ[?TZC?@@@@@@@@@@@@@@@@VJ[???>1??>1??>1??>5??><??>????C???E???A??>7??>*??>X??>J??>F??>C
??>H??>S??> UZO?@@@@@@@@@@@@@@@@VJ[???>%??>-??>4??>7??><??><??><??>>??>7??>*??>*??>J??>J??>J??>J??>J??>J??>JTI??@@@@@@@@
@@@@@@@@VJ[???> ??>)??>+??>+??>+??>+??>+??>+??>)??>\??>D??>D??>D??>D??>D??=-??=-??=-S:G?@@@@@@@@@@@@@@@@UZO???>U??>S??>Q
?/:N?/:N?/:N?/:N?/:N?/:N?/:N??=&??=&??=&??=&??=_??=_??=_??=_SI??@@@@@@@@@@@@@@@@UZO???=;??=8??=1??=6??=6?/:N?/:N?/:N?/:N
??=#?/=P?/=P?/=P?/=P??=U??=U??=U??=USI??@@@@@@@@@@@@@@@@TJK?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?
Y[[?Y[[?Y[[?RI3?@@@@@@@@@@@@@@@@TJK?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?RI3?@@@@@@@@
@@@@@@@@TJK?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?SI??@@@@@@@@@@@@@@@@S:G?Y[[?Y[[?Y[[?
Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?SJK?@@@@@@@@@@@@@@@@S:G?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?
Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?S9;?@@@@@@@@@@@@@@@@S:G?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?
Y[[?Y[[?Y[[?S:G?@@@@@@@@@@@@@@@@S:G?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?S:G?@@@@@@@@
@@@@@@@@SJK?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?SJK?@@@@@@@@@@@@@@@@SJK?Y[[?Y[[?Y[[?
Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?SJK?@@@@@@@@@@@@@@@@RI3?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?
Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?RI3?@@@@@@@@@@@@@@@@RI3?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?
Y[[?Y[[?Y[[?RI3?@@@@@@@@@@@@@@@@RI3?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?RI3?@@@@@@@@
@@@@@@@@QY3?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?Y[[?QY3?@@@@@@@@@@@@@@@@M8;?QY3?QY3?QY3?
QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?QY3?K(;?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@') ; mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<@@@@@@@@') ; yourself); yourself]
!
settingsIcon5
^ GenericToolbarIconLibrary palette16x16Icon
"Created: / 19-01-2012 / 14:00:24 / cg"
! !
!Inspector2 class methodsFor:'interface specs'!
windowSpec
"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::Inspector2 andSelector:#windowSpec
Tools::Inspector2 new openInterface:#windowSpec
Tools::Inspector2 open
"
<resource: #canvas>
^
#(FullSpec
name: windowSpec
window:
(WindowSpec
label: 'Inspector2'
name: 'Inspector2'
labelChannel: windowTitleAspect
min: (Point 0 0)
bounds: (Rectangle 0 0 388 421)
menu: mainMenu
)
component:
(SpecCollection
collection: (
(MenuPanelSpec
name: 'ToolBar'
layout: (LayoutFrame 0 0 0 0 0 1 40 0)
backgroundChannel: toolbarBackgroundHolder
menu: toolbarMenu
textDefault: true
)
(NoteBookViewSpec
name: 'NoteBook'
layout: (LayoutFrame 0 0 40 0 0 1 0 1)
model: tabSelectionIndexAspect
menu: tabLabelsAspect
useIndex: true
fitLastRow: false
canvas: tabViewAspect
keepCanvasAlive: true
)
)
)
)
! !
!Inspector2 class methodsFor:'menu specs'!
mainMenu
"This resource specification was automatically generated
by the MenuEditor of ST/X."
"Do not manually edit this!! If it is corrupted,
the MenuEditor may not be able to read the specification."
"
MenuEditor new openOnClass:Tools::Inspector2 andSelector:#mainMenu
(Menu new fromLiteralArrayEncoding:(Tools::Inspector2 mainMenu)) startUp
"
<resource: #menu>
^
#(Menu
(
(MenuItem
label: 'File'
translateLabel: true
submenu:
(Menu
(
(MenuItem
label: 'Exit'
itemValue: closeRequest
translateLabel: true
)
)
nil
nil
)
)
(MenuItem
label: 'View'
translateLabel: true
submenu:
(Menu
(
(MenuItem
label: 'Expand Arrays in "all xxx"-Lists'
itemValue: expandArraysInAllList:
translateLabel: true
indication: expandArraysInAllList
)
(MenuItem
label: '-'
)
(MenuItem
label: 'Color Setting'
translateLabel: true
submenuChannel: settingsMenu
)
)
nil
nil
)
)
)
nil
nil
)
!
settingsMenu
"This resource specification was automatically generated
by the MenuEditor of ST/X."
"Do not manually edit this!! If it is corrupted,
the MenuEditor may not be able to read the specification."
"
MenuEditor new openOnClass:Tools::Inspector2 andSelector:#settingsMenu
(Menu new fromLiteralArrayEncoding:(Tools::Inspector2 settingsMenu)) startUp
"
<resource: #menu>
^
#(Menu
(
(MenuItem
label: 'Default'
nameKey: #'Default'
translateLabel: true
choice: colorProfileHolder
choiceValue: default
)
(MenuItem
label: 'Red'
nameKey: #'Red'
translateLabel: true
choice: colorProfileHolder
choiceValue: red
)
(MenuItem
label: 'Green'
nameKey: #'Green'
translateLabel: true
choiceValue: green
choice: colorProfileHolder
)
(MenuItem
label: 'Blue'
nameKey: #'Blue'
translateLabel: true
choiceValue: blue
choice: colorProfileHolder
)
(MenuItem
label: 'Yellow'
nameKey: #'Yellow'
translateLabel: true
choiceValue: yellow
choice: colorProfileHolder
)
(MenuItem
label: 'Gray'
nameKey: #'Gray'
translateLabel: true
choiceValue: gray
choice: colorProfileHolder
)
)
nil
nil
)
"Modified: / 17-01-2012 / 13:00:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
toolbarMenu
"This resource specification was automatically generated
by the MenuEditor of ST/X."
"Do not manually edit this!! If it is corrupted,
the MenuEditor may not be able to read the specification."
"
MenuEditor new openOnClass:Tools::Inspector2 andSelector:#toolbarMenu
(Menu new fromLiteralArrayEncoding:(Tools::Inspector2 toolbarMenu)) startUp
"
<resource: #menu>
^
#(Menu
(
(MenuItem
activeHelpKey: backwardInVisitingHistory
enabled: backButtonEnabledHolder
label: 'Back'
itemValue: backButtonAction
translateLabel: true
isButton: true
hideMenuOnActivated: false
submenuChannel: backButtonMenuChannel
labelImage: (ResourceRetriever ToolbarIconLibrary historyBackIcon)
)
(MenuItem
activeHelpKey: forwardInVisitingHistory
enabled: forwardButtonEnabledHolder
label: 'Forward'
itemValue: forwardButtonAction
translateLabel: true
isButton: true
hideMenuOnActivated: false
submenuChannel: forwardButtonMenuChannel
labelImage: (ResourceRetriever ToolbarIconLibrary historyForwardIcon)
)
(MenuItem
label: '-'
)
(MenuItem
activeHelpKey: browseClassOfShownObject
enabled: browseButtonEnabledHolder
label: 'Browse'
itemValue: browseClassAction
translateLabel: true
isButton: true
hideMenuOnActivated: false
labelImage: (ResourceRetriever ToolbarIconLibrary startNewSystemBrowserIcon)
)
(MenuItem
activeHelpKey: browseFile
label: 'Browse File'
itemValue: browseFileAction
translateLabel: true
isButton: true
isVisible: currentObjectIsFilename
hideMenuOnActivated: false
labelImage: (ResourceRetriever ToolbarIconLibrary startNewFileBrowserIcon)
)
(MenuItem
activeHelpKey: editImage
label: 'Edit the Image'
itemValue: editImageAction
translateLabel: true
isButton: true
isVisible: currentObjectIsImage
hideMenuOnActivated: false
labelImage: (ResourceRetriever ToolbarIconLibrary startImageEditorIcon)
)
(MenuItem
activeHelpKey: refresh
label: 'Refresh for Changed Object'
itemValue: refreshTabs
translateLabel: true
isButton: true
startGroup: right
labelImage: (ResourceRetriever ToolbarIconLibrary reloadIcon)
)
(MenuItem
activeHelpKey: colorProfile
label: 'Settings'
translateLabel: true
isButton: true
isVisible: false
submenuChannel: settingsMenu
labelImage: (ResourceRetriever #'Tools::Inspector2' settingsIcon)
)
)
nil
nil
)
! !
!Inspector2 class methodsFor:'startup'!
openOn: anObject
^ self new openOn: anObject.
"Modified: / 17-02-2008 / 10:29:45 / janfrog"
"Modified (format): / 11-07-2011 / 22:28:03 / cg"
! !
!Inspector2 class methodsFor:'testing'!
testSimpleShow
|ins|
ins := Inspector2 openOn:4.
ins inspect:10.
ins inspect:42.
ins inspect:'dead one'.
ins inspect:'rolled back'.
"/ins inspectItem: (ins history at: 3). "/ Rollback history, zustanou jen prvni 3
ins inspect:'xFuj'.
"Modified: / 11-01-2008 / 20:36:37 / janfrog"
! !
!Inspector2 methodsFor:'accessing'!
backButtonEnabled:value
^ self backButtonEnabledHolder value:value
"Created: / 12-01-2008 / 19:14:35 / janfrog"
"Modified (format): / 19-08-2011 / 08:59:41 / cg"
!
currentObject
^ self navigationState theObject
"Created: / 13-01-2008 / 10:14:47 / janfrog"
"Modified: / 17-02-2008 / 09:49:01 / janfrog"
!
currentState
^ self navigationHistoryHolder currentItem
"Created: / 21-02-2008 / 19:39:45 / janfrog"
"Modified: / 27-02-2008 / 11:56:55 / janfrog"
!
forwardButtonEnabled:value
^ self forwardButtonEnabledHolder value:value
"Created: / 12-01-2008 / 19:14:48 / janfrog"
"Modified (format): / 19-08-2011 / 08:59:45 / cg"
!
navigationState
^ self navigationHistoryHolder value currentItem
"Created: / 17-02-2008 / 09:49:01 / janfrog"
"Modified: / 21-02-2008 / 19:34:14 / janfrog"
"Modified: / 22-07-2011 / 19:13:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
navigationState:historyItem
self navigationHistoryHolder "subjectChannel:" value currentItem:historyItem.
"/self fixNavigation. "Nevola se kvuli problemu s prekreslovanim"
"/self updateTabs.
"Created: / 17-02-2008 / 09:49:11 / janfrog"
"Modified: / 21-02-2008 / 19:47:26 / janfrog"
"Modified: / 22-07-2011 / 19:13:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 19-08-2011 / 09:16:38 / cg"
! !
!Inspector2 methodsFor:'aspects'!
backButtonEnabledHolder
"return/create the 'backButtonEnabledHolder' value holder (automatically generated)"
^(AspectAdaptor forAspect:#canGoBack)
subjectChannel: self navigationHistoryHolder
"Created: / 12-01-2008 / 19:13:49 / janfrog"
"Modified: / 27-02-2008 / 12:11:30 / janfrog"
!
browseButtonEnabledHolder
^ BlockValue
with:[:m | m notNil]
argument:self navigationStateAspect
"Created: / 19-08-2011 / 09:22:47 / cg"
!
colorProfileHolder
"return/create the 'colorProfileHolder' value holder (automatically generated)"
colorProfileHolder isNil ifTrue:[
colorProfileHolder := ValueHolder with: #default.
].
^ colorProfileHolder
"Modified: / 17-01-2012 / 12:54:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
currentObjectHolder
currentObjectHolder isNil ifTrue:[
currentObjectHolder := ValueHolder new
].
^ currentObjectHolder
"Created: / 27-02-2008 / 12:05:22 / janfrog"
"Created: / 19-08-2011 / 08:58:48 / cg"
!
currentObjectIsFilename
^ BlockValue
with:[:o | o isFilename ]
argument:self currentObjectHolder
"Created: / 19-08-2011 / 08:56:27 / cg"
!
currentObjectIsImage
^ BlockValue
with:[:o | o isImageOrForm ]
argument:self currentObjectHolder
"Created: / 15-01-2012 / 10:06:28 / cg"
!
expandArraysInAllList
^ InspectorView expandArraysInAllLists
"Created: / 30-01-2012 / 16:52:46 / cg"
!
expandArraysInAllList:aBoolean
InspectorView expandArraysInAllLists:aBoolean
"Created: / 30-01-2012 / 16:53:15 / cg"
!
forwardButtonEnabledHolder
"return/create the 'backButtonEnabledHolder' value holder (automatically generated)"
^(AspectAdaptor forAspect:#canGoForward)
subjectChannel: self navigationHistoryHolder
"Created: / 12-01-2008 / 19:13:49 / janfrog"
"Modified: / 27-02-2008 / 12:11:26 / janfrog"
!
navigationHistoryHolder
"return/create the 'currentItemHolder' value holder (automatically generated)"
navigationHistoryHolder isNil ifTrue:[
navigationHistoryHolder := Tools::NavigationHistory new.
].
^ navigationHistoryHolder
"Created: / 21-02-2008 / 19:34:14 / janfrog"
!
navigationStateAspect
navigationStateAspect isNil ifTrue:[
navigationStateAspect := (AspectAdaptor forAspect:#currentItem)
subjectChannel:self navigationHistoryHolder
].
^ navigationStateAspect
"Created: / 27-02-2008 / 12:05:22 / janfrog"
"Modified (format): / 19-08-2011 / 08:59:10 / cg"
!
tabLabelsAspect
^ (AspectAdaptor forAspect:#tabLabels)
subjectChannel:self navigationStateAspect
"Created: / 16-01-2008 / 17:29:52 / janfrog"
"Modified: / 27-02-2008 / 12:05:32 / janfrog"
"Modified (format): / 19-08-2011 / 08:59:21 / cg"
!
tabSelectionIndexAspect
^ ((AspectAdaptor forAspect:#selectionIndex)
subjectChannel:self navigationStateAspect)
onChangeEvaluate:[ self tabViewAspect changed ];
yourself
"Created: / 16-01-2008 / 17:29:29 / janfrog"
"Modified: / 27-02-2008 / 12:06:05 / janfrog"
!
tabViewAspect
tabViewAspect isNil ifTrue:[
tabViewAspect := (AspectAdaptor forAspect:#selectionView)
subjectChannel:self navigationStateAspect
].
^ tabViewAspect
"Created: / 16-01-2008 / 17:30:05 / janfrog"
"Modified: / 27-02-2008 / 12:05:46 / janfrog"
"Modified (format): / 19-08-2011 / 08:59:35 / cg"
!
toolbarBackgroundHolder
"return/create the 'toolbarBackgroundHolder' value holder (automatically generated)"
toolbarBackgroundHolder isNil ifTrue:[
toolbarBackgroundHolder := BlockValue
with: [:profile|
| clr |
clr := ColorProfiles at: profile value.
clr isNil ifTrue:[
clr := MenuPanel defaultBackgroundColor
].
clr.
] argument: self colorProfileHolder
].
^ toolbarBackgroundHolder
"Modified: / 17-01-2012 / 13:04:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
windowTitleAspect
^ (AspectAdaptor forAspect:#displayString)
subjectChannel:self navigationStateAspect
"Created: / 17-02-2008 / 08:42:21 / janfrog"
"Modified: / 27-02-2008 / 12:05:56 / janfrog"
! !
!Inspector2 methodsFor:'configuration'!
hideHashes:aBoolean
"compatibiliy with InspectorView - must be implemented"
#todo
!
hideMessages:aBoolean
"compatibiliy with InspectorView - must be implemented"
#todo
! !
!Inspector2 methodsFor:'menu'!
backButtonMenuChannel
^ [ self navigationHistoryHolder goBackMenu ]
"Created: / 12-01-2008 / 18:57:08 / janfrog"
"Modified: / 22-02-2008 / 16:57:46 / janfrog"
!
forwardButtonMenuChannel
^ [ self navigationHistoryHolder goForwardMenu ]
"Created: / 12-01-2008 / 18:57:30 / janfrog"
"Modified: / 22-02-2008 / 16:58:11 / janfrog"
! !
!Inspector2 methodsFor:'menu actions'!
backButtonAction
self navigationHistoryHolder goBack.
self updateWindowLabel
"Modified: / 21-02-2008 / 19:40:23 / janfrog"
"Modified: / 15-07-2011 / 16:26:28 / cg"
!
browseClassAction
"open a class browser, or try to add a tab to the previously opened class browser"
| class |
class := self currentObject class.
browser notNil ifTrue:[
"/ try to add a tab to the already opened browser
(browser isKindOf:Tools::NewSystemBrowser) ifTrue:[
browser spawnClassBrowserFor:(Array with:class) in:#newBuffer.
"/ browser spawnSingleClassBrowserFor:class in:#newBuffer.
browser window raise.
^ self.
].
].
"/ if that fails, open a new one
browser := UserPreferences current systemBrowserClass
openInClass:class selector:nil "/ browseSingleClass: class
"Modified: / 23-07-2011 / 11:28:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified (format): / 05-03-2012 / 13:03:55 / cg"
!
browseFileAction
"open a filebrowser on the file represented by the current object"
| fn |
fn := self currentObject asFilename.
UserPreferences current fileBrowserClass openOn:fn
"Created: / 19-08-2011 / 09:29:44 / cg"
!
changeColorAction: color
self toolbarBackgroundHolder value: (Color perform: color asSymbol)
"Created: / 17-01-2012 / 01:03:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
editImageAction
"open an imageEditor on the current object"
| img |
img := self currentObject.
ImageEditor openOnImage:img.
"Created: / 15-01-2012 / 10:08:29 / cg"
!
forwardButtonAction
self navigationHistoryHolder goForward.
self updateWindowLabel
"Created: / 21-02-2008 / 19:52:03 / janfrog"
"Modified: / 15-07-2011 / 16:26:33 / cg"
!
refreshTabs
self navigationHistoryHolder currentItem refreshTabs.
self tabViewAspect changed.
"/ sel := selectionIndex.
"/ self selectionIndex:nil.
"/ self selectionIndex:sel.
"Created: / 21-08-2011 / 08:23:00 / cg"
! !
!Inspector2 methodsFor:'opening'!
closeDownViews
LastExtent := self window extent.
super closeDownViews.
"Created: / 11-07-2011 / 22:33:47 / cg"
!
historyTryPush: anObject
<resource: #obsolete>
"/ Pokud uz na anObject byl tak tam skocit, jinak pridat na konec
self history do: [:item |
item theObject == anObject ifTrue:[ ^item ]
].
^ self history push:anObject.
"Modified: / 16-01-2008 / 14:25:30 / janfrog"
!
inspect:anObject
self navigationHistoryHolder currentItem:(NavigationState for:anObject).
self window notNil ifTrue:[
self updateWindowLabel
].
"Modified: / 27-02-2008 / 12:06:52 / janfrog"
"Modified: / 15-07-2011 / 16:26:03 / cg"
"Modified (format): / 19-08-2011 / 09:01:20 / cg"
!
openOn: anObject
self inspect: anObject.
self openWithExtent:(LastExtent ? nil).
"Modified: / 13-01-2008 / 13:55:27 / janfrog"
"Modified: / 11-07-2011 / 22:31:42 / cg"
!
postBuildWith:aBuilder
super postBuildWith:aBuilder.
self updateWindowLabel
"Created: / 15-07-2011 / 16:25:36 / cg"
!
updateWindowLabel
|currentItem object|
(currentItem := self navigationHistoryHolder currentItem) notNil ifTrue:[
object := currentItem theObject.
].
self currentObjectHolder value:object.
self window label:(InspectorView commonLabelFor:object).
"Created: / 15-07-2011 / 16:25:42 / cg"
! !
!Inspector2::NavigationState class methodsFor:'creating classes'!
for:anObject
|item|
item := self new.
item theObject:anObject.
^ item.
"Modified (format): / 19-08-2011 / 09:24:40 / cg"
! !
!Inspector2::NavigationState class methodsFor:'documentation'!
version
^'$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.35 2013-05-01 10:58:41 stefan Exp $'
!
version_SVN
^'§Id: Tools__Inspector2.st 115 2009-04-16 12:47:07Z vranyj1 §'
! !
!Inspector2::NavigationState methodsFor:'accessing'!
index
^ index
!
index:something
index := something.
!
selectionIndex
selectionIndex isNil ifTrue:[^1].
selectionIndex < 1 ifTrue:[^1].
selectionIndex > tabs size ifTrue:[^tabs size].
^selectionIndex
"Created: / 16-01-2008 / 17:24:27 / janfrog"
"Modified: / 17-02-2008 / 10:20:35 / janfrog"
"Modified: / 18-11-2011 / 15:00:01 / cg"
!
selectionIndex: anInteger
selectionIndex := anInteger.
self changed:#selectionIndex
"Created: / 16-01-2008 / 17:27:52 / janfrog"
"Modified: / 17-02-2008 / 09:46:45 / janfrog"
!
selectionView
|tab|
tab := self tabs at: self selectionIndex.
^tab
ifNil:[nil]
ifNotNil:[tab view].
"Created: / 16-01-2008 / 17:31:19 / janfrog"
!
tabLabels
^self tabs collect:[:tab | tab label]
"Created: / 16-01-2008 / 17:14:07 / janfrog"
!
tabViews
^self tabs collect:[:tab | tab view]
"Created: / 16-01-2008 / 17:14:13 / janfrog"
!
tabs
tabs isNil ifTrue:[self initializeTabs].
^tabs
"Created: / 16-01-2008 / 16:51:53 / janfrog"
"Modified: / 18-11-2011 / 15:00:05 / cg"
!
theObject
^ theObject
!
theObject:anObject
theObject := anObject.
self changed
"Modified: / 17-02-2008 / 08:38:44 / janfrog"
"Modified: / 19-08-2011 / 09:16:25 / cg"
! !
!Inspector2::NavigationState methodsFor:'comparing'!
= anotherState
^self class == anotherState class
and:[self theObject == anotherState theObject]
"Created: / 21-02-2008 / 19:39:01 / janfrog"
!
hash
^theObject hash
"Created: / 21-02-2008 / 19:38:08 / janfrog"
! !
!Inspector2::NavigationState methodsFor:'displaying'!
displayString
displayString isNil ifTrue:[
Error handle:[:ex |
displayString := '*ERROR*'
] do:[
displayString := theObject printString contractAtEndTo:15.
].
displayString := displayString , ' [', (theObject class name ? '???') , ']'
].
^ displayString
"Created: / 21-02-2008 / 19:53:07 / janfrog"
"Modified: / 13-06-2012 / 14:40:34 / cg"
! !
!Inspector2::NavigationState methodsFor:'initialization'!
initializeClassBrowserTab
| browser spec cls canvas makeView view|
cls := theObject class theNonMetaclass.
"/ spec := #singleClassBrowserSpec.
spec := #multipleClassBrowserSpec.
makeView := [
view isNil ifTrue:[
browser := Tools::NewSystemBrowser new.
browser isEmbeddedBrowser:true.
browser createBuilder.
browser navigationState canvasType:spec.
browser browserCanvasType:spec.
canvas := browser browserCanvas value.
canvas builder:(browser builder).
browser navigationState canvas:canvas.
"/ browser switchToClassHierarchyView.
"/ browser showInheritedMethods.
browser classListGenerator value:(cls withAllSuperclasses).
browser sortByNameAndInheritance value:true.
browser selectClass: cls.
view := ApplicationSubView new client: browser spec: spec.
].
view
].
tabs add:
(Tools::Inspector2Tab new
priority: 0;
label:'Class';
viewHolder: makeView)
"Created: / 22-07-2011 / 18:48:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 13-06-2012 / 14:58:01 / cg"
!
initializeCommonTabs
"Unfinished code"
self initializeClassBrowserTab
"/ tabs add:
"/ (Tools::Inspector2Tab new
"/ priority: 50;
"/ label:'Object';
"/ view: ((theObject inspectorClass new inspect:theObject)
"/ yourself))
"Created: / 16-01-2008 / 16:56:48 / janfrog"
"Modified: / 17-02-2008 / 10:29:54 / janfrog"
"Modified: / 21-08-2011 / 10:03:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
initializeExtraTabs
"/ cg: I prefer using explicit getter - so I find them in the browser
theObject inspector2Tabs do: [:selector|
| tab |
tab := [ theObject perform: selector ]
on: Error do:[:ex|
"/ for debugging: ex reject.
Tools::Inspector2Tab new
label: selector;
text:
(ex description, Character cr, Character cr,
ex suspendedContext fullPrintAllString)].
(tab notNil and:[tab isKindOf: Tools::Inspector2Tab])
ifTrue:[tabs add: tab]].
"Created: / 16-01-2008 / 17:25:24 / janfrog"
"Modified: / 17-02-2008 / 10:30:43 / janfrog"
"Modified: / 07-11-2008 / 08:40:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
"Modified (format): / 21-08-2011 / 08:01:34 / cg"
!
initializeTabs
tabs := OrderedCollection new.
self initializeCommonTabs.
self initializeExtraTabs.
tabs := tabs asSortedCollection:[:a :b|a priority > b priority].
"Created: / 16-01-2008 / 16:54:28 / janfrog"
"Modified: / 17-02-2008 / 10:08:04 / janfrog"
!
refreshTabs
tabs := nil.
self initializeTabs.
"Created: / 21-08-2011 / 08:23:11 / cg"
! !
!Inspector2 class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.35 2013-05-01 10:58:41 stefan Exp $'
!
version_CVS
^ '$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.35 2013-05-01 10:58:41 stefan Exp $'
!
version_CVS_jvrany
^ '§Header: /opt/data/cvs/stx/goodies/libtool3/Inspector2.st,v 1.6 2008-02-27 13:45:23 vranyj1 Exp §'
!
version_SVN
^ '§Id: Tools__Inspector2.st 7486 2009-10-26 22:06:24Z vranyj1 §'
! !
Inspector2 initialize!