Goodies

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
18 messages Options
Reply | Threaded
Open this post in threaded view
|

Goodies

Ian Bartholomew-20
I've uploaded a zip file (172KiB) containing my updated goodies to my web
sit at

http://www.idb.me.uk/files/goodiesx6.zip

It contains the following package files...

IDB Chunk Browser - ChunkBrowser
IDB Common - Common classes needed by all the goodies
IDB CurrencyToText - A TypeConverter that knows (a bit) about money.
IDB DateAndTime - An inplementation of the ANSI class
IDB DeviceIndependentBitmap - Another type of bitmap used by my
ILImageLibrary
IDB Duration - An inplementation of the ANSI class
IDB FileBrowser - Browse files and their contents
IDB IDE ClassBrowser Extensions - IDE extensions to the ClassBrowsers
IDB IDE Extensions - Common framework for my IDE ectensions
IDB IDE Method Filer Extension - Adds a menu option for filing out
individual methods
IDB IDE Method History Extension - Browse previous versions of a method
IDB Image Library - Maintain and create bitmap/icon/cursors
IDB MultipleFileOpenDialog - What it says
IDB News Archive Browser - Browse all the previous posting to the newsgroups
(data files not included)
IDB PoolDictionary Browser - Browse and maintain all defined
PoolDictionaries
IDB Printer - Print from within Dolphin
IDB Profiler - Profile code to see why it's so slow
IDB Selector Parser - A quick way of extracting a selector from a chunk
IDB Serial - Simple (very) wrapper around the COM ports
IDB Snoop - Inspect the internal state of open views

Download the zip file and extract it into the folder where your Dolphin
image resides.  You will end up with the following structure (NB Note the
name change of the top level folder)

[Your Image]
    [Idb] contains all package file
        [Resources] contains all images
        [Documentation] Ummm, no comment :-)

Just install the packages you want.

NB  To install in X6 beta 1 you will need to remove all my existing goodies
as they will clash with the new ones.  The easiest way is to copy the
following into a workspace and evaluate it ...

PackageManager current packages do: [:each |
(each name beginsWith: 'IDB') ifTrue: [each uninstall ]].

Let me know about the problems when you find them please :-)

Ian


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

TimM-3
I've noticed that the Chunk Browser probably needs a pre-req adding. I just
loaded it and the Method History Extension and then I open the file menu - I
get a walkback "does not understand #canPrint".

Also - am wondering if the pre-reqs for the Method History are correct - as
I don't see it added to any menu's anywhere? (I then loaded the chunk
browser thinking maybe it was a missing pre-req?)

Tim

"Ian Bartholomew" <[hidden email]> wrote in message
news:[hidden email]...

> I've uploaded a zip file (172KiB) containing my updated goodies to my web
> sit at
>
> http://www.idb.me.uk/files/goodiesx6.zip
>
> It contains the following package files...
>
> IDB Chunk Browser - ChunkBrowser
> IDB Common - Common classes needed by all the goodies
> IDB CurrencyToText - A TypeConverter that knows (a bit) about money.
> IDB DateAndTime - An inplementation of the ANSI class
> IDB DeviceIndependentBitmap - Another type of bitmap used by my
> ILImageLibrary
> IDB Duration - An inplementation of the ANSI class
> IDB FileBrowser - Browse files and their contents
> IDB IDE ClassBrowser Extensions - IDE extensions to the ClassBrowsers
> IDB IDE Extensions - Common framework for my IDE ectensions
> IDB IDE Method Filer Extension - Adds a menu option for filing out
> individual methods
> IDB IDE Method History Extension - Browse previous versions of a method
> IDB Image Library - Maintain and create bitmap/icon/cursors
> IDB MultipleFileOpenDialog - What it says
> IDB News Archive Browser - Browse all the previous posting to the
> newsgroups
> (data files not included)
> IDB PoolDictionary Browser - Browse and maintain all defined
> PoolDictionaries
> IDB Printer - Print from within Dolphin
> IDB Profiler - Profile code to see why it's so slow
> IDB Selector Parser - A quick way of extracting a selector from a chunk
> IDB Serial - Simple (very) wrapper around the COM ports
> IDB Snoop - Inspect the internal state of open views
>
> Download the zip file and extract it into the folder where your Dolphin
> image resides.  You will end up with the following structure (NB Note the
> name change of the top level folder)
>
> [Your Image]
>    [Idb] contains all package file
>        [Resources] contains all images
>        [Documentation] Ummm, no comment :-)
>
> Just install the packages you want.
>
> NB  To install in X6 beta 1 you will need to remove all my existing
> goodies
> as they will clash with the new ones.  The easiest way is to copy the
> following into a workspace and evaluate it ...
>
> PackageManager current packages do: [:each |
> (each name beginsWith: 'IDB') ifTrue: [each uninstall ]].
>
> Let me know about the problems when you find them please :-)
>
> Ian
>
>
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

Ian Bartholomew-20
Tim,

> I've noticed that the Chunk Browser probably needs a pre-req adding. I
> just loaded it and the Method History Extension and then I open the file
> menu - I get a walkback "does not understand #canPrint".

Thanks for pointing out that, rather silly, error.  The fix is to replace
the ChunkBrowser>>canPrint method with

canPrint
 ^[super canPrint] on: MessageNotUnderstood do: [:e | false]

The same problem also appears in a number of other goodies, I'll fix them
all in the next release.

> Also - am wondering if the pre-reqs for the Method History are correct -
> as I don't see it added to any menu's anywhere? (I then loaded the chunk
> browser thinking maybe it was a missing pre-req?)

It should work on its own.  If you file in the "IDB Method History
Extension" package then the ClassBrowser and SystemBrowser should each gain
two additional menu items

Class/Browse/MethodHistory
Method/Browse/Method History

It seems OK to me in D6b1

Regards
    Ian


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

TimM-3
> It should work on its own.  If you file in the "IDB Method History
> Extension" package then the ClassBrowser and SystemBrowser should each
> gain two additional menu items

Finally tracked the menu's down - they are in the Main menus only - not in
the rightclick context menus (probably can be fixed?)
The method history is a brilliant goody - all Smalltalks should have it - it
makes the changes log actually useful WOW!

However I am not sure about the slider - to view history... it took me a
while to figure out just to use the arrow key to go back a single version.
It really could do with prev/next buttons. I also wonder if you could show
rough dates (does the changes log save the date when the image was saved -
so it would give some rough indication). Anyway - very small niggles and
maybe I'll investigate improvments at some point (I'm still trying to learn
how to use all of the other built in stuff).

Thanks again.

Tim

"Ian Bartholomew" <[hidden email]> wrote in message
news:[hidden email]...

> Tim,
>
>> I've noticed that the Chunk Browser probably needs a pre-req adding. I
>> just loaded it and the Method History Extension and then I open the file
>> menu - I get a walkback "does not understand #canPrint".
>
> Thanks for pointing out that, rather silly, error.  The fix is to replace
> the ChunkBrowser>>canPrint method with
>
> canPrint
> ^[super canPrint] on: MessageNotUnderstood do: [:e | false]
>
> The same problem also appears in a number of other goodies, I'll fix them
> all in the next release.
>
>> Also - am wondering if the pre-reqs for the Method History are correct -
>> as I don't see it added to any menu's anywhere? (I then loaded the chunk
>> browser thinking maybe it was a missing pre-req?)
>
> It should work on its own.  If you file in the "IDB Method History
> Extension" package then the ClassBrowser and SystemBrowser should each
> gain two additional menu items
>
> Class/Browse/MethodHistory
> Method/Browse/Method History
>
> It seems OK to me in D6b1
>
> Regards
>    Ian
>


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

Ian Bartholomew-20
Tim,

> Finally tracked the menu's down - they are in the Main menus only - not in
> the rightclick context menus (probably can be fixed?)

I'm not sure that it's necessary?.  Using the class/method history is
probably not something that is done very often and, personally, I wouldn't
have thought it really appropriate to a context menu.

I'm sure it could be done though.  The commands are added dynamically, when
a Class/System browser is opened, and it should be easy to add to the
context menus at the same time.

> The method history is a brilliant goody - all Smalltalks should have it -
> it makes the changes log actually useful WOW!

I haven't used many other Smalltalks in anger (Digitalk and an early IBM
mostly) and wasn't aware that they didn't provide something similar.  As you
say, it can be useful.

> However I am not sure about the slider - to view history... it took me a
> while to figure out just to use the arrow key to go back a single version.
> It really could do with prev/next buttons.

Agreed.  I think I'll have a play at changing it to "Tape Recorder" style
controls with a a numerical indication of the version being displayed.  It
would be a but more unwieldy on methods with lots of changes, but that
probably doesn't happen too often.

> I also wonder if you could show rough dates (does the changes log save the
> date when the image was saved - so it would give some rough indication).

In most situations Dolphin's change log doesn't include time stamps.  It
would be nice, and I've often thought of adding it as part of the
ChunkBrowser/MethodHistory package, but have always backed off.

Regards
    Ian


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

Ian Bartholomew-20
> Agreed.  I think I'll have a play at changing it to "Tape Recorder" style
> controls with a a numerical indication of the version being displayed.  It
> would be a but more unwieldy on methods with lots of changes, but that
> probably doesn't happen too often.

There's an updated version of the goodie, with changed navigation controls
and a few fixes, at the following url.  Any better?

http://www.idb.me.uk/files/methodhistory.zip  (~8 KiB)

Ian


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

Blair McGlashan
In reply to this post by Ian Bartholomew-20
"Ian Bartholomew" <[hidden email]> wrote in message
news:[hidden email]...
> Tim,
> ...
>> The method history is a brilliant goody - all Smalltalks should have it -
>> it makes the changes log actually useful WOW!
>
> I haven't used many other Smalltalks in anger (Digitalk and an early IBM
> mostly) and wasn't aware that they didn't provide something similar.  As
> you say, it can be useful.
>

While we're on the subject of the Method History browser (which is indeed a
brilliantly useful goodie, Thanks Ian), I was wondering if you would mind
changing the source pane to use a MethodWorkspace (or at least a
ScintillaView with appropriate SmalltalkStyler) so that we get coloured
text.

If you like I'd be happy to make the necessary modifications and send them
to you. To avoid merging difficulties, though, it would make sense if I
didn't do that while you are also changing it.

>> However I am not sure about the slider - to view history... it took me a
>> while to figure out just to use the arrow key to go back a single
>> version. It really could do with prev/next buttons.

A simpler improvement is to configure the Slider to show tick marks. This
also shows you how many versions you have, and gives you a good idea of
where you are in the history. Might not be as glitzy, but would suffice in
the interim. The slider could be made a little less tall to fit it into the
toolbar without being clipped too.

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

Ian Bartholomew-20
Blair,

> While we're on the subject of the Method History browser (which is indeed
> a brilliantly useful goodie, Thanks Ian), I was wondering if you would
> mind changing the source pane to use a MethodWorkspace (or at least a
> ScintillaView with appropriate SmalltalkStyler) so that we get coloured
> text.

I'm a bit confused here (not unusual :-) ).  As far as I can tell all the
versions, even the one that comes preinstalled in the default D6
installation, show coloured text - and the ones I've updated for D6 now have
a default Scintilla view.  I'm not sure which version you have, or whether
there is something subtle that I'm missing about Scintilla,

> A simpler improvement is to configure the Slider to show tick marks. This
> also shows you how many versions you have, and gives you a good idea of
> where you are in the history. Might not be as glitzy, but would suffice in
> the interim. The slider could be made a little less tall to fit it into
> the toolbar without being clipped too.

Those two observations were actually related, the too tall slider meant that
the displayed ticks were being clipped by the toolbar window.  The removal
of the slider in the version I just uploaded solves all the problems in one
go though :-)

Regards
    Ian


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

TimM-3
In reply to this post by Ian Bartholomew-20
Ian - Its definitely more intuitive however it doesn't look as nice ( ;-)
can't please everyone eh...)

There is one bug - just had my machine restart and it seems that in this
circumstance dolphin doesn't save the image ;-(  so am browing method
editions to get back newer code (am hoping the chunk browser will help too).
In this case - the last method is not the most current however you tool has
the Diff and Restore buttons incorrectly grayed out (I guess it assumes the
last is the most current).

You have also lost the functionality of using the arrow keys to move up and
down methods (you now have to click) which is a shame. I wonder if the
slider was good - but it just needed a x of y test next to it...  anyway -
small point. Over all it helps me restore previous code editions.

It would also be nice if the Diff and Restore buttons had accelerators (e.g.
Alt-D, Alt-R)

By the way - other smalltalks like VisualWorks and VA relied on Envy for
similar behavior. Envy is fantastic - but its adds to the cost and if you
don't need multi user capability, your solution is brilliant.

Tim

"Ian Bartholomew" <[hidden email]> wrote in message
news:[hidden email]...

>
>> Agreed.  I think I'll have a play at changing it to "Tape Recorder" style
>> controls with a a numerical indication of the version being displayed.
>> It
>> would be a but more unwieldy on methods with lots of changes, but that
>> probably doesn't happen too often.
>
> There's an updated version of the goodie, with changed navigation controls
> and a few fixes, at the following url.  Any better?
>
> http://www.idb.me.uk/files/methodhistory.zip  (~8 KiB)
>
> Ian
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

TimM-3
In reply to this post by Ian Bartholomew-20
Ian - in the case of loading methods with the chunk browser (after a crash)
if you then browse history on a restored method - I got a walkback in:

updateSelection
 source text: (history at: selection).
 position value: ((String writeStream)
    print: selection;
    nextPutAll: ' of ';
    print: history size;
    contents)

selection was 0. so index out of bounds. I guess its a rare case. I was
hoping having got a method back I could check if there were later versions
of it I could then load.

Tim

"Ian Bartholomew" <[hidden email]> wrote in message
news:[hidden email]...

>
>> Agreed.  I think I'll have a play at changing it to "Tape Recorder" style
>> controls with a a numerical indication of the version being displayed.
>> It
>> would be a but more unwieldy on methods with lots of changes, but that
>> probably doesn't happen too often.
>
> There's an updated version of the goodie, with changed navigation controls
> and a few fixes, at the following url.  Any better?
>
> http://www.idb.me.uk/files/methodhistory.zip  (~8 KiB)
>
> Ian
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

Blair McGlashan
In reply to this post by Ian Bartholomew-20
"Ian Bartholomew" <[hidden email]> wrote in message
news:[hidden email]...

> Blair,
>
>> While we're on the subject of the Method History browser (which is indeed
>> a brilliantly useful goodie, Thanks Ian), I was wondering if you would
>> mind changing the source pane to use a MethodWorkspace (or at least a
>> ScintillaView with appropriate SmalltalkStyler) so that we get coloured
>> text.
>
> I'm a bit confused here (not unusual :-) ).  As far as I can tell all the
> versions, even the one that comes preinstalled in the default D6
> installation, show coloured text -

Well yes, I know that one did because it was a version of your old D5 goodie
that I'd modified as we went along :-).

>... and the ones I've updated for D6 now have
> a default Scintilla view.  I'm not sure which version you have, or whether
> there is something subtle that I'm missing about Scintilla,

Version 6a of May 2005 (undoubtedly not current) looks like the attachment.
I had a look, and it is using a ScintillaView with all the styles set up
correctly, but the styler is the null one. Switching it to the method styler
in the view composer solved that.

Oh, and it probably makes more sense to use a MethodWorkspace as the
presenter component attached to it rather than a SmalltalkWorkspace.

>
>> A simpler improvement is to configure the Slider to show tick marks. This
>> also shows you how many versions you have, and gives you a good idea of
>> where you are in the history. Might not be as glitzy, but would suffice
>> in
>> the interim. The slider could be made a little less tall to fit it into
>> the toolbar without being clipped too.
>
> Those two observations were actually related, the too tall slider meant
> that
> the displayed ticks were being clipped by the toolbar window.  The removal
> of the slider in the version I just uploaded solves all the problems in
> one
> go though :-)
>

Personally I like the slider if the ticks can be seen - dropping the height
down to 21 solves that (similarly for the buttons). I haven't tried your new
version yet though.

Regards

Blair


begin 666 hist1.png
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
M4+@*ZA76CNFV2W!PBC*H^DFX#/"[hidden email]/SYZU)+ZM(&P0<#
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
MAE&[?^N54_+GMQ;0$\^^2S5'*JCVZ$Z0*[PTD1$,M+5^E.08A+PPIP$#F<6
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
M]1=IWNK3'KG:\$5E;I"K=NW:)<ZXLR7/I,!EJZ\M/"D]XN1CT\T6'J=,I,'
M#@P``\! ;F) D2OQ6 FQJCC(Q&K/Y492M;JBGE9L8V%2)<1J\48F5^47:?ZZ
M,QZY6K1V9]LB5U$FV2AQ73M8)O)T+3L8+ZB+7(?I9PJ+6WZ2Z;)9]R3M@+QR
M<Z!'NZ)=@8'FQ8 B5\NWGF_T6)7OJB<A52*KMEWR"-6"]9<;13Q7"]>E/%>E
MGVT#N0H#;2:(4";RC-OI0*Z:M[/&;2>D0SL!`\ `,-"\&%#D:O'&KU++@)4-
MRX#;+]$JEEL?&NZ1JOGE]32O_)+W*Z+(U;0%6S-#KM3$'>914/=U$[R 2)<N
M+*Z*[P>?+G]3F;;RPNIC2F?+TU]/5SLD9<\P^X39TM7&_GBN]5?MYD(\77 3
MQ$%SZ(Z!KWD'/M@;]@8&@(%,8D"1*]F\+AZK\IU7O59"K)0(L9K30+#D?T6N
MILS=DCERY9\LP_X/3GS!"3E*NK!)VC4/G2[^/(/YF.KG4G<;68Q2GHY0Z$BJ
MBRU,1,_5QB[UUY$>4V>QV<N5&-KRR83NF1P$D#<F&6 `& `&DL6 (E?R1J L
M`ZZI8,\5BY]8J?\_67^58,U?F]IS]<[L#)(KTX2?Z; X^=O(55B>IG1Q\S01
M@+CEQ4D7AVC8R(O)CE$&")MNMG =46PNW:/4$W&3'31A3]@3& `&;!A0Y$J.
M6I!E0+44J C5IUM22X-^@O4)>Z[FK4WMN<I9<N5?/K)Y:USB9H+L!,NUZ6GS
M3IF6^N(2"9MW+LDR;6#W>^)</)RM37>7^B$.!GU@`!@`!EH>`XI<?;SJG/=6
MH)](R?5G+(L"!&LVORTXN^$HADFS-V=N63".]RBNY\"5F-A(4AR=XWB$@FF"
MG<FFIZF^27K87+T_291I&U!<L:'BM2;=;75#>,L/IF@#M $P``PH#"AR5?KY
M.>^H!3G+2@B6_"[;=MDC5_.WUE/9AI0'2WY+UUZD6:O.>IZKC)(KU\DM&"]N
MNC#OC"OQ,I&DJ&3'I0ZN9$%'Q%SKE%09<0EDE'2V@<T5)RUE+YO^",? #0P`
M`\! =F! D:N9R\YY1RX(P5JV)46J1#[EHQB$7,WA^[,VU5,Q[[LJ6G.12E>E
ME@4S2J[\RS@ZSTQP:<<_*>K"7)>%@N6:)N5@GDEZKDSU\Q-!UW@V[U#4?$Q+
M:S:"XFJWL'Q<EA-U@Y!?9U>":=/!9M=@N$YW#)C9,6"BG=!.P `PX((!1:YF
M?';6.V)!"-:GF_EL*R92(K(D*,3JDTV7/*]5\;I+-'/U!2I=T4SDRJ42ILDM
M:OK6$#_H+6H-.D$'#"C `# `# `#P( ;!A2YFK[T-,U9>X'FL6?*.R249<%Z
MOF9")1O8RUA*.%R(51%_8[!DQ:GFW=#NVJ"Y0$QRH0ZN[85X;AT5=H*=@ %@
M`!C('@PH<K7KX%<T9^5)FKOZE/?=0"5R+?NK1,I6G:'2E:>I9/DIVG'PG$>N
MBI9N;YX-[:Z@R@5BD@MU<&TOQ,N>P0)MA;8"!H !8, -`T*NEFT]XA&EJ']%
MRP^3I#]YXH"7M*ZZHHGT'K&;>H^LI"Z]RJE]AX74KF.G<NI5R#>?KV39?4V"
M&=,F4/=NCR;^`66 P0T,L!/L! P``\ `, `,I(\!(4?'3IZFZ4OWT[C2'?3L
M!Q4T=,H6RG]G*Q5,VDQYD[9X(M=*ADS93N-**JGNU'F0*X P?1#"AK A, `,
M``/ 0"YA0,C5Y<L7HSJM&N/#<\7?,<PE0* N:$]@`!@`!H !8" ]#*@]5U7'
MZVGC7OG\S05:OOD\+=V8$OGFX(+RLY[()W)F?7Z6BE><H=U5%SR"=>3(P=Q<
M%@P[2-+_&GW8<0]^4+;6_5.Z>D31U72,0=SZ1RD_USJ^J>ZN=G&-)[9S;;],
MV3F*KG%U:(XRXNH6MX\D45Y8'LV-P4S6)4X=H4]Z9"(3]K/U89<Y.!-ZN>2I
MR)40J_TU5VAGU17:NK^>-NV[[,G&RGI:O^NR)VMV\/E7?"R#O$DH&][E;^6F
MW6V+7.F,:@. 2T,T9[[!R37=@3[NH!Q,ERD[QK5_<Z9+HNY1\H@25]DA3IJP
MM.GDY=HNS5&&JRY)Q,MT?9+(/XD\HMHJ2IE1XD;5(T[\UJ9/G#K8TJ13Q[AS
MBTVGY@B_YMN"%:GO"Z[<?MD3[Y1V)E0B\_G<*_EXL__;@AD[1+0Y*F\J0S6J
MRQ-^.N!QT2$3M@C3.4Y=XG8`D*NK3XIQ[![$190\HL0%N6H=3_1QVBS*V)%$
M_DGD$45GTX-B<S^P1M4[JNYQ\F\-:=+!1-RYI374._AM02%6Q\]<T<I\.:5]
M0STUR[<%6X-Q7"<O'0$+DC,3D9 P)?Z)+'A/=4;=_:CV<B%7-IU-7@D=.?7K
M&%9G?QUU]G>IN[_L8-OHZJW3Q3_PA;5#L#XN@WF83<-TU@W <?0U85FG4Y)X
MS&1;F_J$2[UL_<W6Y\+:PI8N##LV[$:IDZE_ZLIO;@Q&L5%87!.V=/4WU3&L
M_X:-.4GVPZAEF'1-<LQPJ:.I#YG2V^IL(I]A[6X:J\/FO*ASIVM\1:YD/]7J
M"MES=9E6L??J^9*OM#*'3W&?QP>*SE][)K.?OW&M0'/&<R4DP0D]#.RF^[8P
M$_!<;.('IZT#F0:IH!XN9,8TZ.MLYV*+X&1ATB.L#%U=TM4GC$P%;: C,S:[
M1]$WB(DX]7*M2]C ;VLC5S*@(P8V6YET;^XP6UO$:1O;1.1BLY;$H&T\B]M&
M2?41TSB7;AEQVSNL34WM&$57F\VCC*,N^+/I9NLWKO9PF1^3B*-;%@SU7+6E
M9<&P"4)'2J("Q\2@70%K&XQLX' EBB; VB8TFXY1)FM;7-<VB#I(NM3?M9ZJ
M#L%?77K7`3=*O5WJXHI-6YU-`V&4^MK*B:*O2_UM>KO:VZ17.I.$:_EA9;0F
M#*9CZRAVB#*FFO(UC:E)E='<^=@(5)P^$V6,C1K751^3'6US8U+A\%Q%.$K!
M9<!T`:LNCI^TZ4B+`F&0W.F H,O+=2!S[=RNDW^4R<]F.Y>ZVR9N76<.R]>F
MC^M '#:AI6MK6YNZVMZ$1UL=7;"69)O8ZFR;=,/T-=7#)8V*$RQ?=Q_DJNE>
MPR@8"K.SK=U-8VK89&H;[^.,&S;\!L>$),:\8!Y1QAW7.NKFISCSF&G,3:K?
M)$6>;/G <]7"Y"JI"=S6T+9.K>L(KKJY=E:;#J[EV>IJZZ F?3,Y2(>1+!OY
M2$+?* -3F U<)AO7B2I3;>VJNROQC&LW&];CZ!D%UV'EMU8,ZOJ J9]'&7.B
MQ+4]3+B0-%L[Q1UC7.T1M&44K"<UUB1E<U?=DQI/;'-+E'!XKIJ17+E,HE%
M:9OLHG3&;"-7KIW.Q>:9F.ALDZMM``[#091!Q-5&KIB+HG,Z];>5$V=R"M8Q
MB3IGNBULDV04.]GZ@2T\"7O9B*HK7M.Q2Q2;N;:OQ'.U3Y1^$5?7*/JXUC&*
MS:.4'R5?&WY<Q_$H!"F=N'A;L(7)E0*7`KEI$O#'38=8!?-1G4&7IS\LRH1O
MRM-/Y*(,2BYYVB:)L/#@@.":3R9UTA%>$P;2&8R#`U.8/71EZ.+J!L),M'54
M>^CZF:U?N?:/L#K;^JJK74QM8BO#%<^N$U283:)@T#3VZ28U4YDF7.K&5!?,
MNN(B78(0%U^F/N;:3VWMY=K.2<YC87.."S%U&<?3(4Q1TH:=<Q7VMF";.><J
MBA$1MW6<`X1V0#L``\ `,-#T"PRP1\OT"9WG2LZZ6K&]/B7;^ #1!FGSYUP!
MI"T#4M@==@<&@ %@(!P#-@\4;-?\_2=LS]5*/IE=9-F6R_3IEDN>S-]83VWZ
MG"L`M/D!"IO#YL `, `,V#'@ND4!MK3;,@D;*7*UZ^!7-&?E29J[^I3WW4"_
MR#V16:O.4NG*TU2R_!3M.'C..T3TD^5?Y.:W!9,P+O)H'A##SK S, `,``/
M0&O"@)"KB;-W>T0IZM_TSPZ1I#]YXH"7M*ZZHHGT'K&;>H^LI"Z]RJE]AX74
MKF.G<NI5R#>?KV39?4V"&=,F4/=NCW)6``EL``P``\ `, `,``/9B0$A1\=.
MGJ9QQ3MHZ)0ME#]I*^5-VA(J!>]NH^%3MM&XDDJJ.W4>Y K ST[@H]W0;L `
M, `,``.9PH"0J],GZ^B,R.GC=/;,"3IW]DLZ?_XT7?CJ#%VX<)XN7?J*Y8(G
MER]?I"M7+C5*F_%<N;SJG*E&:JOY9LKFF<JWM;53V+$#K4U/Z(,)#A@`!G(-
M`R!7(4N0>/NBY3M[4B2HK;8ER%7+8SC7)@S4!Y@"!MPP`'(%<M5J][B!7+EU
MXK#!#N0J/?MA$H']@ %@("X&0*XTY$KW2JM_HM)-^JZOP8;E$W9B<-S3>]--
M)X!R/>4W"#Z3I\C5CE'*-Y&(3+:ETM'E5&"_373ZQFDOD"<,_'$'?J0#=H"!
MS&(`Y"J"YTHW08:1`),W(9A/G'Q="(S2(2S_H.ZN>NGJ[*^O33>7^@8)2Y0\
M7<B>BP[IUC/,)E'KYIH/!LO,#I:P+^P+# `#KA@`N8I KDR3G(E<N!(/$]FQ
MA;F6;R(>-@+C6D;<?))*YT*N,M&6KNULJF<4W74>5->.CWB8)( !8 `8R!P&
M0*X2(E?^91W3I&>;6'7>H[ EHSA+28JDF9;+PCQ>2=0Q'0(55KZ-9"1I\TP0
MS&";Q"5I&"@S-U#"MK M, `,1,$`R%5"Y,K5Z%$G^KCYQO',1"$^)KVBY!-G
MR=+FW;&%1]$O2CV3(D5)V,05-XB'"0,8``: @>0Q`'*5`7*5I.<JDR3)M/<G
MRKZ@*&0F"K%)BF2D0VCCMF7<>BHOELY[: O#`)G\``F;PJ; `# 0!P,@5P9R
MY3JYFY9UHA"/X.1IRS?=94%3>5%UT=4SZM)CL+XZ@A(D?3H]PW1Q(2PVFYOJ
M&=<&MC)-R\(F;UF<`0%I,)$``\ `,) ^!D"N\!W#T'.N;'N9T '3[X"P(6P(
M# `#P$#N80#D"N2JD5S9EL\P`.3>`( V19L"`\ `,) \!D"N0*Z:>*Y,2XWH
M@,EW0-@4-@4&@ %@(/<P`'(%<M5J/W^#`2?W!ART*=H4& `&V@(&0*Y KD"N
M@ %@`!@`!H !8"!!#(!<)6C,ML#&44<\=0(#P `P``P``V8,@%R!7.%I!1@`
M!H !8 `8``82Q #(58+&!)/'TQPP``P``\ `, `,@%R!7.%I!1@`!H !8 `8
M``82Q #(58+&Q-,*GE: `6 `& `&@ %@`.0*Y I/*\ `, `,``/ `#"0( 9
MKA(T)IY6\+0"# `#P `P``P``R!7(%=X6@$&@ %@`!@`!H"!!#$`<I6@,?&T
M@J<58 `8``: `6 `& "Y`KG"TPHP``P``\ `, `,)(@!D*L$C8FG%3RM``/
M`# `# `#P #(%<@5GE: `6 `& `&@ %@($$,@%PE:$P\K>!I!1@`!H !8 `8
M``9 KD"N\+0"# `#P `P``P``PEB`.0J06/B:05/*\ `, `,``/ `# `<@5R
MA:<58 `8``: `6 `&$@0`R!7"1H33RMX6@$&@ %@`!@`!H !D*L0<M6N7;LV
MR^*3J+O*0W[#I+4,0$G4M[74!7I@4 <&@ %@H.4Q`'(%<M6$1/I)43H=5$=8
M6HK$V,JUA:=C!Z1M^4$.;8 V``: @>;&`,@5R!7(51OV4C;W@(/R,,D!`\!
M6\ `R%4,<A5<\E) 4<M?0>#XE\6:,TS*"GIE3+KXXYL\3[9ZZLH-NZ?NZ_+4
M>='\\5SJ9JNO2:^V, "@CICH@ %@`!A('@,@5S')E7]B#Q*#8)@?N,T99M(K
MC'B%Z>HG07XR&?:_Z[*@CB"%D557FP?K9EOVLX5CX$E^X(%-85-@`!C(90R
M7,4D5S82HB,=42;]*!-^$H0M+MERJ6=8'%W'<JV+S9:F?'3>PUSNY*@;)C%@
M`!@`!IH7`R!7S4"N_$M3+DM90<]-F!=(M^3EX@D*2Q?4,XKGRU2NC5R%V<>6
MI\Z3Y6(3D*OF'60PJ,/>P `PT-8P`'+5#.3*%50F;Y6K1\=&KL)T"2L[B7)-
MY"J*OE'BFCR+(%<8Z%W[).(!*\ `,! '`R!7S4RNDB KKGN/7#U/MB5(%1Z%
MW(1YVTS$QE5?M208UY8@5Q@LXPR62 /<``/ @"L&0*XR3*[\1,"VO*>;](.$
M([AD&-Q[%"0>+LN029"K8#U=R95)7Y.]3/4.JW-4KYUK)T(\#+C `# `# `#
M?@R 7,4@5]G4B6S$*9OJDBF/4R[;*)O;%[ICL@(&@(%LQ0#(58Z1*]LF\&P%
M:IBG*HGZ@%QA`$\"1\@#. (&@ &%`9"K'/QPL^Z-N5SI]+E<MUQI(]0#$PPP
M``RT=0R 7.4@N6KKH$;],; #`\ `, `,M"0&0*Y KII\6[ EP8BR,1@"`\ `
M, `,Y (&0*Y KD"N@ %@`!@`!H !8"!!#(!<Q3"F;0.T+;PY67EKTJ4YZXVR
M\/0+# `#P `PT%(8`+F*2:Y,)YJW)D+3FG1I*9"C7 RPP `P``P``\V)`9 K
MD"NX@F-@H#D[*<K"I `,``/ 0'9A`.3*,+&&O?9O^QR,RZGHTE'\^=C.I[)Y
MH&RZJHYI.LK EH=-!W3^[.K\:"^T%S `# `#F<$`R)7C(:*Z[]B%$:(HW[P+
MBVLC6_X.88H;19>P/!7I0B?,3">$76%78 `8``9R"P,@5XY+0C829 OW>XYT
M__L]6<'_==<F<F4B24FDPR"06X,`VA/M"0P``\! LA@`N7)<%K21)U.X?[DM
M"4]2L!.8ENN"Y87IH@B<;FD0RX')=CH,8K G, `,``.YC0&0JS26!8/[IER\
M4W&6\S+EN8JK"P:%W!X4T+YH7V `& `&TL,`R)4#N0KN.;+MATK".V4K(PXQ
MBK(WRU0'=+KT.AWL!_L!`\ `,)#;& "Y<E@6C+H?2D=B=)O";03*M(2G6QIT
M+2-L@[K_OBM!Q "1VP,$VA?M"PP``\! = R 7#EN: >XHH,+-H/-@ %@`!@`
M!MHB!D"N0*YPB"@P``P``\ `, `,)(@!(5>7+U]DF\;[D_0G3QSP$M=55S21
MWB-V4^^1E=2E5SFU[["0VG7L5$Z]"OGF\Y4LNZ]),&/:!.K>[5$T<((-W!:?
M&%!G/"D#`\ `, `,M"0&A!S)7]7Q>MJXMY[65%R@Y9O/T]*-YVG1^O.TH/PL
MS5U[CN:L.4NS5YVG69^?I>(59VAWU04OW=X#^T&N6K(!438&$& `& `&@ %@
MH'5A0)$K(5;[:Z[0SJHKM'5_/6W:=YDV5M;3^EV7:<V.R[2JXA*MV%Y/GVVI
MIX7K+]*\U:<]<K7ABTJ0*X"Z=8$:[8'V``: `6 `&&A)#"AR)1XK(585!YE8
M[;G<2*I65]33BFTL3*J$6"W>R.2J_"+-7W?&(U>+UNX$N6K)!D39&$" `6 `
M& `&@('6A0%%KI9O/=_HL2K?54]"JD16;;OD$:H%ZR\WBGBN%JY+>:Y*/]L&
M<I6-H$[BU'651_#("-TI[]EH(^CL/E@E@:=T[!WE7+:6UC6=>DK:)/1'WW7'
M=KKMA?1MT]:*7"W>^%5J&;"R81EP^R5:U2!"K.:7U].\\DO>KX@B5],6; 6Y
MRK;.XQ]8T]%=-\@G,?#'T:FERHVC:])I6D/=D] AG3R"Y"HLK[ SWI)NDTSE
MA[[;-B?J3.$)^68.3XI<R>9U\5B5[ZRG6Q\:WNBY$F(EI$I$[JO_%;F:,G<+
MR%6V`10#=.8Z5$M@(1U2DI2^2>B03AX@5]$PC0>C:/9*JI\@G[9C=T6NY(U
M6084`J7DTRV72.23]2EBI<3S8*U-[;EZ9W:.DJN@VUQU"MOIYF&#5J;2Z98)
M;,MR)G(55F]=_:,,T&$ZZ73QVRI8ABX?6WV#-O+'#_X?-OB9[&*J0U)XL.'1
MQ4Y^.YB(C,F>MG8,XL2U_J9\;7U'U[YA_2)J?XEC"U5&5+UMZ6SMEZM]%X2D
M[1"27&IK1:[DJ 6U#!@D6/YK(5J?B"=K;6K/54Z3*]/3<##,#XKF# L.X+I)
M-DPWTT3CGR3#_G<E5R:=3/I'J9N)+"3183.E9Q2LA,6-TN9A$[ZNC<-(BPLV
MDNX/)EW"VB;,+E%LGG0]7,<4$SDTM94+1DRD+]A7<J'O)M'_D0<(7E0,*'+U
M\:ISJ;<"&\1/J-3_'K%BF<UO"\YN.(IATNS-N;DL&'7"<AV$343'U'A)3 AQ
M!VR7B3<LCJY.KG6).[E'[00N\6V3C"N!-9' N&6D@U7;9!JG7E'JX9I_7"SX
MO3DV4F@K`WVWZ6;Z='!G&@-<^B/B@.RT=@PH<E7Z^3GOJ 4YRTJ)GV"5;;A$
M2DK77J19J\YZGBN0JX:W=]33H.ZIT!^FF\Q,3Y*ZM+;)*TR7X/TX>=LFF##R
M8-+)=8+5Z1^%U/GCAMDBK,/:;!ZL0QP\1*F?C:"ZVCN,_-IP' P/ZA.G?)V-
M7?,)LX<+N8K35HJ(H>]>G>1M?<2U+5O[I G]0.Q<,*#(U<QEY[PC%X1@+=MR
MF3YC#Y:($*SY6^MI#M^?M:F>BMES5;3F(I6N2BT+@EQ%?#4ZC'S8GIIMDZD+
MR3 1'Q?OE&GP-)5O&W2CD"M7\N,"_BAQTJF#J1Q3N\:UBRO&7.H?1[^XY;O@
M*RI.7<B5BQV"_5/WD!15-UN?MSW(V-*[CAFYWG==VQ?Q0)J2Q( B5S,^.^L=
ML2 $Z]/-?+85$RF11;RA78C5)YM2GJOB=9=HYNH+5+H"Y*KQ&XAQ)U[7="Y>
M`MO ;IKP_(.TJTYADXVN')U7PZ:OWS/@&C?)CJ&;/&W>D3AZNDZ Z;2+*T'2
MM6D<_>+J:B-7<71)JDYQB0SZ;FK"CH*)3/9CY T"U5P84.1J^M+3-&?M!9K'
MGBGOD%"6!>OYF@F5;& O8RGA<"%61?R-P9(5IW)_0[NKY\!/!,+(17"0]4_$
MMK"PP4GW5!ZF2Q+D*IBWC4@%[6?S(@1M8JJW;K".ZS%QZ6Q^W6TD(!-XL$U.
M8?9PT36,2$;!LFOY)MOH^H&Z9]/%E7A%P502[8B^VW39T-3&80\G+OT3<4":
M6AL&%+G:=? KFK/R),U=?<K[;J 2N9;]52)EJ\Y0Z<K35++\%.TX>,XC5T5+
MM^?FAO;6UE F?6S$*9OJHIOH6X/^N6SCUF#?MJI#+N,JE^O65O&*>KN36"%7
MR[8>\8A2U+^BY8=)TI\\<<!+6E==T41ZC]A-O4=64I=>Y=2^PT)JU[%3.?4J
MY)O/5[+LOB;!C&D3J'NW1QN7V]"0^H:,XXW(%ENVUKIAHG ?5+(%:RVA9VO%
M=Q*VR.6Z)6$?Y-&VQA A1\=.GJ;I2_?3N-(=].P'%31TRA;*?V<K%4S:3'F3
MMG@BUTJ&3-E.XTHJJ>[4^>3)E3 U"&P`# `#P `P``P``VT=`XEXKJ*ZSA ?
M%H %8 %8`!: !6"!7+9 VLN"P0QPW72=%?: /8 !8 `8``: @;:-@<A[K@"8
MM@T8M#_:'Q@`!H !8 `8,&,`Y"JPPQ^ P: !# `#P `P``P``^E@`.0*Y.J:
M-T+3`1328D "!H !8 `8:.L8""=7H_8T'L?@18+ !L `, `,``/ `# `#-@Q
MP&=<]1RR0W/.E9 K#H3 !L `, `,``/ `# `#$3#P#7D2DX4A< &P `P``P`
M`\ `, `,I(>!QA/:Y1\(; `,``/ `# `# `#P$#Z&/C_:('SW/71MM@`````
(245.1*Y"8((`
`
end


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

Ian Bartholomew-20
Blair,

> Version 6a of May 2005 (undoubtedly not current) looks like the
> attachment. I had a look, and it is using a ScintillaView with all the
> styles set up correctly, but the styler is the null one. Switching it to
> the method styler in the view composer solved that.
>
> Oh, and it probably makes more sense to use a MethodWorkspace as the
> presenter component attached to it rather than a SmalltalkWorkspace.

Thanks for the guidance.  I originally just changed the RichTextEdit views
to default Scintilla views and, as everything appeared to work, just left it
at that - "if it ain't broke don't fix it" :-)

I've made the changes you suggest (perhaps the Styler option needs a list of
available styles to select from?).  It looks the same to me but, when I
upload the new version, perhaps you could check what you see.

> Personally I like the slider if the ticks can be seen - dropping the
> height down to 21 solves that (similarly for the buttons). I haven't tried
> your new version yet though.

The slider's back in the new new version :-), although it now points upwards
(I thought it made the ticks easier to see) and the method version number is
now shown in the tool tip window.

Regards
    Ian


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

Ian Bartholomew-20
In reply to this post by TimM-3
Tim,

Thanks for all the feedback.  I tend to take things far enough so that they
work for me but I'm not too good on extending that so others find them easy
to use as well.  I really do appreciate the time that you, and many others,
have taken to let me know how the goodies can be improved.

> In this case - the last method is not the most current however you tool
> has the Diff and Restore buttons incorrectly grayed out (I guess it
> assumes the last is the most current).

<Grin>.  I added that when I updated the goodie yesterday, I _thought_ it
was strange that I missed out disabling the commands in the original
version.  The situation you describe is obviously the reason I had
deliberately left the restore button enabled all the time.

Both the restore and dif commands are now permanantly enabled.

> You have also lost the functionality of using the arrow keys to move up
> and down methods (you now have to click) which is a shame. I wonder if the
> slider was good - but it just needed a x of y test next to it...  anyway -
> small point. Over all it helps me restore previous code editions.
>
> It would also be nice if the Diff and Restore buttons had accelerators
> (e.g. Alt-D, Alt-R)

The slider is back, the left/right/page up/page down keys now work (as
shortcut keys), as do ^D/^R and the Alt keys.

I'll upload it to the web site later...

Regards
    Ian


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

Ian Bartholomew-20
> I'll upload it to the web site later...


'tis there now...

http://www.idb.me.uk/files/methodhistory.zip  (~9 KiB)

Ian


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

Blair McGlashan
In reply to this post by Ian Bartholomew-20
"Ian Bartholomew" <[hidden email]> wrote in message
news:[hidden email]...

> Blair,
>
>> Version 6a of May 2005 (undoubtedly not current) looks like the
>> attachment. I had a look, and it is using a ScintillaView with all the
>> styles set up correctly, but the styler is the null one. Switching it to
>> the method styler in the view composer solved that.
>>
>> Oh, and it probably makes more sense to use a MethodWorkspace as the
>> presenter component attached to it rather than a SmalltalkWorkspace.
>
> Thanks for the guidance.  I originally just changed the RichTextEdit views
> to default Scintilla views and, as everything appeared to work, just left
> it at that - "if it ain't broke don't fix it" :-)
>
> I've made the changes you suggest (perhaps the Styler option needs a list
> of available styles to select from?).  It looks the same to me but, when I
> upload the new version, perhaps you could check what you see.

Ah, now I remember. In the first beta I think that SmalltalkWorkspace sets
the styler of the view it attaches to when it connects, or at some time
anyway. This is no longer the case, which is presumably why I got not
colouring and you did.

BTW: I've changed my mind about using MethodWorkspace vs SmalltalkWorkspace.
The former requires you to do a bit more work when you host it, and I don't
think you'll benefit by using it (its extra functionality is mainly related
to editing methods, which obviously you don't want to do in a history
browser), so you might want to switch it back.

>
>> Personally I like the slider if the ticks can be seen - dropping the
>> height down to 21 solves that (similarly for the buttons). I haven't
>> tried your new version yet though.
>
> The slider's back in the new new version :-), although it now points
> upwards (I thought it made the ticks easier to see) and the method version
> number is now shown in the tool tip window.

Great.

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

TimM-3
In reply to this post by Ian Bartholomew-20
I notice that the method history doesn't hook into the methods browser,
Browse menu either. This would be useful (e.g. I was in one of those
browsers and accidently changed code in a dolphin method instead of my
implementation)

Tim


"Ian Bartholomew" <[hidden email]> wrote in message
news:[hidden email]...

>
>> Agreed.  I think I'll have a play at changing it to "Tape Recorder" style
>> controls with a a numerical indication of the version being displayed.
>> It
>> would be a but more unwieldy on methods with lots of changes, but that
>> probably doesn't happen too often.
>
> There's an updated version of the goodie, with changed navigation controls
> and a few fixes, at the following url.  Any better?
>
> http://www.idb.me.uk/files/methodhistory.zip  (~8 KiB)
>
> Ian
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

Ian Bartholomew-20
Tim,

>I notice that the method history doesn't hook into the methods browser,
>Browse menu either. This would be useful (e.g. I was in one of those
>browsers and accidently changed code in a dolphin method instead of my
>implementation)

That's a good example of what I was talking about earlier.  I do use
MethodBrowsers but rarely use them to edit code, so don't often need the
methods' history immediately available.  Other people may well work
differently and the goodies should allow for that.  Thanks for the
suggestion.

I've added the history option to the MethodBrowserShell but, as it involved
changes to a number of packages, I won't upload it straight away - I'll wait
until the next time I update the full zip file.

Regards
    Ian


Reply | Threaded
Open this post in threaded view
|

Re: Goodies

TimM-3
I'm conscious that you are only getting negative feedback here. I just want
to point out that this little addin along with Chunk browser have saved my
bacon a few times already!!!! So a huge thankyou.

Tim

"Ian Bartholomew" <[hidden email]> wrote in message
news:[hidden email]...

> Tim,
>
>>I notice that the method history doesn't hook into the methods browser,
>>Browse menu either. This would be useful (e.g. I was in one of those
>>browsers and accidently changed code in a dolphin method instead of my
>>implementation)
>
> That's a good example of what I was talking about earlier.  I do use
> MethodBrowsers but rarely use them to edit code, so don't often need the
> methods' history immediately available.  Other people may well work
> differently and the goodies should allow for that.  Thanks for the
> suggestion.
>
> I've added the history option to the MethodBrowserShell but, as it
> involved changes to a number of packages, I won't upload it straight
> away - I'll wait until the next time I update the full zip file.
>
> Regards
>    Ian
>