Peter Yoo wrote:
>1. im look monticello now. can look more version now. 28, 30

Interesting. I still cannot see anything newer than .24 in
http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/MetacelloRepository
Are you sure that it is exactly the same repository? There is likely to be a 
different one for designer itself.

>2. email to Marcel Taeumel already. but not receive return mail. mabe into 
>spam?

Possible, but unlikely. The last days were the worst time of the year to reach 
someone
in Germany. The weeks around christmas (24-26 december) and newyear are family
holidays, so it's likely that he doesn't read his mail. He reacted to your 
stackoverflow
post though.

>3. latest squeak is cannot use too. squeak 4.1 image(in squeak 4.4 all in one 
>vm) 
>with morphic designer standard version can use. but class not same(squeak 
>version 
>and pharo version). im little panic.

It should work in the latest squeak image. It is not used enough/doesn't have 
enough 
test coverage that all mistakes are immediately noticed, but Marcel fixes bugs 
that are 
found. With the quality of issue report you provide the major problem should be 
his 
availability/priorities. The next week he's likely to have holidays.

>4. im look already. pharo canvas class not same squeak canvas class. 
>this problem not easy. i try more now. but im newbie user. maybe so hard work.

They started as the same, but Pharo has made more radical and drastic clean-ups.
Pharo will break existing applications in order to improve things. The advantage
is that innovation can be much faster in Pharo, a disadvantage is that 
applications
need to co-evolve. The support for co-evolving is gradually improving, the 
continuous integration server provided for Pharo contributions gives fast 
feedback
on consequences of changes.

Squeak tries to keep compatible with older applications while gradually making
everything unloadable. That is a much slower and more difficult approach. 

Quite a lot of code that was not used was removed. Once in a while we find out 
that 
a project uses that code and needs to be reintroduced. Or should be in a 
separate 
extension package, or be moved into the using project. The issue you are now 
running
into seems to be the cleaning up of event handling that has taken place in Pharo
and not yet or not in the same way in Squeak. A lot of the code deep in the 
system
was very difficult to understand, so yes, this can be difficult work. 

>5. im look already another UI project(http://uipainter-gsoc.over-blog.com/). 
>but not handsome(little joke). maybe can then i want use this project. now im 
>trace 
>another way(for UiItemViewport class. but mouse event is not same to squeak 
>env).

Yes, this years GSoC project did not get as far as Marcel's one. And the event 
handling
has changed since Marcel wrote the Designer. Signals was pretty intrusive.

UITreeViewPort doesn't seem to correctly set the source of its dragSpec.
I tried to change dragDropSpec in UiItemViewPort to

dragDropSpec
        ^ dragDropSpec
                source: self;
                yourself

That allowed the drag-and-dropping of a lot of the widgets, but created errors
where the dragDropSpec was set to nil (Tree widget). Then I looked at where
UiItemViewDragDropSpec was used, and found out that the source was not 
set in UIDesigner initialize.

I can do drag and drop of all widgets with

        self ui widgetList
                selectionMode: UiViewSingleSelection;
                dragDropSpec: (UiItemViewDragDropSpec new
                        source: (self ui widgetList);
                        dropEnabled: false;
                        dragTransferType: #widgetClass).

So, in all I needed to make the following changes to make the designer
work in 20628 after loading development of ConfigurationOfDesigner-mt.24.mcz:

UIDesigner>gridForm

        | form canvas |
        form := Form extent: 20@20 depth: 32.
        form floodFill2: (Color gray: 0.98) at: 0@0.
        
        canvas := FormCanvas on: form.
        
        form pixelValueAt: 0@0 put: (form pixelValueFor: (Color gray: 0.2)).
        ^ form  

UIDesigner>initialize

        super initialize.
        self ui setupUi: self.
        self ui prop addPaneSplitters.  
        
        self selectDefaultModel.
        
        self ui centralScroller
                borderWidth: 0;
                fillStyle: (BitmapFillStyle fromForm: self gridForm).
        
        "BAD: Viewport should not be accessed from the outside."
        self ui widgetList viewport dragEnabled: true.
        self ui widgetList
                selectionMode: UiViewSingleSelection;
                dragDropSpec: (UiItemViewDragDropSpec new
                        source: (self ui widgetList);
                        dropEnabled: false;
                        dragTransferType: #widgetClass).
        
         self ui filterEdit deferEditSignalTime: 300.
        
        propertyTable := self ui propertyScroller widget.
                
        self connect: self ui filterEdit signal: #textEdited: toSelector: 
#nameFilter:.         
                
        self connect: self ui newBtn signal: #clicked: toSelector: #reset.
        self connect: self ui saveBtn signal: #clicked: toSelector: #save.
        self connect: self ui openBtn signal: #clicked: toSelector: #load.

UIAbstractWidgetModel>initialize

        super initialize.
        self updateWidgets.
        
        SystemAnnouncer uniqueInstance
                on: ClassAdded
                send: #updateWidgets
                to: self.









 
 


Reply via email to