Index: fittingview/src/sans/perspectives/fitting/editmodel.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/editmodel.py	(revision 056b569ea5e559300257cb629b27d1eb09c321c6)
+++ fittingview/src/sans/perspectives/fitting/editmodel.py	(revision 056b569ea5e559300257cb629b27d1eb09c321c6)
@@ -0,0 +1,61 @@
+"""
+Console Module display Python console
+"""
+import sys
+import wx
+import wx.py.editor as editor
+if sys.platform.count("win32")>0:
+    PANEL_WIDTH = 800
+    PANEL_HEIGHT = 600
+    FONT_VARIANT = 0
+else:
+    PANEL_WIDTH = 830
+    PANEL_HEIGHT = 620
+    FONT_VARIANT = 1
+    
+class PyConsole(editor.EditorFrame):
+    ## Internal nickname for the window, used by the AUI manager
+    window_name = "Custom Model Editor"
+    ## Name to appear on the window title bar
+    window_caption = "Custom Model Editor"
+    ## Flag to tell the AUI manager to put this panel in the center pane
+    CENTER_PANE = False
+    def __init__(self, parent=None, manager=None,
+                    title='Custom Model Editor', filename=None,
+                    size=(PANEL_WIDTH, PANEL_HEIGHT)):
+        self.config = None
+        editor.EditorFrame.__init__(self, parent=parent, 
+                                        title=title, size=size,
+                                        filename=filename)
+        self.parent = parent
+        self._manager = manager
+        self.Centre()
+
+    def set_manager(self, manager):
+        """
+        Set the manager of this window
+        """
+        self._manager = manager
+        
+    def OnAbout(self, event):
+        """
+        On About
+        """
+        message = ABOUT
+        dial = wx.MessageDialog(self, message, 'About',
+                           wx.OK|wx.ICON_INFORMATION)  
+        dial.ShowModal()
+             
+ABOUT =  "Welcome to Python %s! \n\n"% sys.version.split()[0]
+ABOUT += "This uses Py Editor in wx (developed by Patrick K. O'Brien).\n"
+ABOUT += "If this is your first time using Python, \n"
+ABOUT += "you should definitely check out the tutorial "
+ABOUT += "on the Internet at http://www.python.org/doc/tut/."
+ 
+        
+if __name__ == "__main__":
+   
+    app  = wx.App()
+    dlg = PyConsole()
+    dlg.Show()
+    app.MainLoop()
Index: fittingview/src/sans/perspectives/fitting/fitting.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fitting.py	(revision fa02d950e7e18accb7f8354ee8b8746662d7cb62)
+++ fittingview/src/sans/perspectives/fitting/fitting.py	(revision 056b569ea5e559300257cb629b27d1eb09c321c6)
@@ -14,4 +14,5 @@
 import re
 import sys
+import os
 import wx
 import logging
@@ -216,8 +217,37 @@
         chain_menu.Check(not self.batch_reset_flag)
         chain_menu.Enable(self.batch_on)
+        
+        self.menu1.AppendSeparator()
+        self.id_editmodel = wx.NewId()
+        editmodel_help = "Edit cusomized model sample file" 
+        self.menu1.Append(self.id_editmodel, "Edit Custom Model", 
+                                   editmodel_help) 
+        wx.EVT_MENU(owner, self.id_editmodel,  self.edit_custom_model)
+        
         #create  menubar items
         return [(self.menu1, self.sub_menu)]
-            
-   
+    
+    def edit_custom_model(self, event):
+        """
+        Get the python editor panel
+        """
+        from editmodel import PyConsole
+        filename = os.path.join("plugins", "testmodel.py")
+        frame = PyConsole(parent=self.parent, filename=filename)
+        self.put_icon(frame)
+        frame.Show(True) 
+        
+    def put_icon(self, frame):
+        """
+        Put icon in the frame title bar
+        """
+        if hasattr(frame, "IsIconized"):
+            if not frame.IsIconized():
+                try:
+                    icon = self.parent.GetIcon()
+                    frame.SetIcon(icon)
+                except:
+                    pass      
+                     
     def on_add_sim_page(self, event):
         """
