Ejemplo n.º 1
0
 def __init__(
     self,
     Label,
     XY,
     WH,
     BackgroundColor="Yellow",
     TextColor="Black",
     InForeground=False,
     IsVisible=True,
 ):
     XY = N.asarray(XY, N.float).reshape(2)
     WH = N.asarray(WH, N.float).reshape(2)
     Label = FC.ScaledText(Label, XY, Size=WH[1] / 2.0, Color=TextColor, Position="cc")
     self.Ellipse = FC.Ellipse((XY - WH / 2.0), WH, FillColor=BackgroundColor, LineStyle=None)
     FC.Group.__init__(self, [self.Ellipse, Label], InForeground, IsVisible)
Ejemplo n.º 2
0
    def __init__(self, node, config, InForeground=False, IsVisible=True):
        Label = node.name
        location = config.Point(node)
        self.connectors = sets.Set([])

        BackgroundColor = config.getNodeColor(node)
        TextColor = config.getNodeTextColor(node)
        shape = config.getNodeShape(node)
        locationArray = N.asarray(location, N.float).reshape(2, )
        WH = N.asarray(config.getRectangleSize(), N.float).reshape(2, )
        #print "Node %s: Location = %s, WH = %s"%(Label, locationArray, WH)
        self.Node = node
        scaler = 1. + len(Label) / 7.0
        self.Label = FC.ScaledText(
            Label,
            locationArray,
            Size=WH[1] / scaler,
            Color=TextColor,
            Position='cc',
        )
        if shape == "rectangle":
            self.Shape = FC.Rectangle(
                (locationArray - WH / 2.0),
                WH,
                FillColor=BackgroundColor,
                LineStyle=None,
            )
        elif shape == "ellipse":
            self.Shape = FC.Ellipse(
                (locationArray - WH / 2.0),
                WH,
                FillColor=BackgroundColor,
                LineStyle=None,
            )
        else:
            print "Error. Unknown shape: %s" % (shape, )
        FC.Group.__init__(self, [self.Shape, self.Label], InForeground,
                          IsVisible)
Ejemplo n.º 3
0
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.CreateStatusBar()

        # Add the Canvas
        NC = NavCanvas.NavCanvas(
            self,
            -1,
            size=(500, 500),
            ProjectionFun=None,
            Debug=0,
            BackgroundColor="DARK SLATE BLUE",
        )
        Canvas = NC.Canvas
        self.Canvas = Canvas

        self.Canvas.Bind(FloatCanvas.EVT_MOTION, self.OnMove)

        Point = (45, 40)

        ## create a few Objects:
        C = FloatCanvas.Circle((0, 0), 10, FillColor="Red")
        R = FloatCanvas.Rectangle((5, 5), (15, 8), FillColor="Blue")
        E = FloatCanvas.Ellipse((1.5, 1.5), (12, 8), FillColor="Purple")
        C2 = FloatCanvas.Circle((0, 5), 10, FillColor="cyan")
        T = FloatCanvas.Text("Group A", (5.5, 5.5),
                             Position="cc",
                             Size=16,
                             Weight=wx.BOLD,
                             Family=wx.SWISS)

        self.GroupA = FloatCanvas.Group((R, C, E))
        self.GroupA.AddObjects((C2, T))
        Canvas.AddObject(self.GroupA)

        ## create another Groups of objects

        R = FloatCanvas.Rectangle((15, 15), (10, 18), FillColor="orange")
        E = FloatCanvas.Ellipse((22, 28), (12, 8), FillColor="yellow")
        C = FloatCanvas.Circle((25, 20), 15, FillColor="Green")
        C2 = FloatCanvas.Circle((12, 22), 10, FillColor="cyan")
        T = FloatCanvas.Text("Group B", (19, 24),
                             Position="cc",
                             Size=16,
                             Weight=wx.BOLD,
                             Family=wx.SWISS)

        self.GroupB = FloatCanvas.Group((R, E, C, C2, T))
        Canvas.AddObject(self.GroupB)

        self.Groups = {"A": self.GroupA, "B": self.GroupB}

        # Add a couple of tools to the Canvas Toolbar

        tb = NC.ToolBar
        #        tb.AddSeparator()

        for Group in self.Groups:
            Button = wx.Button(tb, wx.ID_ANY, "Remove %s" % Group)
            tb.AddControl(Button)
            Button.Bind(wx.EVT_BUTTON,
                        lambda evt, group=Group: self.RemoveGroup(evt, group))
            Button = wx.Button(tb, wx.ID_ANY, "Replace%s" % Group)
            tb.AddControl(Button)
            Button.Bind(wx.EVT_BUTTON,
                        lambda evt, group=Group: self.ReplaceGroup(evt, group))
        tb.Realize()

        self.Show()
        Canvas.ZoomToBB()
Ejemplo n.º 4
0
 def ellipse(self, xy, wh, s):
   self.shape = fc.Ellipse(xy, wh)
   self.shape.pair = self
   self.create_text(s)