Пример #1
0
	def AddEditPage(self, title, defaultDiagram = None):
		""" Adds a new page for editing to the notebook and keeps track of it.

			@type title: string
			@param title: Title for a new page
		"""

		### title page list
		title_pages = map(lambda p: p.name, self.pages)

		### occurrence of title in existing title pages
		c = title_pages.count(title)
		title = title+"(%d)"%c if c != 0 else title

		### new page
		newPage = Container.ShapeCanvas(self, wx.NewId(), name=title)

		### new diagram
		d = defaultDiagram or Container.Diagram()
		d.SetParent(newPage)

		### diagram and background new page setting
		newPage.SetDiagram(d)

		### print canvas variable setting
		self.print_canvas = newPage
		self.print_size = self.GetSize()

		self.pages.append(newPage)
		self.AddPage(newPage, title, imageId=0)

		self.SetSelection(self.GetPageCount()-1)
Пример #2
0
		def OnInit(self):

			import DetachedFrame
			import __builtin__
			import gettext
			from DomainInterface.DomainStructure import DomainStructure
			from DomainInterface.DomainBehavior import DomainBehavior

			__builtin__.__dict__['ICON_PATH']='icons'
			__builtin__.__dict__['ICON_PATH_16_16']=os.path.join(ICON_PATH,'16x16')
			__builtin__.__dict__['NB_HISTORY_UNDO']= 5
			__builtin__.__dict__['DOMAIN_PATH']='Domain'
			__builtin__.__dict__['FONT_SIZE']=12
			__builtin__.__dict__['_'] = gettext.gettext
			__builtin__.__dict__['LOCAL_EDITOR'] = False

			diagram = Container.Diagram()

			self.frame = DetachedFrame.DetachedFrame(None, -1, "Test", diagram)
			newPage = Container.ShapeCanvas(self.frame, wx.NewId(), name='Test')
			newPage.SetDiagram(diagram)

			getDiagramFromXML("Diagram.xml", canvas=newPage)
			#diagram.SetParent(newPage)

			self.frame.Show()

			return True
Пример #3
0
        def OnInit(self):

            from . import DetachedFrame
            import builtins
            import gettext
            from .DomainInterface.DomainStructure import DomainStructure
            from .DomainInterface.DomainBehavior import DomainBehavior

            builtins.__dict__['ICON_PATH'] = 'icons'
            builtins.__dict__['ICON_PATH_16_16'] = os.path.join(
                ICON_PATH, '16x16')
            builtins.__dict__['NB_HISTORY_UNDO'] = 5
            builtins.__dict__['DOMAIN_PATH'] = 'Domain'

            builtins.__dict__['FONT_SIZE'] = 12
            builtins.__dict__['_'] = gettext.gettext
            builtins.__dict__['LOCAL_EDITOR'] = False

            diagram = Container.Diagram()

            self.frame = DetachedFrame.DetachedFrame(None, -1, "Test", diagram)
            newPage = Container.ShapeCanvas(self.frame,
                                            wx.NewIdRef(),
                                            name='Test')
            newPage.SetDiagram(diagram)

            path = os.path.join(os.path.expanduser("~"), 'Downloads',
                                'Watershed.xml')
            #path = os.path.join(os.path.expanduser("~"),'Downloads','example.xmlsestree')
            getDiagramFromXMLSES(path, canvas=newPage)
            #diagram.SetParent(newPage)

            self.frame.Show()

            return True
Пример #4
0
	def __init__(self, parent=None, ID=wx.NewIdRef(), title="", diagram=None, name=""):
		""" Constructor.

			@parent : window parent of the frame
			@ID : ID of the frame
			@title : title of the frame
			@diagram : diagram included in the canvas embedded in the frame
			@name : name of the frame
		"""

		### inherit call
		wx.Frame.__init__(      self,
								parent,
								ID,
								title,
								wx.DefaultPosition,
								wx.Size(600, 400),
								name=name,
								style=wx.DEFAULT_FRAME_STYLE | wx.CLIP_CHILDREN)

		### local Copy
		self.title = title
		self.parent = parent
		self.diagram = diagram

		### current abstract level
		#=======================================================================
		if hasattr(diagram, 'layers') and hasattr(diagram, 'current_level'):
			level = diagram.layers[0].current_level
			self.diagram = diagram.layers[level]
		else:
			level = 0
			self.diagram = diagram
		#=======================================================================

		### Canvas Stuff -----------------------------------
		self.canvas = Container.ShapeCanvas(self, wx.NewIdRef(), name=title, diagram = self.diagram)
		self.canvas.scalex = 1.0
		self.canvas.scaley = 1.0

		self.transparent = wx.ALPHA_OPAQUE

		### ------------------------Diagram parent manager
		try:
			self.canvas.stockUndo = self.diagram.parent.stockUndo
			self.canvas.stockRedo = self.diagram.parent.stockRedo
		except Exception:
			diagram.SetParent(self.canvas)
			self.canvas.stockUndo = []
			self.canvas.stockRedo = []

		### Menu ToolBar
		toolbar = wx.ToolBar(self, wx.NewIdRef(), name='tb', style=wx.TB_HORIZONTAL | wx.NO_BORDER)
		toolbar.SetToolBitmapSize((16,16))

		if self.parent:
			self.toggle_list = wx.GetApp().GetTopWindow().toggle_list
		else:
			sys.stdout.write(_('Alone mode for DetachedFrame: Connector buttons are not binded\n'))
			self.toggle_list = [wx.NewIdRef(), wx.NewIdRef(), wx.NewIdRef(), wx.NewIdRef(), wx.NewIdRef(), wx.NewIdRef()]
		
		if wx.VERSION_STRING < '2.9':
			self.tools = [  toolbar.AddTool(Menu.ID_SAVE, wx.Bitmap(os.path.join(ICON_PATH,'save.png')), shortHelpString=_('Save File') ,longHelpString=_('Save the current diagram'), clientData=self.canvas),
										toolbar.AddTool(Menu.ID_SAVEAS, wx.Bitmap(os.path.join(ICON_PATH,'save_as.png')), shortHelpString=_('Save File As'), longHelpString=_('Save the diagram with an another name'), clientData=self.canvas),
										toolbar.AddTool(wx.ID_UNDO, wx.Bitmap(os.path.join(ICON_PATH,'undo.png')), shortHelpString=_('Undo'), longHelpString=_('Click to go back, hold to see history'),clientData=self.canvas),
										toolbar.AddTool(wx.ID_REDO, wx.Bitmap(os.path.join(ICON_PATH,'redo.png')), shortHelpString=_('Redo'), longHelpString=_('Click to go forward, hold to see history'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_ZOOMIN_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'zoom+.png')), shortHelpString=_('Zoom +'), longHelpString=_('Zoom in'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_ZOOMOUT_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'zoom-.png')), shortHelpString=_('Zoom -'), longHelpString=_('Zoom out'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_UNZOOM_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'no_zoom.png')), shortHelpString=_('AnnuleZoom'),longHelpString=_('Initial view'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_PRIORITY_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'priority.png')), shortHelpString=_('Priority'), longHelpString=_('Activation models priority')),
										toolbar.AddTool(Menu.ID_CHECK_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'check_master.png')), shortHelpString=_('Check'), longHelpString=_('Check all models')),
										toolbar.AddTool(Menu.ID_SIM_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'simulation.png')), shortHelpString=_('Simulation'), longHelpString=_('Simulate the diagram')),
										toolbar.AddTool(self.toggle_list[0], wx.Bitmap(os.path.join(ICON_PATH,'direct_connector.png')), shortHelpString=_('Direct'), longHelpString=_('Direct connector'), isToggle=True),
										toolbar.AddTool(self.toggle_list[1], wx.Bitmap(os.path.join(ICON_PATH,'square_connector.png')), shortHelpString=_('Square'), longHelpString=_('Square connector'), isToggle=True),
										toolbar.AddTool(self.toggle_list[2], wx.Bitmap(os.path.join(ICON_PATH,'linear_connector.png')), shortHelpString=_('Linear'), longHelpString=_('Linear connector'), isToggle=True)
						]
		else:
			self.tools = [  toolbar.AddTool(Menu.ID_SAVE, "", wx.Bitmap(os.path.join(ICON_PATH,'save.png')), wx.NullBitmap, shortHelp=_('Save File') ,longHelp=_('Save the current diagram'), clientData=self.canvas),
										toolbar.AddTool(Menu.ID_SAVEAS, "", wx.Bitmap(os.path.join(ICON_PATH,'save_as.png')), wx.NullBitmap, shortHelp=_('Save File As'), longHelp=_('Save the diagram with an another name'), clientData=self.canvas),
										toolbar.AddTool(wx.ID_UNDO, "", wx.Bitmap(os.path.join(ICON_PATH,'undo.png')), wx.NullBitmap, shortHelp=_('Undo'), longHelp=_('Click to go back, hold to see history'),clientData=self.canvas),
										toolbar.AddTool(wx.ID_REDO, "", wx.Bitmap(os.path.join(ICON_PATH,'redo.png')), wx.NullBitmap, shortHelp=_('Redo'), longHelp=_('Click to go forward, hold to see history'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_ZOOMIN_DIAGRAM, "", wx.Bitmap(os.path.join(ICON_PATH,'zoom+.png')), wx.NullBitmap, shortHelp=_('Zoom +'), longHelp=_('Zoom in'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_ZOOMOUT_DIAGRAM, "", wx.Bitmap(os.path.join(ICON_PATH,'zoom-.png')), wx.NullBitmap, shortHelp=_('Zoom -'), longHelp=_('Zoom out'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_UNZOOM_DIAGRAM, "", wx.Bitmap(os.path.join(ICON_PATH,'no_zoom.png')), wx.NullBitmap, shortHelp=_('AnnuleZoom'), longHelp=_('Initial view'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_PRIORITY_DIAGRAM, "", wx.Bitmap(os.path.join(ICON_PATH,'priority.png')), shortHelp=_('Priority')),
										toolbar.AddTool(Menu.ID_CHECK_DIAGRAM, "", wx.Bitmap(os.path.join(ICON_PATH,'check_master.png')), shortHelp=_('Check')),
										toolbar.AddTool(Menu.ID_SIM_DIAGRAM, "", wx.Bitmap(os.path.join(ICON_PATH,'simulation.png')), shortHelp=_('Simulation')),
										toolbar.AddTool(self.toggle_list[0], "", wx.Bitmap(os.path.join(ICON_PATH,'direct_connector.png')), shortHelp=_('Direct'), kind=wx.ITEM_CHECK),
										toolbar.AddTool(self.toggle_list[1], "", wx.Bitmap(os.path.join(ICON_PATH,'square_connector.png')), shortHelp=_('Square'), kind=wx.ITEM_CHECK),
										toolbar.AddTool(self.toggle_list[2], "", wx.Bitmap(os.path.join(ICON_PATH,'linear_connector.png')), shortHelp=_('Linear'), kind=wx.ITEM_CHECK)
			]							
		toolbar.EnableTool(wx.ID_UNDO, not self.canvas.stockUndo == [])
		toolbar.EnableTool(wx.ID_REDO, not self.canvas.stockRedo == [])
		toolbar.InsertSeparator(2)
		toolbar.InsertSeparator(5)
		toolbar.InsertSeparator(9)
		toolbar.InsertSeparator(13)
		toolbar.InsertSeparator(17)

		toolbar.ToggleTool(self.toggle_list[0],1)

		#=======================================================================
		### spin control for abstraction hierarchy
		if isinstance(diagram, Container.Diagram):
			level_label = wx.StaticText(toolbar, -1, _("Level "))
			self.spin = wx.SpinCtrl(toolbar, self.toggle_list[3], str(level), (55, 90), (50, -1), min=0, max=10)

			toolbar.AddControl(level_label)
			toolbar.AddControl(self.spin)

			ID_UPWARD = self.toggle_list[4]
			ID_DOWNWARD = self.toggle_list[5]

			if wx.VERSION_STRING < '2.9':
    				
				self.tools.append(toolbar.AddTool(ID_DOWNWARD, wx.Bitmap(os.path.join(ICON_PATH,'downward.png')), shortHelpString=_('Downward rules'), longHelpString=_('Define Downward rules atomic model')))
				self.tools.append(toolbar.AddTool(ID_UPWARD, wx.Bitmap(os.path.join(ICON_PATH,'upward.png')), shortHelpString=_('Upward rules'), longHelpString=_('Define Upward rules atomic model')))
			else:
				self.tools.append(toolbar.AddTool(ID_DOWNWARD, "", wx.Bitmap(os.path.join(ICON_PATH,'downward.png')), shortHelp=_('Downward rules')))
				self.tools.append(toolbar.AddTool(ID_UPWARD, "", wx.Bitmap(os.path.join(ICON_PATH,'upward.png')), shortHelp=_('Upward rules')))
    				
			### update downward and upward button
			toolbar.EnableTool(ID_DOWNWARD, level != 0)
			toolbar.EnableTool(ID_UPWARD, level != 0)
		#=======================================================================

		toolbar.Realize()
		self.SetToolBar(toolbar)
		
		### if Detached frame from block (container or Code)
		### save, save-as and simulation are disabled
		if not isinstance(self.parent, Container.ShapeCanvas):
			#toolbar.EnableTool(Menu.ID_SAVE, False)
			#toolbar.EnableTool(Menu.ID_SAVEAS, False)
			toolbar.EnableTool(Menu.ID_SIM_DIAGRAM, False)
			toolbar.EnableTool(Menu.ID_PRIORITY_DIAGRAM, not 'PyPDEVS' in builtins.__dict__['DEFAULT_DEVS_DIRNAME'])
		else:
			toolbar.EnableTool(Menu.ID_SAVEAS, False)

		### Call Printable constructor
		PrintOut.Printable.__init__(self, self.canvas)

		### vertical box
		vbox = wx.BoxSizer(wx.VERTICAL)
		#vbox.Add(toolbar, 0, wx.EXPAND, border = 5)
		vbox.Add(self.canvas, 1, wx.EXPAND, border = 5)

		self.SetSizer(vbox)

		self.CenterOnParent()

		self.statusbar = self.CreateStatusBar(1, wx.ST_SIZEGRIP)
		self.statusbar.SetFieldsCount(3)
		self.statusbar.SetStatusWidths([-5, -2, -1])

		self.__binding()
Пример #5
0
	def __init__(self, parent=None, ID=wx.ID_ANY, title="", diagram=None, name=""):
		""" Constructor.

			@parent : window parent of the frame
			@ID : ID of the frame
			@title : title of the frame
			@diagram : diagram included in the canvas embedded in the frame
			@name : name of the frame
		"""

		### inherit call
		wx.Frame.__init__(      self,
								parent,
								ID,
								title,
								wx.DefaultPosition,
								wx.Size(600, 400),
								name=name,
								style=wx.DEFAULT_FRAME_STYLE | wx.CLIP_CHILDREN | wx.STAY_ON_TOP)

		### local Copy
		self.title = title
		self.parent = parent
		self.diagram = diagram

		### Canvas Stuff -----------------------------------
		self.canvas = Container.ShapeCanvas(self, wx.ID_ANY, name=title, diagram = self.diagram)
		self.canvas.scalex = 1.0
		self.canvas.scaley = 1.0

		self.transparent = wx.ALPHA_OPAQUE

		### ------------------------Diagram parent manager
		try:
			self.canvas.stockUndo = self.diagram.parent.stockUndo
			self.canvas.stockRedo = self.diagram.parent.stockRedo
		except Exception:
			diagram.SetParent(self.canvas)
			self.canvas.stockUndo = []
			self.canvas.stockRedo = []

		### Menu ToolBar
		toolbar = wx.ToolBar(self, wx.ID_ANY, name='tb', style=wx.TB_HORIZONTAL | wx.NO_BORDER)
		toolbar.SetToolBitmapSize((25,25)) # just for windows

		if self.parent:
			self.toggle_list = wx.GetApp().GetTopWindow().toggle_list
		else:
			sys.stdout.write(_('Alone mode for DetachedFrame: Connector buttons are not binded\n'))
			self.toggle_list = [wx.NewId(), wx.NewId(), wx.NewId()]

		self.tools = [  toolbar.AddTool(Menu.ID_SAVE, wx.Bitmap(os.path.join(ICON_PATH,'save.png')), shortHelpString=_('Save File') ,longHelpString=_('Save the current diagram'), clientData=self.canvas),
										toolbar.AddTool(Menu.ID_SAVEAS, wx.Bitmap(os.path.join(ICON_PATH,'save_as.png')), shortHelpString=_('Save File As'), longHelpString=_('Save the diagram with an another name'), clientData=self.canvas),
										toolbar.AddTool(wx.ID_UNDO, wx.Bitmap(os.path.join(ICON_PATH,'undo.png')), shortHelpString=_('Undo'), longHelpString=_('Click to go back, hold to see history'),clientData=self.canvas),
										toolbar.AddTool(wx.ID_REDO, wx.Bitmap(os.path.join(ICON_PATH,'redo.png')), shortHelpString=_('Redo'), longHelpString=_('Click to go forward, hold to see history'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_ZOOMIN_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'zoom+.png')), shortHelpString=_('Zoom +'), longHelpString=_('Zoom in'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_ZOOMOUT_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'zoom-.png')), shortHelpString=_('Zoom -'), longHelpString=_('Zoom out'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_UNZOOM_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'no_zoom.png')), shortHelpString=_('AnnuleZoom'),longHelpString=_('Initial view'),clientData=self.canvas),
										toolbar.AddTool(Menu.ID_PRIORITY_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'priority.png')), shortHelpString=_('Priority'), longHelpString=_('Activation models priority')),
										toolbar.AddTool(Menu.ID_CHECK_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'check_master.png')), shortHelpString=_('Check'), longHelpString=_('Check all models')),
										toolbar.AddTool(Menu.ID_SIM_DIAGRAM, wx.Bitmap(os.path.join(ICON_PATH,'simulation.png')), shortHelpString=_('Simulation'), longHelpString=_('Simulate the diagram')),
										toolbar.AddTool(self.toggle_list[0], wx.Bitmap(os.path.join(ICON_PATH,'direct_connector.png')), shortHelpString=_('Direct'), longHelpString=_('Direct connector'), isToggle=True),
										toolbar.AddTool(self.toggle_list[1], wx.Bitmap(os.path.join(ICON_PATH,'square_connector.png')), shortHelpString=_('Square'), longHelpString=_('Square connector'), isToggle=True),
										toolbar.AddTool(self.toggle_list[2], wx.Bitmap(os.path.join(ICON_PATH,'linear_connector.png')), shortHelpString=_('Linear'), longHelpString=_('Linear connector'), isToggle=True)
						]

		toolbar.EnableTool(wx.ID_UNDO, not self.canvas.stockUndo == [])
		toolbar.EnableTool(wx.ID_REDO, not self.canvas.stockRedo == [])
		toolbar.InsertSeparator(2)
		toolbar.InsertSeparator(5)
		toolbar.InsertSeparator(9)
		toolbar.InsertSeparator(13)
		toolbar.ToggleTool(self.toggle_list[0],1)
		toolbar.Realize()

		### if Detached frame from block (container or Code)
		### save, save-as and simulation are disabled
		if not isinstance(self.parent, Container.ShapeCanvas):
			toolbar.EnableTool(Menu.ID_SAVE, False)
			toolbar.EnableTool(Menu.ID_SAVEAS, False)
			toolbar.EnableTool(Menu.ID_SIM_DIAGRAM, False)

		### Call Printable constructor
		PrintOut.Printable.__init__(self, self.canvas)

		### vertical box
		vbox = wx.BoxSizer(wx.VERTICAL)
		vbox.Add(toolbar, 0, wx.EXPAND, border = 5)
		vbox.Add(self.canvas, 1, wx.EXPAND, border = 5)

		self.SetSizer(vbox)

		self.CenterOnParent()

		self.statusbar = self.CreateStatusBar(1, wx.ST_SIZEGRIP)
		self.statusbar.SetFieldsCount(3)
		self.statusbar.SetStatusWidths([-5, -2, -1])

		self.__binding()