19711 selectorListGenerator |
19723 selectorListGenerator |
19712 ^ self navigationState selectorListGenerator |
19724 ^ self navigationState selectorListGenerator |
19713 ! |
19725 ! |
19714 |
19726 |
19715 selectorListGenerator1 |
19727 selectorListGenerator1 |
|
19728 "used for the sender-/implementor-chain's first methodlist" |
|
19729 |
19716 ^ self navigationState selectorListGeneratorArrayAt:1 |
19730 ^ self navigationState selectorListGeneratorArrayAt:1 |
19717 ! |
19731 ! |
19718 |
19732 |
19719 selectorListGenerator2 |
19733 selectorListGenerator2 |
|
19734 "used for the sender-/implementor-chain's second methodlist" |
|
19735 |
19720 ^ self navigationState selectorListGeneratorArrayAt:2 |
19736 ^ self navigationState selectorListGeneratorArrayAt:2 |
19721 ! |
19737 ! |
19722 |
19738 |
19723 selectorListGenerator3 |
19739 selectorListGenerator3 |
|
19740 "used for the sender-/implementor-chain's third methodlist" |
|
19741 |
19724 ^ self navigationState selectorListGeneratorArrayAt:3 |
19742 ^ self navigationState selectorListGeneratorArrayAt:3 |
19725 ! |
19743 ! |
19726 |
19744 |
19727 selectorListGenerator4 |
19745 selectorListGenerator4 |
|
19746 "used for the sender-/implementor-chain's fourth methodlist" |
|
19747 |
19728 ^ self navigationState selectorListGeneratorArrayAt:4 |
19748 ^ self navigationState selectorListGeneratorArrayAt:4 |
19729 ! |
19749 ! |
19730 |
19750 |
19731 selectorListGenerator5 |
19751 selectorListGenerator5 |
19732 |
19752 "Used for all method's generator of ClassList. " |
19733 "Used for all methods generator of ClassList. " |
|
19734 |
19753 |
19735 ^ self navigationState selectorListGeneratorArrayAt:5 |
19754 ^ self navigationState selectorListGeneratorArrayAt:5 |
19736 |
19755 |
19737 "Created: / 07-08-2011 / 19:06:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
19756 "Created: / 07-08-2011 / 19:06:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
19738 ! |
19757 ! |
24904 ^ spec. |
24929 ^ spec. |
24905 |
24930 |
24906 "Modified: / 08-09-2011 / 05:05:06 / cg" |
24931 "Modified: / 08-09-2011 / 05:05:06 / cg" |
24907 ! |
24932 ! |
24908 |
24933 |
24909 flyByHelpTextFor:aComponent |
24934 flyByHelpTextFor:aWidget at:aPoint |
24910 "/ (aComponent == builder componentAt:) ifTrue:[ |
24935 |action info label| |
24911 "/ ]. |
24936 |
24912 ^ super flyByHelpTextFor:aComponent |
24937 aWidget = (navigationState canvas builder componentAt:'InfoLabel') ifTrue:[ |
|
24938 action := aWidget actionAt:aPoint. |
|
24939 Transcript showCR:action. |
|
24940 info := action perform:#info ifNotUnderstood:nil. |
|
24941 info notNil ifTrue:[ |
|
24942 ^ info value |
|
24943 ]. |
|
24944 (label := aWidget label) notNil ifTrue:[ |
|
24945 (label widthOn:aWidget) > aWidget width ifTrue:[ |
|
24946 ^ label |
|
24947 ] |
|
24948 ] |
|
24949 ]. |
|
24950 ^ nil |
24913 ! ! |
24951 ! ! |
24914 |
24952 |
24915 !NewSystemBrowser methodsFor:'history'! |
24953 !NewSystemBrowser methodsFor:'history'! |
24916 |
24954 |
24917 addToFindHistory:class selector:selector |
24955 addToFindHistory:class selector:selector |
46602 entry at:#date put:dateString. |
46641 entry at:#date put:dateString. |
46603 msg := ((entry at:#logMessage) asStringCollection firstIfEmpty:'') asString. |
46642 msg := ((entry at:#logMessage) asStringCollection firstIfEmpty:'') asString. |
46604 rev,' ',author,' ',dateString,' ',msg |
46643 rev,' ',author,' ',dateString,' ',msg |
46605 ]. |
46644 ]. |
46606 msg := 'There are %1 revisions to extract from the repository'. |
46645 msg := 'There are %1 revisions to extract from the repository'. |
46607 t := (t * revisions size / 1000) rounded. |
46646 t := (t * numRevisions / 1000) rounded. |
46608 t < 10 ifTrue:[ |
46647 t < 10 ifTrue:[ |
46609 msg := msg,'\(this will take a few seconds).'. |
46648 msg := msg,'\(this will take a few seconds).'. |
46610 tS := t. |
46649 tS := t. |
46611 ] ifFalse:[ |
46650 ] ifFalse:[ |
46612 t := t * revisions size // 1000 // 10 * 10. |
46651 t := t * numRevisions // 1000 // 10 * 10. |
46613 tS := (TimeDuration fromSeconds:t) printStringForApproximation. |
46652 tS := (TimeDuration fromSeconds:t) printStringForApproximation. |
46614 msg := msg,'\(this will take roughly %2).' |
46653 msg := msg,'\(this will take roughly %2).' |
46615 ]. |
46654 ]. |
46616 msg := msg,'\\Do you want to see all or only some of the revisions ?'. |
46655 msg := msg,'\\Do you want to see all or only some of the revisions ?'. |
46617 |
46656 |
46618 answer := Dialog |
46657 answer := Dialog |
46619 choose:(resources stringWithCRs:msg |
46658 choose:(resources stringWithCRs:msg with:numRevisions with:tS) |
46620 with:revisions size |
|
46621 with:tS) |
|
46622 fromList:list values:revisions initialSelection:nil |
46659 fromList:list values:revisions initialSelection:nil |
46623 buttons:nil |
46660 buttons:nil |
46624 values:nil |
46661 values:nil |
46625 default:nil |
46662 default:nil |
46626 lines:20 |
46663 lines:20 |
46627 cancel:[^ self] |
46664 cancel:[^ self] |
46628 multiple:false |
46665 multiple:false |
46629 title:(resources string:'Confirmation') |
46666 title:(resources string:'Confirmation') |
46630 postBuildBlock:[:dialog | |
46667 postBuildBlock: |
46631 |b| |
46668 [:dialog | |
46632 |
46669 |b| |
46633 b := Button label:(resources string:'Browse Newer than Selected'). |
46670 |
46634 b action:[ stop := (dialog componentAt:#ListView) selection. dialog okPressed]. |
46671 b := Button label:(resources string:'Browse Newer than Selected'). |
46635 b := dialog addButton:b before:dialog okButton. |
46672 b action:[ stop := (dialog componentAt:#ListView) selection. dialog okPressed]. |
46636 |
46673 b := dialog addButton:b before:dialog okButton. |
46637 dialog okButton label:(resources string:'Browse All'). |
46674 |
46638 dialog okButton action:[ stop := revisions size. dialog okPressed]. |
46675 dialog okButton label:(resources string:'Browse All'). |
46639 ]. |
46676 dialog okButton action:[ stop := revisions size. dialog okPressed]. |
|
46677 ]. |
46640 |
46678 |
46641 stop isNil ifTrue:[^ self ]. |
46679 stop isNil ifTrue:[^ self ]. |
46642 ]. |
46680 ]. |
46643 |
46681 |
46644 t := Time millisecondsToRun:[ |
46682 t := Time millisecondsToRun:[ |
46645 |
46683 |
46646 previousMethods := ChangeSet new. |
46684 previousMethods := ChangeSet new. |
46647 lastSource := currentSource := method source. |
46685 currentSource := method source. |
|
46686 currentVersion = newestVersion ifTrue:[ |
|
46687 lastSource := currentSource. |
|
46688 ]. |
46648 lastRevision := lastDate := lastAuthor := nil. |
46689 lastRevision := lastDate := lastAuthor := nil. |
46649 first := true. |
46690 first := true. |
46650 |
46691 self halt. |
46651 revisions from:start to:stop do:[:eachLogEntry | |
46692 "/ revisions at:1 is now the newest (may be newer than current!!) |
|
46693 revisions from:1 to:stop do:[:eachLogEntry | |
46652 |revision date author revSourceStream| |
46694 |revision date author revSourceStream| |
46653 |
46695 |
46654 revision := eachLogEntry at:#revision. |
46696 revision := eachLogEntry at:#revision. |
46655 date := eachLogEntry at:#date. |
46697 date := eachLogEntry at:#date. |
46656 author := eachLogEntry at:#author ifAbsent:'?'. |
46698 author := eachLogEntry at:#author ifAbsent:'?'. |
46657 |
46699 |
46658 [ |
46700 [ |
46659 |chg nChg classChangeSet changeSource changeName| |
46701 |chg nChg classChangeSet changeSource changeName| |
46660 |
46702 |
46661 self activityNotification:('Fetching revision ',revision,'...'). |
46703 self activityNotification:(resources string:'Fetching revision %1...' with:revision). |
46662 thisIsAnExtensionMethod ifTrue:[ |
46704 thisIsAnExtensionMethod ifTrue:[ |
46663 revSourceStream := mgr |
46705 revSourceStream := mgr |
46664 streamForClass:nil |
46706 streamForClass:nil |
46665 fileName:'extensions.st' |
46707 fileName:'extensions.st' |
46666 revision:revision |
46708 revision:revision |
46669 cache:true. |
46711 cache:true. |
46670 ] ifFalse:[ |
46712 ] ifFalse:[ |
46671 revSourceStream := mgr getSourceStreamFor:mclass revision:revision. |
46713 revSourceStream := mgr getSourceStreamFor:mclass revision:revision. |
46672 ]. |
46714 ]. |
46673 revSourceStream isNil ifTrue:[ |
46715 revSourceStream isNil ifTrue:[ |
46674 self warn:'could not load source for ' , mclass name , ' revision ', revision, ' from repository'. |
46716 self warn:(resources string:'Could not load source for %1 revision %2 from repository' with:mclass name with:revision). |
46675 chg := nil. |
46717 chg := nil. |
46676 ] ifFalse:[ |
46718 ] ifFalse:[ |
46677 classChangeSet := ChangeSet fromStream:revSourceStream. |
46719 classChangeSet := ChangeSet fromStream:revSourceStream. |
46678 |
46720 |
46679 chg := classChangeSet |
46721 chg := classChangeSet |
46680 detect:[:chg | chg isMethodChange |
46722 detect:[:chg | chg isMethodChange |
46681 and:[chg selector = mselector |
46723 and:[chg selector = mselector |
46682 and:[chg className = className]]] |
46724 and:[chg fullClassName = className]]] |
46683 ifNone:nil. |
46725 ifNone:nil. |
|
46726 chg isNil ifTrue:[ |
|
46727 "/ maybe the class was renamed!! |
|
46728 (classChangeSet contains:[:chg | chg isMethodChange and:[chg selector = mselector]]) ifTrue:[ |
|
46729 self halt:'check for renamed class'. |
|
46730 ] |
|
46731 ]. |
46684 ]. |
46732 ]. |
46685 |
46733 |
46686 chg isNil ifTrue:[ |
46734 chg isNil ifTrue:[ |
46687 "the method was created in the next version (previous one processed)" |
46735 "the method was created in the next version (previous one processed)" |
46688 ] ifFalse:[ |
46736 ] ifFalse:[ |
46695 "/ mhm - was not in the previous version |
46743 "/ mhm - was not in the previous version |
46696 ] ifFalse:[ |
46744 ] ifFalse:[ |
46697 nChg := lastChange asNamedMethodChange |
46745 nChg := lastChange asNamedMethodChange |
46698 ]. |
46746 ]. |
46699 lastRevision isNil ifTrue:[ |
46747 lastRevision isNil ifTrue:[ |
|
46748 |
46700 (stop = revisions size) ifTrue:[ |
46749 (stop = revisions size) ifTrue:[ |
46701 changeName := 'current (not in the repository)'. |
46750 changeName := 'current (not in the repository)'. |
46702 ] ifFalse:[ |
46751 ] ifFalse:[ |
46703 "/ not showing all - dont really know |
46752 "/ not showing all - don't really know |
46704 changeName := 'current'. |
46753 changeName := 'current'. |
46705 ]. |
46754 ]. |
46706 ] ifFalse:[ |
46755 ] ifFalse:[ |
46707 changeName := lastRevision,' [',lastDate,' by ',lastAuthor,']'. |
46756 changeName := lastRevision,' [',lastDate,' by ',lastAuthor,']'. |
46708 first ifTrue:[ |
46757 first ifTrue:[ |
46709 changeName := changeName,' (= current)'. |
46758 (newestVersion compareAsVersionNumberWith:lastRevision) >= 0 ifTrue:[ |
|
46759 changeName := changeName,' (= current)'. |
|
46760 ]. |
46710 ] |
46761 ] |
46711 ]. |
46762 ]. |
46712 nChg notNil ifTrue:[ |
46763 nChg notNil ifTrue:[ |
46713 nChg changeName:changeName. |
46764 nChg changeName:changeName. |
46714 previousMethods add:nChg. |
46765 previousMethods add:nChg. |
46728 ]. |
46779 ]. |
46729 "/ Transcript showCR:('it took %1 seconds' bindWith:(t /1000)printString). |
46780 "/ Transcript showCR:('it took %1 seconds' bindWith:(t /1000)printString). |
46730 |
46781 |
46731 self activityNotification:nil. |
46782 self activityNotification:nil. |
46732 browser := (UserPreferences current changeSetBrowserClass) openOn:previousMethods. |
46783 browser := (UserPreferences current changeSetBrowserClass) openOn:previousMethods. |
46733 browser window label:('Revisions of ' , mclass name , ' ' , mselector). |
46784 browser window label:(resources string:'Revisions of %1 » %2' with:mclass name with:mselector). |
46734 browser readOnly:true. |
46785 browser readOnly:true. |
46735 ]. |
46786 ]. |
46736 |
46787 |
46737 "Modified: / 01-07-2011 / 16:34:29 / cg" |
46788 "Modified: / 01-07-2011 / 16:34:29 / cg" |
46738 "Created: / 18-11-2011 / 18:19:50 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
46789 "Created: / 18-11-2011 / 18:19:50 / Jan Vrany <jan.vrany@fit.cvut.cz>" |