;ò Äf…Bc@s dGHdkZdkZdkZdkiiZdkZdkZdklZdk Z ei ƒdei fd„ƒYZ dei fd„ƒYZdZdeifd „ƒYZd fd „ƒYZd eiefd „ƒYZdeifd„ƒYZdee ifd„ƒYZdfd„ƒYZdeefd„ƒYZdd„Zd„Zdeefd„ƒYZdefd„ƒYZ defd„ƒYZ!dS(simporting Views.OGLViewsN(sISsRoundedRectangleShapecBstZddd„ZRS(Nf0.0cCs(tii|||ƒ|id ƒdS(Nf0.29999999999999999(soglsRectangleShapes__init__sselfswshsSetCornerRadius(sselfswsh((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys__init__%s(s__name__s __module__s__init__(((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysRoundedRectangleShape$ss MyEvtHandlercBsAtZddd„Zddd„Zd„Zd„Zd„ZRS(Nic Cs|iƒ} | iƒ}ti|ƒ}|i|ƒ| i ƒo!| i t |ƒ|i |ƒnºt } |iƒiƒ} g}xO| D]G}y)|o |i ƒo|i|ƒnWq‡tj o } q‡Xq‡W| i t|ƒ|o2x|D]}|i t |ƒqðW|i |ƒndS(N(sselfsGetShapesshapes GetCanvasscanvasswxsClientDCsdcs PrepareDCsSelectedsSelectsFalsesRedrawsredraws GetDiagrams GetShapeLists shapeLists toUnselectsssappends ExceptionsmessagesTrue( sselfsxsyskeyss attachmentscanvassssdcs toUnselectsshapesmessagesredraws shapeList((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys OnLeftClick*s.     cCsT|iƒ}tii|||||ƒ|i ƒ o|i ||||ƒndS(N( sselfsGetShapesshapesoglsShapeEvtHandlers OnEndDragLeftsxsyskeyss attachmentsSelecteds OnLeftClick(sselfsxsyskeyss attachmentsshape((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys OnEndDragLeftGs cCs|i||ƒdS(N(sselfs base_OnSizesxsy(sselfsxsy((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysOnSizeMscCs{|iƒ}|iƒ o|i||||ƒnt |dƒo|i o)|i ƒi |i t i||ƒƒndS(Nsmenu(sselfsGetShapesshapesSelecteds OnLeftClicksxsyskeyss attachmentshasattrsmenus GetCanvass PopupMenuswxsPoint(sselfsxsyskeyss attachmentsshape((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys OnRightClickPs  cCs dG|GHdS(Ns OnRightDown(sevent(sselfsevent((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys OnRightDownXs(s__name__s __module__s OnLeftClicks OnEndDragLeftsOnSizes OnRightClicks OnRightDown(((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys MyEvtHandler)s   i-sPersistentShapeCanvascBs;tZdZd„Zd„Zd„Zd„Zd„ZRS(Ns.laycCs6tii||ddƒ|itiƒ||_dS(Nsstylei( sogls ShapeCanvass__init__sselfsparentsSetBackgroundColours PreferencessvpOGLCanvasBackgroundColoursshapes(sselfsparentsshapes((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys__init__ascCs—h}xR|iD]G}y+t|dƒo|iƒ||iW|i|ƒ|i|ƒdS(N(sselfs GetDiagramsdiagrams GetCanvasscanvasswxsClientDCsdcs PrepareDCsshapessshapesMovesGetXsGetYsClearsRedraw(sselfscanvassdcsdiagramsshape((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysredraw¥s    # (s__name__s __module__sexts__init__s saveSizess printSizess loadSizessredraw(((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysPersistentShapeCanvas_s     !s PerstShapecBs#tZd„Zd„Zd„ZRS(NcCs ||_dS(N(s unqPclNamesself(sselfs unqPclName((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys__init__±scCsdS(shMust be implemented for any class deriving from it, called after reading positions from pickle.N((sselfspos((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pyssetPos´scCsdS(seMust be implemented for any class deriving from it, called before reading sizes into pickle.N((sselfspos((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysgetPos¸s(s__name__s __module__s__init__ssetPossgetPos(((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys PerstShape°s  sPerstDividedShapecBs,tZd„Zd„Zd„Zd„ZRS(NcCs*tii|||ƒti||ƒdS(N(sogls DividedShapes__init__sselfswidthsheights PerstShapes unqPclName(sselfs unqPclNameswidthsheight((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys__init__¾scCs&|i|dƒ|i|dƒdS(s6Pos for divide shape, format: (width, height)iiN(sselfsSetXspossSetY(sselfspos((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pyssetPosÂscCs|iƒ|iƒfSdS(s6Pos for divide shape, format: (width, height)N(sselfsGetXsGetY(sself((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysgetPosÊscCsy|iƒ}ti|ƒ}|i|ƒd}xD|iƒD]6}|i dƒ|i ||i ƒ|ƒ|d}q;WdS(s•This method retrieves the text from the shape regions and draws it. There seems to be a problem that the text is not normally drawn. iiiN( sselfs GetCanvasscanvasswxsClientDCsdcs PrepareDCscounts GetRegionssregions SetFormatModes FormatTextsGetText(sselfscountscanvassregionsdc((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys FlushTextÐs    (s__name__s __module__s__init__ssetPossgetPoss FlushText(((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysPerstDividedShape½s   sScrollingContainercBstZdZdZd„ZRS(Ni cCsStii||ddtiƒ|i|i|i|i |i|i |iƒdS(Niÿÿÿÿsstyle( swxsScrolledWindows__init__sselfsparents SUNKEN_BORDERs SetScrollbarss scrollStepXs scrollStepYssizesxsy(sselfsparentssize((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys__init__às(s__name__s __module__s scrollStepXs scrollStepYs__init__(((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysScrollingContainerÝssPersistentOGLViewcBs›tZdZdZdZdZfd„Zd„Zd„Zd„Z d „Z d d „Z d „Z d „Z d„Zd„Zd„Zd„Zd„ZRS(NsOGLsImages/Editor/Open.pngsImages/Editor/Save.pngiÐc CsIti||ti|i|iƒƒtii||d|i |i dfd|i |i dfd|iddfdtddfd|iddff|ƒg|_t||iƒ|_|ii|iƒƒ|iiti|iƒtiƒ|_|ii|iƒ|ii|iƒt|_|i|_ t!|_"t#|_$dS(Ns(Re)load diagramss Save diagramsPrint diagram to PostScripts-s Change size(%sScrollingContainers__init__sselfsparentswxsSizesdefSizes EditorViewss EditorViewsmodelsOnLoadsloadBmpsOnSavessaveBmps OnPrintToPSsNones OnSetSizesactionssshapessPersistentShapeCanvasscanvassSetSizesGetVirtualSizesBinds EVT_RIGHT_UPs OnRightClicksoglsDiagramsdiagrams SetDiagrams SetCanvass shapeMenussizesFalses_loadedsTruesactive(sselfsparentsmodelsactions((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys__init__ës%h    cCs|iƒtii|ƒdS(N(sselfs destroyShapess EditorViewss EditorViewsdestroy(sself((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysdestroys cCsg|i(|iiƒdS(N(sselfsshapessdiagramsDeleteAllShapes(sself((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys destroyShapes s cCsptii|iiƒd|i}dkl }y|i i |ƒt |_ Wn|j ot|_ nXdS(Ni(sTransportError(sosspathssplitextsselfsmodelsfilenamesexts layoutFilesExplorers.ExplorersTransportErrorscanvass loadSizessTrues_loadedsFalse(sselfsTransportErrors layoutFile((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys refreshCtrls#  cCs©tiƒ}|i|iƒ|itiƒ|i ti ƒ|i ti ƒ|i dƒ|i||ƒ|ii|ƒ|itƒ|i||iƒ|iƒƒdS(Ni(sogls LineShapeslines SetCanvassselfscanvassSetPens Preferencess vpOGLLinePensSetBrushsvpOGLLineBrushsAddArrows ARROW_ARROWsMakeLineControlPointss fromShapesAddLinestoShapesdiagramsAddShapesShowsTruesMovesdcsGetXsGetY(sselfsdcs fromShapestoShapesline((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysnewLines   i c Cs·tiƒ} ti|iƒ}|i|ƒxH|D]@}|i |ƒ\}} ||jo |}n|| d}q2W| i|ƒ| idi|ƒƒ| i|ƒ| ||fSdS(Nis (sogls ShapeRegionsregionswxsClientDCsselfscanvassdcsSetFontsfontstextLststexts GetTextExtentswshsmaxWidths totHeightsSetTextsjoinsSetNamesname( sselfsfontsnamestextLstsmaxWidths totHeightstextsdcswshsregion((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys newRegion+s     cCsî|i|iƒ|i|ƒ|i|ƒ|i|ƒ|i |ƒ|i |ƒ|itiƒ|ii|ƒ|itƒtƒ}|i|_||_|i|ƒ|i|iƒƒ|i|ƒ|ii|ƒt |iƒdSdS(Ni(!sshapes SetCanvassselfscanvassSetXsxsSetYsysSetPenspensSetBrushsbrushsAddTextstexts SetShadowModesogls SHADOW_RIGHTsdiagramsAddShapesShowsTrues MyEvtHandlers evthandlers shapeMenusmenusviewsSetShapesSetPreviousHandlersGetEventHandlersSetEventHandlersshapessappendslen(sselfsshapesxsyspensbrushstexts evthandler((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysaddShape<s"           cCsl|i|i|i|if\}}|iddƒ|i |i|i||ƒ|i i |i ƒƒdS(Ni( ssizesxsselfs scrollStepXsys scrollStepYsnvsxsnvsysScrolls SetScrollbarsscanvassSetSizesGetVirtualSize(sselfssizesnvsysnvsx((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pyssetSizeTs&cCs1|iitii|iiƒd|iƒdS(Ni( sselfscanvass loadSizessosspathssplitextsmodelsfilenamesext(sselfsevent((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysOnLoad[scCs1|iitii|iiƒd|iƒdS(Ni( sselfscanvass saveSizessosspathssplitextsmodelsfilenamesext(sselfsevent((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysOnSave^scCs.|iitii|iiƒddƒdS(Nis.ps(sselfscanvass printSizessosspathssplitextsmodelsfilename(sselfsevent((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys OnPrintToPSascCs€ti|dd|i ƒ}zR|iƒtijo8t|iƒƒ|_|i ti |i|iƒƒnWd|i ƒXdS(Ns%Enter new canvas size (width==height)sSize( swxsTextEntryDialogsselfssizesdlgs ShowModalsID_OKsintsGetValuessetSizesSizesDestroy(sselfseventsdlg((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys OnSetSizeds 'cCs.|ii|iƒ|iƒƒGH|iƒdS(N(sselfscanvassHitTestseventsGetXsSkip(sselfsevent((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys OnRightClick1ns (s__name__s __module__sviewNamesloadBmpssaveBmpsdefSizes__init__sdestroys destroyShapess refreshCtrlsnewLines newRegionsaddShapessetSizesOnLoadsOnSaves OnPrintToPSs OnSetSizes OnRightClick1(((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysPersistentOGLViewås"           sSortedUMLViewMixcBs5tZdZd„Zd„Zd„Zdd„ZRS(sƒ Currently uses topological sort to make the UML diagram more readily readable on load. Also resizes the diagram to the space taken by the actual diagram elements so that very large diagrams can be accommodated. The resulting diagrams are far more white-space-intensive than the original jumbles. A more appropriate algorithm may be found by someone else. cCs|iƒSdS(sAReturn the size of a shape's representation, an abstraction pointN(sshapesGetBoundingBoxMax(sselfsshape((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys getShapeSize}scCs|ii|ƒSdS(sUAttempt to retrieve an already-existing class model object, another abstraction pointN(sselfs AllClassessgets className(sselfs className((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysgetCurrentShape€sc Cs|iiƒ}g} g} |iƒg} x’| oŠ| d}xr|i ƒD]d}|i |ƒo"|| jo| i |ƒq5n³|i i|ƒoJ|i |} |iddfddf|| ii ƒ| ii ƒƒ}n"|iddfddf|ƒ}||i|<| i |ƒ|idt|iƒƒ|i|ƒoj| i |i|ƒƒ|i|ƒi ƒ}x<|D]0}||f| jo| i ||fƒqwqwWqKqKW| d=q-Wx9| D]1\}}|i||i |ƒ|i |ƒƒqÆW|i|| | ƒdS(sÜRetrieve the current module and build the graph elements Where possible, re-use the already-built class shapes. Uses toposort to attempt to arrange the shapes after they have been built. iiiièN(sselfsmodels getModulesmodulesroutessnodesscreateHierarchystodos hierarchyskeyss classNamesgetCurrentShapesappendsclassesshas_keys classModelsnewClasssmethodss attributess classShapesnewExternalClasss AllClassessSetIdslensgetschildrenschildsparentsnewLinesdcs arrangeShapes( sselfsdcs classShapesparents hierarchysmoduleschildrens classNameschildsroutessnodesstodos classModel((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys buildShapes„sH        #  )f1.1000000000000001cCs_t||ƒ}g}xO|D]G}|igƒx1|D])}|di|i |i |ƒƒƒq6WqWd} d}g}g} x|D]…}d} d} x5|D]-\}}|| jo |} n| |} qŸW| | jo | } n|| }|i| ƒ| i| ƒq†W| |} |}||}||t|ƒdpd}|itit| dƒt|dƒƒƒd}xÝtt|| |ƒD]Æ\} } }d}| | t|ƒdpd}x|D]y}|i |ƒ} |i | ƒ\}}|i"i#|d||d|ƒ\}}| i&|||t(ƒ|||}qÌW|| |}q‘WdS(s¡Given the nodes and routes (values are names only), arrange the shapes This could be called as an action after the initial display if prefered. iÿÿÿÿif1.0f2.0i2N()ssortsnodessroutess generationsssizess generationsappendschildsselfs getShapeSizesgetCurrentShapeswidthsheightswidthssheightss currentWidths currentHeightsxsyswhiteSpaceFactors rawHeightslensverticalWhiteSpacessetSizeswxsSizesintsmapsNones whiteSpaces classNames classShapesshapeXsshapeYsdiagramsSnapscsXscsYsMovesdcsFalse(sselfsdcsnodessroutesswhiteSpaceFactors generationsheightscsYscsXs currentWidths currentHeights classShapesheightsswidths whiteSpaceschildsshapeYsshapeXsverticalWhiteSpacessizesswidthss classNames rawHeightsysxs generations((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys arrangeShapes¶sZ +         -+(s__name__s __module__s__doc__s getShapeSizesgetCurrentShapes buildShapess arrangeShapes(((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysSortedUMLViewMixss    2sRecursionErrorcBstZdZRS(s; Unable to calculate result because of recursive structure (s__name__s __module__s__doc__(((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysRecursionErrorïs icCsyt|ƒ\}} g}|g}g} x0|D](}| i |ƒ o|i |ƒq.q.W|o| o|i |dƒn| i |ƒt |d„|ƒ}xÎ|oÆg} t|ƒ}x€|D]x}xo|i |gƒD][} | | jo | | jo| i | ƒqÜ| | jo|ot| |fƒ‚qÜqÜWqÃW| }g}xz|D]r}| i |gƒ}xW|D]O}||jo ||jo/|| i |gƒj o|i |ƒqÀqqqqWqRWx0|D](} x| |jo|i| ƒqØWqÏW|i |ƒ| i |ƒt |d„|ƒ}|t|ƒjo/|ot|ƒ‚ql|i |ƒg}q£q£W|SdS(s Passed a list of node IDs and a list of source,dest ID routes attempt to create a list of stages where each sub list is one stage in a process. icCs ||jS(N(sxsl(sxsl((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pyssN(s_buildChildrenListssroutesschildrensparentssstagesstagesstakensnodessnodesgetsappendsextendsfilterspreviousStageChildrenslensnodelenschilds noRecursionsRecursionErrorsremovesscurrentscurrentParentssparentsremove(snodessroutess noRecursionsnodescurrentscurrentParentssparentsnodelensremovesspreviousStageChildrenstakensparentssremoveschildsstagesschildrensstage((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pyssortòsb      cCs§h}h}xŠ|D]‚\}}|i|gƒ}|i|gƒ}||j o|i|ƒn||j o|i|ƒn|||<|||tZdZdZdZd„Zd„Zd„Zd„ZRS(Ns.implaysImages/Editor/Refresh.pngsImportsc CsPti|||dtddfd|i|idffƒt|_d|_ dS(Ns-ssRefreshi( sPersistentOGLViews__init__sselfsparentsmodelsNones OnRefreshs refreshBmps relationshipss showImports(sselfsparentsmodel((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys__init__és+ c CsT|it||d|dƒ|d|dtitidƒ}|i o dg}nd} |i tid|g| ƒ\} } }|i tid|| ƒ\} } }||}| idd |t|ƒƒ| idd |t|ƒƒ|i|} | i| ƒ| i| ƒ| i| d|dƒ| iƒ| iƒ| | dfSdS( Niiss i s module_namesmethodsf0.0f1.0(sselfsaddShapesPerstDividedShapes moduleNamessizesposs PreferencessvpOGLModuleShapePensvpOGLModuleShapeBrushsidxs showImportss importListsmaxWidths newRegions oglBoldFonts regionNames nameHeights oglStdFonts regionClsss clssHeights totHeightsSetProportionssfloatsshapessshapes AddRegionsSetSizesSetRegionSizess FlushText( sselfssizesposs moduleNames importLists totHeightsidxs clssHeights nameHeights regionClsssshapesmaxWidths regionName((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys newModuleñs& '$      cCsbti|ƒ}|i|ƒ|i o&|iiƒ}||_|i ƒndSh}d}d} t |idƒo|ii} nd} xo|iƒD]a} g}xh|| iiƒD]S}|i| dƒo|t| ƒd}n|i|ƒo|i|ƒq¹q¹Wxh|| iiƒD]S}|i| dƒo|t| ƒd}n|i|ƒo|i|ƒq$q$W|iddf|| f| || iiƒƒ\} }| |f|| <||d}||iƒijod}| d} q™q™WxP|iƒD]B}x9||dD])} |i!|||d || d ƒq Wq Wt"i#|ƒdS( Ni is packageNamess.iiixi($swxsClientDCsselfsdcs PrepareDCs relationshipssmodelsbuildImportRelationshipDicts relationss destroyShapessshapesspsyshasattrs packageNameskeyssrelsimpLstsimportssis startswithslenshas_keysappends from_importss newModulesclassessshapeswidthsGetSizesxsmoduleslinesnewLinesPersistentOGLViews refreshCtrl(sselfsimpLstsmoduleswidthsisdcs relationssshapesspsshapesrelsyslines packageName((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys refreshCtrlsP    7 +cCst|_|iƒdS(N(sNonesselfs relationshipss refreshCtrl(sselfsevent((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys OnRefresh@s ( s__name__s __module__sexts refreshBmpsviewNames__init__s newModules refreshCtrls OnRefresh(((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys ImportsViewäs   0sAppPackageViewcBs>tZdZdZdZd„Zd„Zd„Zd„ZRS(Ns.apklaysImages/Editor/Refresh.pngsApplication packagesc CsGti|||dtddfd|i|idffƒt|_dS(Ns-ssRefresh( sPersistentOGLViews__init__sselfsparentsmodelsNones OnRefreshs refreshBmps relationships(sselfsparentsmodel((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys__init__Js+c Cs<|it||d|dƒ|d|dtitidƒ}d}|i t i d|g|ƒ\} }} |i t id||ƒ\} }}| |}| idd| t|ƒƒ| idd|t|ƒƒ|i|} | i| ƒ| i| ƒ| i|d|dƒ| iƒ| iƒ| |dfSdS( Niisi s module_namesmethodsf0.0f1.0(sselfsaddShapesPerstDividedShapes moduleNamessizesposswxs BLACK_PENsLIGHT_GREY_BRUSHsidxsmaxWidths newRegions Preferencess oglBoldFonts regionNames nameHeights oglStdFonts importLists regionClsss clssHeights totHeightsSetProportionssfloatsshapessshapes AddRegionsSetSizesSetRegionSizess FlushText( sselfssizesposs moduleNames importLists totHeightsmaxWidthsidxs clssHeights regionNames nameHeights regionClsssshape((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys newModuleQs#'$      c Cs¢ti|ƒ}|i|ƒ|i o&|iiƒ}||_|i ƒndSh}d}d} xØ|i ƒD]Ê} g}x<|| ii ƒD]'}|i|ƒo|i|ƒqqW|iddf|| f| || ii ƒƒ\}}||f|| <||d}||iƒijod}| d} qpqpWxP|i ƒD]B} x9|| dD])} |i||| d|| dƒq`WqKWti|ƒdS(Ni iiixii(swxsClientDCsselfsdcs PrepareDCs relationshipssmodelsbuildImportRelationshipDicts relationss destroyShapessshapesspsyskeyssrelsimpLstsimportssishas_keysappends newModulesclassessshapeswidthsGetSizesxsmoduleslinesnewLinesPersistentOGLViews refreshCtrl( sselfsimpLstswidthsisdcs relationssshapesspsshapesmodulesrelsysline((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys refreshCtrlls:    7 +cCst|_|iƒdS(N(sNonesselfs relationshipss refreshCtrl(sselfsevent((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys OnRefreshs ( s__name__s __module__sexts refreshBmpsviewNames__init__s newModules refreshCtrls OnRefresh(((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pysAppPackageViewEs   $("spicklesosswxs wx.lib.oglslibsogls PreferencessUtilssISs EditorViewss OGLInitializesRectangleShapesRoundedRectangleShapesShapeEvtHandlers MyEvtHandlersincys ShapeCanvassPersistentShapeCanvass PerstShapes DividedShapesPerstDividedShapesScrolledWindowsScrollingContainers EditorViewsPersistentOGLViewsSortedUMLViewMixs OverflowErrors ValueErrorsRecursionErrorssorts_buildChildrenListssUMLViews ImportsViewsAppPackageView(s PreferencessUMLViewsincys EditorViewssPerstDividedShapesSortedUMLViewMixssortsAppPackageViews ImportsViewsISs_buildChildrenListss MyEvtHandlersoglsossPersistentOGLViewsRecursionErrorswxsRoundedRectangleShapesScrollingContainersUtilss PerstShapesPersistentShapeCanvasspickle((sT/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/Views/OGLViews.pys? s,   4Q  Ž| 9 «a