UIPainterView.st
changeset 776 1df0525eeec9
parent 770 96f106b0a61e
child 784 9ae2b94658e5
equal deleted inserted replaced
775:0ead717f3e35 776:1df0525eeec9
   185     sel := treeView selection.
   185     sel := treeView selection.
   186 
   186 
   187     coll := self minSetOfSuperViews:(self selection).
   187     coll := self minSetOfSuperViews:(self selection).
   188 
   188 
   189     coll notNil ifTrue:[
   189     coll notNil ifTrue:[
   190         self select:nil.
   190 "/        self select:nil.
   191         specs := coll collect:[:aView| self fullSpecFor:aView ].
   191         specs := coll collect:[:aView| self fullSpecFor:aView ].
   192         self setSelection:specs.
   192         self setSelection:specs.
   193         treeView selection: sel
   193 "/        treeView selection: sel
   194     ].
   194     ].
   195 
   195 
   196 
   196 
   197 !
   197 !
   198 
   198 
   282 
   282 
   283     (self canPaste:aSpecificationOrList) ifFalse:[
   283     (self canPaste:aSpecificationOrList) ifFalse:[
   284         ^ nil
   284         ^ nil
   285     ].
   285     ].
   286 
   286 
   287     treeView cvsSetupListDo:[
   287     aSpecificationOrList isCollection ifTrue:[
   288         aSpecificationOrList isCollection ifTrue:[
   288         paste := aSpecificationOrList
   289             paste := aSpecificationOrList
   289     ] ifFalse:[
       
   290         paste := Array with:aSpecificationOrList
       
   291     ].
       
   292     (frame := self singleSelection) isNil ifTrue:[
       
   293         frame := self
       
   294     ].
       
   295     self selection:nil.
       
   296 
       
   297     newSel  := OrderedCollection new.
       
   298     builder := UIBuilder new isEditing:true.
       
   299 
       
   300     className notNil ifTrue:[
       
   301         builder applicationClass:(self resolveName:className)
       
   302     ].
       
   303 
       
   304     keepLayout ifFalse:[
       
   305         pasteOffset := 0@0.
       
   306 
       
   307         aPointOrNil isNil ifTrue:[
       
   308             pasteOrigin := self sensor mousePoint.
       
   309             pasteOrigin := device translatePoint:pasteOrigin
       
   310                                         from:device rootView id
       
   311                                           to:frame id.
   290         ] ifFalse:[
   312         ] ifFalse:[
   291             paste := Array with:aSpecificationOrList
   313             pasteOrigin := device translatePoint:aPointOrNil
       
   314                                             from:self id
       
   315                                               to:frame id.
       
   316         ]
       
   317     ].
       
   318     keepLayout ifFalse:[
       
   319         bounds := Rectangle origin:0@0 extent:(frame bounds extent)
       
   320     ].
       
   321 
       
   322     paste do:[:aSpec|
       
   323         |view|
       
   324 
       
   325         view := self addSpec:aSpec builder:builder in:frame.
       
   326 
       
   327         keepLayout ifFalse:[
       
   328             (bounds containsPoint:pasteOrigin) ifFalse:[
       
   329                 self moveObject:view to:pasteOffset.
       
   330             ] ifTrue:[
       
   331                 self moveObject:view to:pasteOrigin + pasteOffset.
       
   332             ].
       
   333             pasteOffset := pasteOffset + 4
   292         ].
   334         ].
   293         (frame := self singleSelection) isNil ifTrue:[
   335         view realize.
   294             frame := self
   336         newSel add:view.
   295         ].
   337     ].
   296         self setSelection:nil withRedraw:true.
   338 
   297 
   339     self withinTransaction:#paste objects:newSel do:[
   298         newSel  := OrderedCollection new.
   340         undoHistory addUndoSelector:#undoCreate:
   299         builder := UIBuilder new isEditing:true.
   341                            withArgs:(newSel collect:[:v|(self propertyOfView:v) identifier])
   300 
   342     ].
   301         className notNil ifTrue:[
   343 
   302             builder applicationClass:(self resolveName:className)
   344     self realizeAllSubViews.
   303         ].
   345     newSel do:[:v| v raise].
   304 
   346     inputView raise.
   305         keepLayout ifFalse:[
   347     self elementChangedSize:frame.
   306             pasteOffset := 0@0.
   348 
   307 
   349     newSel size == 1 ifTrue:[newSel := newSel at:1].
   308             aPointOrNil isNil ifTrue:[
       
   309                 pasteOrigin := self sensor mousePoint.
       
   310                 pasteOrigin := device translatePoint:pasteOrigin
       
   311                                             from:device rootView id
       
   312                                               to:frame id.
       
   313             ] ifFalse:[
       
   314                 pasteOrigin := device translatePoint:aPointOrNil
       
   315                                                 from:self id
       
   316                                                   to:frame id.
       
   317             ]
       
   318         ].
       
   319         keepLayout ifFalse:[
       
   320             bounds := Rectangle origin:0@0 extent:(frame bounds extent)
       
   321         ].
       
   322 
       
   323         paste do:[:aSpec|
       
   324             |view|
       
   325 
       
   326             view := self addSpec:aSpec builder:builder in:frame.
       
   327 
       
   328             keepLayout ifFalse:[
       
   329                 (bounds containsPoint:pasteOrigin) ifFalse:[
       
   330                     self moveObject:view to:pasteOffset.
       
   331                 ] ifTrue:[
       
   332                     self moveObject:view to:pasteOrigin + pasteOffset.
       
   333                 ].
       
   334                 pasteOffset := pasteOffset + 4
       
   335             ].
       
   336             view realize.
       
   337             newSel add:view.
       
   338         ].
       
   339 
       
   340         self withinTransaction:#paste objects:newSel do:[
       
   341             undoHistory addUndoSelector:#undoCreate:
       
   342                                withArgs:(newSel collect:[:v|(self propertyOfView:v) identifier])
       
   343         ].
       
   344 
       
   345         self realizeAllSubViews.
       
   346         newSel do:[:v| v raise].
       
   347         inputView raise.
       
   348         self elementChangedSize:frame.
       
   349 
       
   350         newSel size == 1 ifTrue:[newSel := newSel at:1].
       
   351     ].
       
   352     ^ newSel
   350     ^ newSel
   353 !
   351 !
   354 
   352 
   355 pasteWithLayout
   353 pasteWithLayout
   356     "add the objects in the paste-buffer to the object view; don't change the
   354     "add the objects in the paste-buffer to the object view; don't change the
   954 !
   952 !
   955 
   953 
   956 setupFromSpec:specOrSpecArray
   954 setupFromSpec:specOrSpecArray
   957     |spec builder|
   955     |spec builder|
   958 
   956 
   959     treeView cvsSetupListDo:[
   957     self removeAll.
   960         self removeAll.
   958     spec    := UISpecification from:specOrSpecArray.
   961         spec    := UISpecification from:specOrSpecArray.
   959     builder := UIBuilder new isEditing:true.
   962         builder := UIBuilder new isEditing:true.
   960     "set applicationClass, in order that subspecifications may be resolved"
   963         "set applicationClass, in order that subspecifications may be resolved"
   961     className notNil ifTrue:[
   964         className notNil ifTrue:[
   962         builder applicationClass:(self resolveName:className).
   965             builder applicationClass:(self resolveName:className).
   963     ].
   966         ].
   964     spec window setupView:self topView for:builder.
   967         spec window setupView:self topView for:builder.
   965     self addSpec:(spec component) builder:builder in:self.
   968         self addSpec:(spec component) builder:builder in:self.
   966     self realizeAllSubViews.
   969         self realizeAllSubViews.
   967     inputView raise.
   970         inputView raise.
   968     treeView setAttributesFromWindowSpec:(spec window).
   971         treeView setAttributesFromWindowSpec:(spec window).
       
   972     ]
       
   973 
       
   974     "Modified: / 5.2.1998 / 11:42:39 / stefan"
       
   975 !
   969 !
   976 
   970 
   977 treeView:aTreeView
   971 treeView:aTreeView
   978     treeView := aTreeView.
   972     treeView := aTreeView.
   979 
   973 
  1062 !
  1056 !
  1063 
  1057 
  1064 removeAll
  1058 removeAll
  1065     "remove all objects and properties
  1059     "remove all objects and properties
  1066     "
  1060     "
  1067     treeView cvsEventsDisabledDo:[
  1061     self select:nil.
  1068         self  select:nil.
  1062     treeView removeAll.
  1069         treeView removeAll.
  1063     self removeUndoHistory.
  1070         self  removeUndoHistory.
       
  1071     ]
       
  1072 ! !
  1064 ! !
  1073 
  1065 
  1074 !UIPainterView methodsFor:'searching'!
  1066 !UIPainterView methodsFor:'searching'!
  1075 
  1067 
  1076 findContainerOfView:aView
  1068 findContainerOfView:aView