Lively Kernel canvas HTMLandJavaScript16nullnull Petitions-waitingThisisalistofpetitionswaitingtobegranted14true2 Books-outThisisalistofbooksloanedoutbutnotyetreturned14true2 PetitionersThirdlist.Probablyallowslookingattheirhistory14true2 Make-new-petitioner.Allowsownerorotherstoregisteranewuser2 Recall-button.Ifyoupressthis,itsendsemailaskingtofinishandreturn.Severalmoreurgentvestions2 Evaluate-button.Ifyoupressthis,itopensapetitionviewthatletstheownerrejectitorgrantit2 Petition-button.Ifyoupressthis,itopensaviewofanewpetition,thatincludesabuttontosubmit,whichwillenteritinthePetitions-waitinglist2 Make-new-book-button.Ifyoupressthis,itopensaviewofabookthatincludesabuttontoenteritinthesystem2 Thisisathumbnailviewofthebookcollection(wemightwanttodovideos).Itcanbefilteredandsortedvariousways,butasimplelayoutof,say20titlesisfineforastart.Theyshouldbelittleimages,anditshouldbepossibletomakeaselection2 Template petitionersasktoborrowabookbysubmittingapetition,orthelibrariancandothishimself1true false3 truetruetrue 00.11 true true 1false SelectionTrait={handlesMouseDown:Functions.True,selectionColor:Color.red,onMouseDown:function(evt){if(this.isSelected)this.unselect()elsethis.select()},select:function(){this.savedBorderFill=this.getBorderColor();this.savedBorderWidth=this.getBorderWidth();this.applyStyle({borderColor:this.selectionColor,borderWidth:3})this.isSelected=true;},unselect:function(){this.applyStyle({borderColor:this.savedBorderFill||this.getFill(),borderWidth:this.savedBorderWidth||0,})this.isSelected=false;},}m=$morph('item1')Object.extend(m,SelectionTrait)m.applyStyle({borderWidth:3})m.handlesMouseDown=Functions.Truem.22truetruefalsetruetruefalse false10.11 true false truefalse nullfalsetruenullfalse Workspacefalsenulltruefalse Xfalsenulltrue false false Mfalsenulltrue false false –falsenulltrue false falsenullfalsefalsenullnullnullnullfalse bounds=newRectangle(0,20,600,300)sp=newScrollPane(newBoxMorph(bounds),bounds);sp.applyStyle({fill:Color.green});sp.disableVerticalScrollBar();sp.addHorizontalScrollBar()sp.openInWorld()//sp.remove()bg=sp.innerMorph()bg.applyStyle({fill:Color.red});bg.layoutManager=newHorizontalLayout();sp.relayout()bg.addMorph($morph('item1'))bg.addMorph($morph('item2'))bg.submorphssp.suppressHandles=falsex=bg.layoutManager.leftPaddingOf(bg)y=bg.layoutManager.topPaddingOf(bg)submorphs=bg.visibleSubmorphs();for(vari=0;i<submorphs.length;i++){i=2submorph=submorphs[i];x+=bg.layoutManager.leftMarginOf(submorph)submorph.align(submorph.bounds().topLeft(),pt(x,y));x+=submorph.bounds().width;x+=bg.layoutManager.rightMarginOf(submorph);}27truetruefalsetruetruefalse false00.11 true false truefalse nullfalsetruenullfalse Workspacefalsenulltruefalse Xfalsenulltrue false false Mfalsenulltrue false false –falsenulltrue false falsenullfalsefalsenullnullnullnullfalse nullfalsetruenullfalse TestRunnerfalsenulltruefalse Xfalsenulltrue false false Mfalsenulltrue false false –falsenulltrue false falsenullfalse Tests.MorphTest.BinarySearchListMorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.ClipMorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.CopyLabelTestfalsefalsetruefalsetrue0false Tests.MorphTest.DragnDropListTestfalsefalsetruefalsetrue0false Tests.MorphTest.DuplicateTextMorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.FilterableListMorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.HTMLFontCharWidthCompositionTestfalsefalsetruefalsetrue0false Tests.MorphTest.HandMorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.HorizontalDividerTestfalsefalsetruefalsetrue0false Tests.MorphTest.HorizontalLayoutTestfalsefalsetruefalsetrue0false Tests.MorphTest.ImageMorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.LayoutTestfalsefalsetruefalsetrue0false Tests.MorphTest.ListMorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.MorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.MouseEventTestfalsefalsetruefalsetrue0false Tests.MorphTest.NodeMorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.ProgressBarMorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.RunArrayTestfalsefalsetruefalsetrue0false Tests.MorphTest.ScrollPaneTestfalsefalsetruefalsetrue0false Tests.MorphTest.TextListMorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.TextMorphTestfalsefalsetruefalsetrue0false Tests.MorphTest.VerticalLayoutTestfalsefalsetruefalsetrue0false Tests.MorphTest.VideoMorphTestfalsefalsetruefalsetrue0false603null -1nullnulltruetruetrue 00.11 true true RunTestCasefalsenulltruefalsetrue RunAllTestCasesfalsenulltruefalsetrue Refreshfalsenulltruefalsetrue null null0 -----falsefalsetruefalsetrue0603.5 -1nullnulltruetruetrue 00.11 true true truefalsenullnullnullnullfalse nullfalsetruenullfalse MorphTest.js:Tests.MorphTest.HorizontalLayoutTest:--all--falsenulltruefalse Xfalsenulltrue false false Mfalsenulltrue false false –falsenulltrue false falsenullfalse http://localhost/webwerkstatt/truetruetruetruetrue truetrue 00.11 true true codebasefalsenulltruefalsetrue localfalsenulltruefalsetrue Localcodefalsefalsetruefalsetrue0false test.js(notparsed)falsefalsetruefalsetrue0false test1.js(notparsed)falsefalsetruefalsetrue0false test2.js(notparsed)falsefalsetruefalsetrue0false208null-1nullnulltruetruetrue 00.11 true null null null nulltrue true -----falsefalsetruefalsetrue0false208null -1nullnulltruetruetrue 00.11 true null null null nulltrue true -----falsefalsetruefalsetrue0false208null -1nullnulltruetruetrue 00.11 true null null null nulltrue true -----falsefalsetruefalsetrue0false208null -1nullnulltruetruetrue 00.11 true null null null nulltrue true 20null truetrue2000000 0.5 truetrue 00.11 true true 20null truetrue truetrue 00.11 true true Addmodulefalsenulltruefalsetrue Loadallfalsenulltruefalsetrue LineNofalsenulltruefalsetrue Refreshfalsenulltruefalsetrue Evalonfalsenulltruefalsetrue Sortfalsenulltruefalsetrue Viewas...falsenulltruefalsetrue truetrue falsenullnullnullnullfalse null106