Lively Kernel canvas // this script is evaluated on world load MyConsole = WorldMorph.current().submorphs.detect(function(ea){return ea.name == "MyConsole"}); if(!MyConsole) return; MyConsole = MyConsole.component; MyConsole.setText("-- start --"); MyConsole.log = function(s) { this.setText(this.formalModel.getText() + "\n" + s); }; MyConsole.log("My Console initialized!"); MyConsole.morph.resetScrollPane = function() { var sp = this.enclosingScrollPane(); if (sp) sp.scrollToBottom(); }; // console.consumers seems to be broken... so we go the hard waz console.log = console.log.wrap(function(proceed, s) { MyConsole.log(s) proceed(s)}) console.log("wrapped console for MyConsole successfully") DraftMarkerMorphStage2BUG:markermorphinterceptsstillmousedownandmousemovesincetheMarkerMorphshowedsomebugsweswitchtoautomatictesting...butIdidnotfoundtheBUGbutonlyaasulution....BenchmarkingDocumententingDeployingEvolvingTestingDeveloping-----loadingscripthttps://lively-kernel.org/repository/webwerkstatt2011/lively/LKWiki.jshttps://lively-kernel.org/repository/webwerkstatt2011/anonymous_module_4loadedin1919mshttps://lively-kernel.org/repository/webwerkstatt2011/ometa/lib.jsloadedin578mshttps://lively-kernel.org/repository/webwerkstatt2011/ometa/ometa-base.jsloadedin833mshttps://lively-kernel.org/repository/webwerkstatt2011/ometa/parser.jsloadedin826mshttps://lively-kernel.org/repository/webwerkstatt2011/lively/LKFileParser.jsloadedin1843mshttps://lively-kernel.org/repository/webwerkstatt2011/ometa/bs-ometa-optimizer.jsloadedin587mshttps://lively-kernel.org/repository/webwerkstatt2011/ometa/bs-js-compiler.jsloadedin710mshttps://lively-kernel.org/repository/webwerkstatt2011/ometa/bs-ometa-compiler.jsloadedin715mshttps://lively-kernel.org/repository/webwerkstatt2011/ometa/lk-parser-extensions.jsloadedin978mshttps://lively-kernel.org/repository/webwerkstatt2011/lively/Ometa.jsloadedin1984mshttps://lively-kernel.org/repository/webwerkstatt2011/lively/ide/FileParsing.jsloadedin2408mshttps://lively-kernel.org/repository/webwerkstatt2011/lively/ide/SourceDatabase.jsloadedin3052mshttps://lively-kernel.org/repository/webwerkstatt2011/lively/ide/SystemCodeBrowser.jsloadedin3462mshttps://lively-kernel.org/repository/webwerkstatt2011/lively/ide.jsloadedin3468mshttps://lively-kernel.org/repository/webwerkstatt2011/lively/LKWiki.jsloadedin338msstartingWikiNavigatorhttps://lively-kernel.org/repository/webwerkstatt2011/anonymous_module_5loadedin510ms050ConsoleCodingDraftingcreateLayer("DebugPasteUpMorphLayer");enableLayer(DebugPasteUpMorphLayer);//disableLayer(DebugPasteUpMorphLayer);layerClass(DebugPasteUpMorphLayer,PasteUpMorph,{onMouseDown:function(proceed,evt){varm=this.morphToReceiveEvent(evt);varresult=proceed(evt)//console.log("worldmousedown:"+(m==true)+"mouseFocus:"+evt.hand.mouseFocus+"->"+result);returnresult},})layerClass(DebugPasteUpMorphLayer,MouseHandlerForDragging,{handleMouseEvent:function(proceed,evt,targetMorph){//if(evt.mousePoint.x>1100)//console.log("draggerhandleevent:"+evt+"morph:"+targetMorph);returnproceed(evt,targetMorph)}})HandMorph.addMethods({setMouseFocus:function(morphOrNull){if(morphOrNull){console.log('setMouseFocus:'+morphOrNull);logStack();}this.mouseFocus=morphOrNull;this.setFill(this.mouseFocus?Color.primary.blue.lighter(2):Color.primary.blue);this.mouseFocusChanges_++;},})RefactoringMouseHandlerForDragging.subclass('MarkerMorphMouseHandler',{handleMouseEvent:function($super,evt,targetMorph){//console.log("handleevent"+evt+","+targetMorph)if(targetMorph&&(!targetMorph.containsWorldPoint(evt.mousePoint)))returnfalse;return$super(evt,targetMorph);},});MarkerMorph.addMethods({initialize:function($super,rectangle){$super(newlively.scene.Rectangle(rectangle))this.applyStyle({borderWidth:2,borderColor:Color.rgb(223,70,0),fill:null});this.shape.setStrokeDashArray(String([9,7]));},containsPoint:function($super,point){varresult=$super(point)if(result){varinnerRect=this.shape.bounds().insetBy(5);return!innerRect.containsPoint(this.localize(point));}else{returnfalse;}},mouseHandler:MarkerMorphMouseHandler.prototype})TestCase.subclass("MarkerMorphTest",{setUp:function(){varworld=Morph.makeRectangle(newRectangle(0,0,500,500));world.world=function(){returnworld};this.morph=newMarkerMorph(pt(50,50).extent(pt(100,100)));world.addMorph(this.morph);},testContainsPoint:function(){this.assert(this.morph.containsPoint(pt(50,50)),"markerdoesnotcontainpointonborder")this.assert(!this.morph.containsPoint(pt(60,60)),"markerdoescontaininnerpoint")},testContainsPoint:function(){this.assert(this.morph.containsPoint(pt(50,50)),"markerdoesnotcontainpointonborder")this.assert(!this.morph.containsPoint(pt(60,60)),"markerdoescontaininnerpoint")},})Wikicontrol