Viewer.py
changeset 154 203c4acdaf27
parent 145 4fb225afddf4
child 155 b695f7459ef6
equal deleted inserted replaced
153:f0e8e7f58a5a 154:203c4acdaf27
  1641         old_values = {"name" : block.GetName(), "type" : block.GetType(), "inputs" : block.GetInputTypes(), 
  1641         old_values = {"name" : block.GetName(), "type" : block.GetType(), "inputs" : block.GetInputTypes(), 
  1642             "executionOrder" : block.GetExecutionOrder(), "extension" : block.GetExtension()}
  1642             "executionOrder" : block.GetExecutionOrder(), "extension" : block.GetExtension()}
  1643         dialog.SetValues(old_values)
  1643         dialog.SetValues(old_values)
  1644         if dialog.ShowModal() == wx.ID_OK:
  1644         if dialog.ShowModal() == wx.ID_OK:
  1645             new_values = dialog.GetValues()
  1645             new_values = dialog.GetValues()
       
  1646             rect = block.GetRedrawRect(1, 1)
  1646             if "name" in new_values:
  1647             if "name" in new_values:
  1647                 block.SetName(new_values["name"])
  1648                 block.SetName(new_values["name"])
       
  1649             else:
       
  1650                 block.SetName("")
  1648             block.SetSize(*self.GetScaledSize(new_values["width"], new_values["height"]))
  1651             block.SetSize(*self.GetScaledSize(new_values["width"], new_values["height"]))
  1649             block.SetType(new_values["type"], new_values["extension"])
  1652             block.SetType(new_values["type"], new_values["extension"])
  1650             block.SetExecutionOrder(new_values["executionOrder"])
  1653             block.SetExecutionOrder(new_values["executionOrder"])
       
  1654             rect = rect.Union(block.GetRedrawRect())
  1651             self.RefreshBlockModel(block)
  1655             self.RefreshBlockModel(block)
  1652             if old_values["executionOrder"] != new_values["executionOrder"]:
  1656             if old_values["executionOrder"] != new_values["executionOrder"]:
  1653                 self.RefreshView()
  1657                 self.RefreshView()
  1654             self.RefreshBuffer()
  1658             self.RefreshBuffer()
  1655             self.RefreshScrollBars()
  1659             self.RefreshScrollBars()
  1656             self.ParentWindow.RefreshVariablePanel(self.TagName)
  1660             self.ParentWindow.RefreshVariablePanel(self.TagName)
  1657             block.Refresh()
  1661             block.Refresh(rect)
  1658         dialog.Destroy()
  1662         dialog.Destroy()
  1659 
  1663 
  1660     def EditVariableContent(self, variable):
  1664     def EditVariableContent(self, variable):
  1661         dialog = VariablePropertiesDialog(self.ParentWindow)
  1665         dialog = VariablePropertiesDialog(self.ParentWindow)
  1662         dialog.SetMinVariableSize(variable.GetSize())
  1666         dialog.SetMinVariableSize(variable.GetSize())
  1673         old_values = {"name" : variable.GetName(), "type" : variable.GetType(), 
  1677         old_values = {"name" : variable.GetName(), "type" : variable.GetType(), 
  1674             "executionOrder" : variable.GetExecutionOrder()}
  1678             "executionOrder" : variable.GetExecutionOrder()}
  1675         dialog.SetValues(old_values)
  1679         dialog.SetValues(old_values)
  1676         if dialog.ShowModal() == wx.ID_OK:
  1680         if dialog.ShowModal() == wx.ID_OK:
  1677             new_values = dialog.GetValues()
  1681             new_values = dialog.GetValues()
       
  1682             rect = variable.GetRedrawRect(1, 1)
  1678             variable.SetName(new_values["name"])
  1683             variable.SetName(new_values["name"])
  1679             variable.SetType(new_values["type"], new_values["value_type"])
  1684             variable.SetType(new_values["type"], new_values["value_type"])
  1680             variable.SetSize(*self.GetScaledSize(new_values["width"], new_values["height"]))
  1685             variable.SetSize(*self.GetScaledSize(new_values["width"], new_values["height"]))
  1681             variable.SetExecutionOrder(new_values["executionOrder"])
  1686             variable.SetExecutionOrder(new_values["executionOrder"])
       
  1687             rect = rect.Union(variable.GetRedrawRect())
  1682             if old_values["type"] != new_values["type"]:
  1688             if old_values["type"] != new_values["type"]:
  1683                 id = variable.GetId()
  1689                 id = variable.GetId()
  1684                 self.Controler.RemoveEditedElementInstance(self.TagName, id)
  1690                 self.Controler.RemoveEditedElementInstance(self.TagName, id)
  1685                 self.Controler.AddEditedElementVariable(self.TagName, id, new_values["type"])
  1691                 self.Controler.AddEditedElementVariable(self.TagName, id, new_values["type"])
  1686             self.RefreshVariableModel(variable)
  1692             self.RefreshVariableModel(variable)
  1687             if old_values["executionOrder"] != new_values["executionOrder"]:
  1693             if old_values["executionOrder"] != new_values["executionOrder"]:
  1688                 self.RefreshView()
  1694                 self.RefreshView()
  1689             self.RefreshBuffer()
  1695             self.RefreshBuffer()
  1690             self.RefreshScrollBars()
  1696             self.RefreshScrollBars()
  1691             variable.Refresh()
  1697             variable.Refresh(rect)
  1692         dialog.Destroy()
  1698         dialog.Destroy()
  1693 
  1699 
  1694     def EditConnectionContent(self, connection):
  1700     def EditConnectionContent(self, connection):
  1695         dialog = ConnectionPropertiesDialog(self.ParentWindow)
  1701         dialog = ConnectionPropertiesDialog(self.ParentWindow)
  1696         dialog.SetMinConnectionSize(connection.GetSize())
  1702         dialog.SetMinConnectionSize(connection.GetSize())
  1697         values = {"name" : connection.GetName(), "type" : connection.GetType()}
  1703         values = {"name" : connection.GetName(), "type" : connection.GetType()}
  1698         dialog.SetValues(values)
  1704         dialog.SetValues(values)
  1699         if dialog.ShowModal() == wx.ID_OK:
  1705         if dialog.ShowModal() == wx.ID_OK:
  1700             old_type = connection.GetType()
  1706             old_type = connection.GetType()
  1701             values = dialog.GetValues()
  1707             values = dialog.GetValues()
       
  1708             rect = connection.GetRedrawRect(1, 1)
  1702             connection.SetName(values["name"])
  1709             connection.SetName(values["name"])
  1703             connection.SetType(values["type"])
  1710             connection.SetType(values["type"])
  1704             connection.SetSize(*self.GetScaledSize(values["width"], values["height"]))
  1711             connection.SetSize(*self.GetScaledSize(values["width"], values["height"]))
       
  1712             rect = rect.Union(connection.GetRedrawRect())
  1705             if old_type != values["type"]:
  1713             if old_type != values["type"]:
  1706                 id = connection.GetId()
  1714                 id = connection.GetId()
  1707                 self.Controler.RemoveEditedElementInstance(self.TagName, id)
  1715                 self.Controler.RemoveEditedElementInstance(self.TagName, id)
  1708                 self.Controler.AddEditedElementConnection(self.TagName, id, values["type"])
  1716                 self.Controler.AddEditedElementConnection(self.TagName, id, values["type"])
  1709             self.RefreshConnectionModel(connection)
  1717             self.RefreshConnectionModel(connection)
  1710             self.RefreshBuffer()
  1718             self.RefreshBuffer()
  1711             self.RefreshScrollBars()
  1719             self.RefreshScrollBars()
  1712             connection.Refresh()
  1720             connection.Refresh(rect)
  1713         dialog.Destroy()
  1721         dialog.Destroy()
  1714 
  1722 
  1715     def EditContactContent(self, contact):
  1723     def EditContactContent(self, contact):
  1716         dialog = LDElementDialog(self.ParentWindow, "contact")
  1724         dialog = LDElementDialog(self.ParentWindow, "contact")
  1717         varlist = []
  1725         varlist = []
  1724         values = {"name" : contact.GetName(), "type" : contact.GetType()}
  1732         values = {"name" : contact.GetName(), "type" : contact.GetType()}
  1725         dialog.SetValues(values)
  1733         dialog.SetValues(values)
  1726         dialog.SetElementSize(contact.GetSize())
  1734         dialog.SetElementSize(contact.GetSize())
  1727         if dialog.ShowModal() == wx.ID_OK:
  1735         if dialog.ShowModal() == wx.ID_OK:
  1728             values = dialog.GetValues()
  1736             values = dialog.GetValues()
       
  1737             rect = contact.GetRedrawRect(1, 1)
  1729             contact.SetName(values["name"])
  1738             contact.SetName(values["name"])
  1730             contact.SetType(values["type"])
  1739             contact.SetType(values["type"])
  1731             contact.SetSize(*self.GetScaledSize(values["width"], values["height"]))
  1740             contact.SetSize(*self.GetScaledSize(values["width"], values["height"]))
       
  1741             rect = rect.Union(contact.GetRedrawRect())
  1732             self.RefreshContactModel(contact)
  1742             self.RefreshContactModel(contact)
  1733             self.RefreshBuffer()
  1743             self.RefreshBuffer()
  1734             self.RefreshScrollBars()
  1744             self.RefreshScrollBars()
  1735             contact.Refresh()
  1745             contact.Refresh(rect)
  1736         dialog.Destroy()
  1746         dialog.Destroy()
  1737 
  1747 
  1738     def EditCoilContent(self, coil):
  1748     def EditCoilContent(self, coil):
  1739         dialog = LDElementDialog(self.ParentWindow, "coil")
  1749         dialog = LDElementDialog(self.ParentWindow, "coil")
  1740         varlist = []
  1750         varlist = []
  1750         values = {"name" : coil.GetName(), "type" : coil.GetType()}
  1760         values = {"name" : coil.GetName(), "type" : coil.GetType()}
  1751         dialog.SetValues(values)
  1761         dialog.SetValues(values)
  1752         dialog.SetElementSize(coil.GetSize())
  1762         dialog.SetElementSize(coil.GetSize())
  1753         if dialog.ShowModal() == wx.ID_OK:
  1763         if dialog.ShowModal() == wx.ID_OK:
  1754             values = dialog.GetValues()
  1764             values = dialog.GetValues()
       
  1765             rect = coil.GetRedrawRect(1, 1)
  1755             coil.SetName(values["name"])
  1766             coil.SetName(values["name"])
  1756             coil.SetType(values["type"])
  1767             coil.SetType(values["type"])
  1757             coil.SetSize(*self.GetScaledSize(values["width"], values["height"]))
  1768             coil.SetSize(*self.GetScaledSize(values["width"], values["height"]))
       
  1769             rect = rect.Union(coil.GetRedrawRect())
  1758             self.RefreshCoilModel(coil)
  1770             self.RefreshCoilModel(coil)
  1759             self.RefreshBuffer()
  1771             self.RefreshBuffer()
  1760             self.RefreshScrollBars()
  1772             self.RefreshScrollBars()
  1761             coil.Refresh()
  1773             coil.Refresh(rect)
  1762         dialog.Destroy()
  1774         dialog.Destroy()
  1763 
  1775 
  1764     def EditPowerRailContent(self, powerrail):
  1776     def EditPowerRailContent(self, powerrail):
  1765         dialog = LDPowerRailDialog(self.ParentWindow, powerrail.GetType(), len(powerrail.GetConnectors()))
  1777         dialog = LDPowerRailDialog(self.ParentWindow, powerrail.GetType(), len(powerrail.GetConnectors()))
  1766         dialog.SetMinSize(powerrail.GetSize())
  1778         dialog.SetMinSize(powerrail.GetSize())
  1767         if dialog.ShowModal() == wx.ID_OK:
  1779         if dialog.ShowModal() == wx.ID_OK:
  1768             old_type = powerrail.GetType()
  1780             old_type = powerrail.GetType()
  1769             values = dialog.GetValues()
  1781             values = dialog.GetValues()
       
  1782             rect = powerrail.GetRedrawRect(1, 1)
  1770             powerrail.SetType(values["type"], [True for i in xrange(values["number"])])
  1783             powerrail.SetType(values["type"], [True for i in xrange(values["number"])])
  1771             powerrail.SetSize(*self.GetScaledSize(values["width"], values["height"]))
  1784             powerrail.SetSize(*self.GetScaledSize(values["width"], values["height"]))
       
  1785             rect = rect.Union(powerrail.GetRedrawRect())
  1772             if old_type != values["type"]:
  1786             if old_type != values["type"]:
  1773                 id = powerrail.GetId()
  1787                 id = powerrail.GetId()
  1774                 self.Controler.RemoveEditedElementInstance(self.TagName, id)
  1788                 self.Controler.RemoveEditedElementInstance(self.TagName, id)
  1775                 self.Controler.AddEditedElementPowerRail(self.TagName, id, values["type"])
  1789                 self.Controler.AddEditedElementPowerRail(self.TagName, id, values["type"])
  1776             self.RefreshPowerRailModel(powerrail)
  1790             self.RefreshPowerRailModel(powerrail)
  1777             self.RefreshBuffer()
  1791             self.RefreshBuffer()
  1778             self.RefreshScrollBars()
  1792             self.RefreshScrollBars()
  1779             powerrail.Refresh()
  1793             powerrail.Refresh(rect)
  1780         dialog.Destroy()
  1794         dialog.Destroy()
  1781 
  1795 
  1782     def EditStepContent(self, step):
  1796     def EditStepContent(self, step):
  1783         dialog = StepContentDialog(self.ParentWindow, step.GetInitial())
  1797         dialog = StepContentDialog(self.ParentWindow, step.GetInitial())
  1784         dialog.SetPouNames(self.Controler.GetProjectPouNames())
  1798         dialog.SetPouNames(self.Controler.GetProjectPouNames())
  1791         values["output"] = connectors["output"] != None
  1805         values["output"] = connectors["output"] != None
  1792         values["action"] = connectors["action"] != None
  1806         values["action"] = connectors["action"] != None
  1793         dialog.SetValues(values)
  1807         dialog.SetValues(values)
  1794         if dialog.ShowModal() == wx.ID_OK:
  1808         if dialog.ShowModal() == wx.ID_OK:
  1795             values = dialog.GetValues()
  1809             values = dialog.GetValues()
       
  1810             rect = step.GetRedrawRect(1, 1)
  1796             step.SetName(values["name"])
  1811             step.SetName(values["name"])
  1797             if values["input"]:
  1812             if values["input"]:
  1798                 step.AddInput()
  1813                 step.AddInput()
  1799             else:
  1814             else:
  1800                 step.RemoveInput()
  1815                 step.RemoveInput()
  1805             if values["action"]:
  1820             if values["action"]:
  1806                 step.AddAction()    
  1821                 step.AddAction()    
  1807             else:
  1822             else:
  1808                 step.RemoveAction()
  1823                 step.RemoveAction()
  1809             step.UpdateSize(*self.GetScaledSize(values["width"], values["height"]))
  1824             step.UpdateSize(*self.GetScaledSize(values["width"], values["height"]))
  1810             step.RefreshModel()
  1825             rect = rect.Union(step.GetRedrawRect())
  1811             self.RefreshBuffer()
  1826             self.RefreshStepModel(step)
  1812             self.RefreshScrollBars()
  1827             self.RefreshBuffer()
  1813             step.Refresh()
  1828             self.RefreshScrollBars()
       
  1829             step.Refresh(rect)
  1814         
  1830         
  1815     def EditTransitionContent(self, transition):
  1831     def EditTransitionContent(self, transition):
  1816         dialog = TransitionContentDialog(self.ParentWindow, self.GetDrawingMode() == FREEDRAWING_MODE)
  1832         dialog = TransitionContentDialog(self.ParentWindow, self.GetDrawingMode() == FREEDRAWING_MODE)
  1817         dialog.SetTransitions(self.Controler.GetEditedElementTransitions(self.TagName))
  1833         dialog.SetTransitions(self.Controler.GetEditedElementTransitions(self.TagName))
  1818         dialog.SetValues({"type":transition.GetType(),"value":transition.GetCondition(), "priority":transition.GetPriority()})
  1834         dialog.SetValues({"type":transition.GetType(),"value":transition.GetCondition(), "priority":transition.GetPriority()})
  1819         dialog.SetElementSize(transition.GetSize())
  1835         dialog.SetElementSize(transition.GetSize())
  1820         if dialog.ShowModal() == wx.ID_OK:
  1836         if dialog.ShowModal() == wx.ID_OK:
  1821             values = dialog.GetValues()
  1837             values = dialog.GetValues()
       
  1838             rect = transition.GetRedrawRect(1, 1)
  1822             transition.SetType(values["type"],values["value"])
  1839             transition.SetType(values["type"],values["value"])
  1823             transition.SetPriority(values["priority"])
  1840             transition.SetPriority(values["priority"])
  1824             transition.RefreshModel()
  1841             rect = rect.Union(transition.GetRedrawRect())
  1825             self.RefreshBuffer()
  1842             self.RefreshTransitionModel(transition)
  1826             self.RefreshScrollBars()
  1843             self.RefreshBuffer()
  1827             transition.Refresh()
  1844             self.RefreshScrollBars()
       
  1845             transition.Refresh(rect)
  1828         dialog.Destroy()
  1846         dialog.Destroy()
  1829 
  1847 
  1830     def EditJumpContent(self, jump):
  1848     def EditJumpContent(self, jump):
  1831         choices = []
  1849         choices = []
  1832         for block in self.Blocks:
  1850         for block in self.Blocks:
  1834                 choices.append(block.GetName())
  1852                 choices.append(block.GetName())
  1835         dialog = wx.SingleChoiceDialog(self.ParentWindow, "Edit jump target", "Please choose a target", choices, wx.OK|wx.CANCEL)
  1853         dialog = wx.SingleChoiceDialog(self.ParentWindow, "Edit jump target", "Please choose a target", choices, wx.OK|wx.CANCEL)
  1836         dialog.SetSelection(choices.index(jump.GetTarget()))
  1854         dialog.SetSelection(choices.index(jump.GetTarget()))
  1837         if dialog.ShowModal() == wx.ID_OK:
  1855         if dialog.ShowModal() == wx.ID_OK:
  1838             value = dialog.GetStringSelection()
  1856             value = dialog.GetStringSelection()
       
  1857             rect = jump.GetRedrawRect(1, 1)
  1839             jump.SetTarget(value)
  1858             jump.SetTarget(value)
  1840             jump.RefreshModel()
  1859             rect = rect.Union(jump.GetRedrawRect())
  1841             self.RefreshBuffer()
  1860             self.RefreshJumpModel(jump)
  1842             self.RefreshScrollBars()
  1861             self.RefreshBuffer()
  1843             jump.Refresh()
  1862             self.RefreshScrollBars()
       
  1863             jump.Refresh(rect)
  1844         dialog.Destroy()
  1864         dialog.Destroy()
  1845 
  1865 
  1846     def EditActionBlockContent(self, actionblock):
  1866     def EditActionBlockContent(self, actionblock):
  1847         dialog = ActionBlockDialog(self.ParentWindow)
  1867         dialog = ActionBlockDialog(self.ParentWindow)
  1848         dialog.SetQualifierList(self.Controler.GetQualifierTypes())
  1868         dialog.SetQualifierList(self.Controler.GetQualifierTypes())
  1849         dialog.SetActionList(self.Controler.GetEditedElementActions(self.TagName))
  1869         dialog.SetActionList(self.Controler.GetEditedElementActions(self.TagName))
  1850         dialog.SetVariableList(self.Controler.GetEditedElementInterfaceVars(self.TagName))
  1870         dialog.SetVariableList(self.Controler.GetEditedElementInterfaceVars(self.TagName))
  1851         dialog.SetValues(actionblock.GetActions())
  1871         dialog.SetValues(actionblock.GetActions())
  1852         if dialog.ShowModal() == wx.ID_OK:
  1872         if dialog.ShowModal() == wx.ID_OK:
  1853             actions = dialog.GetValues()
  1873             actions = dialog.GetValues()
       
  1874             rect = actionblock.GetRedrawRect(1, 1)
  1854             actionblock.SetActions(actions)
  1875             actionblock.SetActions(actions)
  1855             actionblock.SetSize(*self.GetScaledSize(*actionblock.GetSize()))
  1876             actionblock.SetSize(*self.GetScaledSize(*actionblock.GetSize()))
  1856             actionblock.RefreshModel()
  1877             rect = rect.Union(actionblock.GetRedrawRect())
  1857             self.RefreshBuffer()
  1878             self.RefreshActionBlockModel(actionblock)
  1858             self.RefreshScrollBars()
  1879             self.RefreshBuffer()
  1859             actionblock.Refresh()
  1880             self.RefreshScrollBars()
       
  1881             actionblock.Refresh(rect)
  1860         dialog.Destroy()
  1882         dialog.Destroy()
  1861 
  1883 
  1862     def EditCommentContent(self, comment):
  1884     def EditCommentContent(self, comment):
  1863         if wx.VERSION >= (2, 5, 0):
  1885         if wx.VERSION >= (2, 5, 0):
  1864             dialog = wx.TextEntryDialog(self.ParentWindow, "Edit comment", "Please enter comment text", comment.GetContent(), wx.OK|wx.CANCEL|wx.TE_MULTILINE)
  1886             dialog = wx.TextEntryDialog(self.ParentWindow, "Edit comment", "Please enter comment text", comment.GetContent(), wx.OK|wx.CANCEL|wx.TE_MULTILINE)
  1865         else:
  1887         else:
  1866             dialog = wx.TextEntryDialog(self.ParentWindow, "Edit comment", "Please enter comment text", comment.GetContent(), wx.OK|wx.CANCEL)
  1888             dialog = wx.TextEntryDialog(self.ParentWindow, "Edit comment", "Please enter comment text", comment.GetContent(), wx.OK|wx.CANCEL)
  1867         if dialog.ShowModal() == wx.ID_OK:
  1889         if dialog.ShowModal() == wx.ID_OK:
  1868             value = dialog.GetValue()
  1890             value = dialog.GetValue()
       
  1891             rect = comment.GetRedrawRect(1, 1)
  1869             comment.SetContent(value)
  1892             comment.SetContent(value)
  1870             comment.SetSize(*self.GetScaledSize(*comment.GetSize()))
  1893             comment.SetSize(*self.GetScaledSize(*comment.GetSize()))
  1871             comment.RefreshModel()
  1894             rect = rect.Union(comment.GetRedrawRect())
  1872             self.RefreshBuffer()
  1895             self.RefreshCommentModel(comment)
  1873             self.RefreshScrollBars()
  1896             self.RefreshBuffer()
  1874             comment.Refresh()
  1897             self.RefreshScrollBars()
       
  1898             comment.Refresh(rect)
  1875         dialog.Destroy()
  1899         dialog.Destroy()
  1876 
  1900 
  1877 #-------------------------------------------------------------------------------
  1901 #-------------------------------------------------------------------------------
  1878 #                          Model update functions
  1902 #                          Model update functions
  1879 #-------------------------------------------------------------------------------
  1903 #-------------------------------------------------------------------------------