Viewer.py
changeset 97 28337cd092fd
parent 95 ee66a9a1748b
child 98 ec5d7af033d8
equal deleted inserted replaced
96:d178cfa9e77f 97:28337cd092fd
    51         wx.TextDropTarget.__init__(self)
    51         wx.TextDropTarget.__init__(self)
    52         self.ParentWindow = parent
    52         self.ParentWindow = parent
    53     
    53     
    54     def OnDropText(self, x, y, data):
    54     def OnDropText(self, x, y, data):
    55         values = eval(data)
    55         values = eval(data)
    56         if values[1] in ["function", "functionBlock", "program"]:
    56         if values[1] == "program":
    57             id = self.ParentWindow.GetNewId()
    57             message = wx.MessageDialog(self.ParentWindow, "Programs can't be used by other POUs!", "Error", wx.OK|wx.ICON_ERROR)
    58             block = FBD_Block(self.ParentWindow, values[0], values[2], id)
    58             message.ShowModal()
    59             block.SetPosition(x, y)
    59             message.Destroy()
    60             width, height = block.GetMinSize()
    60         elif values[1] in ["function", "functionBlock", "program"]:
    61             block.SetSize(width, height)
    61             name, type = self.ParentWindow.Controler.GetCurrentElementEditingType()
    62             self.ParentWindow.AddBlock(block)
    62             if name == values[0]:
    63             self.ParentWindow.Controler.AddCurrentElementEditingBlock(id,values[0], values[2])
    63                 message = wx.MessageDialog(self.ParentWindow, "\"%s\" can't use itself!"%name, "Error", wx.OK|wx.ICON_ERROR)
    64             self.ParentWindow.RefreshBlockModel(block)
    64                 message.ShowModal()
    65             self.ParentWindow.RefreshScrollBars()
    65                 message.Destroy()
    66             self.ParentWindow.Refresh()
    66             elif type == "function" and values[1] != "function":
       
    67                 message = wx.MessageDialog(self.ParentWindow, "Function Blocks can't be used by Functions!", "Error", wx.OK|wx.ICON_ERROR)
       
    68                 message.ShowModal()
       
    69                 message.Destroy()
       
    70             elif self.ParentWindow.Controler.PouIsUsedBy(name, values[0]):
       
    71                 message = wx.MessageDialog(self.ParentWindow, "\"%s\" is already used by \"%s\"!"%(name, values[0]), "Error", wx.OK|wx.ICON_ERROR)
       
    72                 message.ShowModal()
       
    73                 message.Destroy()
       
    74             else:
       
    75                 id = self.ParentWindow.GetNewId()
       
    76                 block = FBD_Block(self.ParentWindow, values[0], values[2], id)
       
    77                 block.SetPosition(x, y)
       
    78                 width, height = block.GetMinSize()
       
    79                 block.SetSize(width, height)
       
    80                 self.ParentWindow.AddBlock(block)
       
    81                 self.ParentWindow.Controler.AddCurrentElementEditingBlock(id, values[0], values[2])
       
    82                 self.ParentWindow.RefreshBlockModel(block)
       
    83                 self.ParentWindow.RefreshScrollBars()
       
    84                 self.ParentWindow.Refresh()
    67         elif values[1] != "location":
    85         elif values[1] != "location":
    68             id = self.ParentWindow.GetNewId()
    86             id = self.ParentWindow.GetNewId()
    69             if values[1] == "Output":
    87             if values[1] == "Output":
    70                 var_type = OUTPUT
    88                 var_type = OUTPUT
    71             elif values[1] == "InOut":
    89             elif values[1] == "InOut":
   974             self.Refresh(False)
   992             self.Refresh(False)
   975         elif keycode == wx.WXK_LEFT:
   993         elif keycode == wx.WXK_LEFT:
   976             if event.ControlDown() and event.ShiftDown():
   994             if event.ControlDown() and event.ShiftDown():
   977                 self.Scroll(0, ypos)
   995                 self.Scroll(0, ypos)
   978             elif event.ControlDown():
   996             elif event.ControlDown():
   979                 self.Scroll(max(0, xpos - 1), ypos)
   997                 event.Skip()
   980             elif self.SelectedElement:
   998             elif self.SelectedElement:
   981                 self.SelectedElement.Move(-scaling[0], 0)
   999                 self.SelectedElement.Move(-scaling[0], 0)
   982                 self.SelectedElement.RefreshModel()
  1000                 self.SelectedElement.RefreshModel()
   983                 self.RefreshBuffer()
  1001                 self.RefreshBuffer()
   984                 self.RefreshScrollBars()
  1002                 self.RefreshScrollBars()
   985                 self.Refresh(False)
  1003                 self.Refresh(False)
   986         elif keycode == wx.WXK_RIGHT:
  1004         elif keycode == wx.WXK_RIGHT:
   987             if event.ControlDown() and event.ShiftDown():
  1005             if event.ControlDown() and event.ShiftDown():
   988                 self.Scroll(xmax, ypos)
  1006                 self.Scroll(xmax, ypos)
   989             elif event.ControlDown():
  1007             elif event.ControlDown():
   990                 self.Scroll(min(xpos + 1, xmax), ypos)
  1008                 event.Skip()
   991             elif self.SelectedElement:
  1009             elif self.SelectedElement:
   992                 self.SelectedElement.Move(scaling[0], 0)
  1010                 self.SelectedElement.Move(scaling[0], 0)
   993                 self.SelectedElement.RefreshModel()
  1011                 self.SelectedElement.RefreshModel()
   994                 self.RefreshBuffer()
  1012                 self.RefreshBuffer()
   995                 self.RefreshScrollBars()
  1013                 self.RefreshScrollBars()
   996                 self.Refresh(False)
  1014                 self.Refresh(False)
   997         elif keycode == wx.WXK_UP:
  1015         elif keycode == wx.WXK_UP:
   998             if event.ControlDown() and event.ShiftDown():
  1016             if event.ControlDown() and event.ShiftDown():
   999                 self.Scroll(xpos, 0)
  1017                 self.Scroll(xpos, 0)
  1000             elif event.ControlDown():
  1018             elif event.ControlDown():
  1001                 self.Scroll(xpos, max(0, ypos - 1))
  1019                 event.Skip()
  1002             elif self.SelectedElement:
  1020             elif self.SelectedElement:
  1003                 self.SelectedElement.Move(0, -scaling[1])
  1021                 self.SelectedElement.Move(0, -scaling[1])
  1004                 self.SelectedElement.RefreshModel()
  1022                 self.SelectedElement.RefreshModel()
  1005                 self.RefreshBuffer()
  1023                 self.RefreshBuffer()
  1006                 self.RefreshScrollBars()
  1024                 self.RefreshScrollBars()
  1007                 self.Refresh(False)
  1025                 self.Refresh(False)
  1008         elif keycode == wx.WXK_DOWN:
  1026         elif keycode == wx.WXK_DOWN:
  1009             if event.ControlDown() and event.ShiftDown():
  1027             if event.ControlDown() and event.ShiftDown():
  1010                 self.Scroll(xpos, ymax)
  1028                 self.Scroll(xpos, ymax)
  1011             elif event.ControlDown():
  1029             elif event.ControlDown():
  1012                 self.Scroll(xpos, min(ypos + 1, ymax))
  1030                 event.Skip()
  1013             elif self.SelectedElement:
  1031             elif self.SelectedElement:
  1014                 self.SelectedElement.Move(0, scaling[1])
  1032                 self.SelectedElement.Move(0, scaling[1])
  1015                 self.SelectedElement.RefreshModel()
  1033                 self.SelectedElement.RefreshModel()
  1016                 self.RefreshBuffer()
  1034                 self.RefreshBuffer()
  1017                 self.RefreshScrollBars()
  1035                 self.RefreshScrollBars()
  1018                 self.Refresh(False)
  1036                 self.Refresh(False)
       
  1037         else:
       
  1038             event.Skip()
  1019 
  1039 
  1020 #-------------------------------------------------------------------------------
  1040 #-------------------------------------------------------------------------------
  1021 #                          Model adding functions
  1041 #                          Model adding functions
  1022 #-------------------------------------------------------------------------------
  1042 #-------------------------------------------------------------------------------
  1023 
  1043