Beispiel #1
0
    def InitSizeAndObjs(self):
        # Only call this once enclosing frame has been set up, so that get correct world coord dimensions

        self.canvas_resizer = CanvasResizer(canvas=self)

        # Don't assert canvas size sanity anymore as wxpython3 (phoenix) doesn't set canvas size
        # as quickly as wxpython2.8 does, even though frame has been sized and shown
        # with frame.SetSize(WINDOW_SIZE) and frame.Show(True)
        # In wxpython3 (phoenix) canvas stays at (20,20) despite the frame increasing in size to (1024,768)
        # but good ole wxpython2.8 does indeed change canvas size immediately to (1024,768)
        #
        # assert not self.canvas_resizer.canvas_too_small(), "InitSizeAndObjs being called too early - please set up enclosing frame size first"

        self.umlworkspace = UmlWorkspace()
        self.layout = LayoutBasic(leftmargin=5,
                                  topmargin=5,
                                  verticalwhitespace=50,
                                  horizontalwhitespace=50,
                                  maxclassesperline=7)
        self.snapshot_mgr = GraphSnapshotMgr(graph=self.umlworkspace.graph,
                                             umlcanvas=self)
        self.coordmapper = CoordinateMapper(self.umlworkspace.graph,
                                            self.GetSize())
        self.layouter = GraphLayoutSpring(self.umlworkspace.graph, gui=self)
        self.overlap_remover = OverlapRemoval(self.umlworkspace.graph,
                                              margin=50,
                                              gui=self)
Beispiel #2
0
    def testStress2_InitialBoot(self):
        """
        This is the slowest stress test because it runs the spring layout several times.
        """

        from layout.layout_spring import GraphLayoutSpring
        from layout.coordinate_mapper import CoordinateMapper

        self.g.LoadGraphFromStrings(
            GRAPH_INITIALBOOT)  # load the scenario ourselves

        layouter = GraphLayoutSpring(self.g)
        coordmapper = CoordinateMapper(self.g, (800, 800))

        def AllToLayoutCoords():
            coordmapper.AllToLayoutCoords()

        def AllToWorldCoords():
            coordmapper.AllToWorldCoords()

        for i in range(8):
            print(i, end=" ")

            AllToLayoutCoords()
            layouter.layout(keep_current_positions=False)
            AllToWorldCoords()

            were_all_overlaps_removed = self.overlap_remover.RemoveOverlaps()
            self.assertTrue(were_all_overlaps_removed)
Beispiel #3
0
    def __init__(self, graph, oglcanvas):
        self.graph = graph
        self.oglcanvas = oglcanvas
        self.oglcanvas.graphrendererogl = self
        self.coordmapper = CoordinateMapper(self.graph,
                                            self.oglcanvas.GetSize())

        self.oglcanvas.Bind(wx.EVT_MOUSEWHEEL, self.OnWheelZoom)
        self.oglcanvas.Bind(wx.EVT_RIGHT_DOWN, self.OnRightButtonMenu)
        self.oglcanvas.Bind(wx.EVT_KEY_DOWN, self.onKeyPress)
        self.oglcanvas.Bind(wx.EVT_CHAR, self.onKeyChar)
        self.oglcanvas.Bind(wx.EVT_SIZE, self.OnResizeFrame)

        self.popupmenu = None
        self.need_abort = False
        self.new_edge_from = None
        self.working = False
        self.snapshot_mgr = GraphSnapshotMgr(graph=self.graph, umlcanvas=self)

        if UNIT_TESTING_MODE:
            self.overlap_remover = OverlapRemoval(self.graph,
                                                  margin=5,
                                                  gui=self)
        else:
            self.overlap_remover = OverlapRemoval(self.graph,
                                                  margin=50,
                                                  gui=self)
Beispiel #4
0
    def InitSizeAndObjs(self):
        # Only call this once enclosing frame has been set up, so that get correct world coord dimensions

        self.canvas_resizer = CanvasResizer(canvas=self)
        assert not self.canvas_resizer.canvas_too_small(
        ), "InitSizeAndObjs being called too early - please set up enclosing frame size first"

        self.umlworkspace = UmlWorkspace()
        self.layout = LayoutBasic(leftmargin=5,
                                  topmargin=5,
                                  verticalwhitespace=50,
                                  horizontalwhitespace=50,
                                  maxclassesperline=7)
        self.snapshot_mgr = GraphSnapshotMgr(graph=self.umlworkspace.graph,
                                             umlcanvas=self)
        self.coordmapper = CoordinateMapper(self.umlworkspace.graph,
                                            self.GetSize())
        self.layouter = GraphLayoutSpring(self.umlworkspace.graph, gui=self)
        self.overlap_remover = OverlapRemoval(self.umlworkspace.graph,
                                              margin=50,
                                              gui=self)