Changeset 957723f in sasview


Ignore:
Timestamp:
Mar 25, 2011 10:37:30 AM (14 years ago)
Author:
Gervaise Alina <gervyh@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
3e943e8
Parents:
68b7d43
Message:

working on guiframe config

Location:
guiframe
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • guiframe/config.py

    rd955bf19 r957723f  
    33""" 
    44import time 
    5  
     5from sans.guiframe.gui_style import GUIFRAME 
    66# Version of the application 
    77__appname__ = "DummyView" 
     
    4242_welcome_image = "images/SVwelcome.png" 
    4343_copyright = "(c) 2008, University of Tennessee" 
     44#edit the lists below of file state your plugin can read 
     45#for sansview this how you can edit these lists 
     46#PLUGIN_STATE_EXTENSIONS = ['.prv','.fitv', '.inv'] 
     47#APPLICATION_STATE_EXTENSION = '.svs' 
     48#WLIST = ['SansView files (*.svs)|*.svs','P(r) files (*.prv)|*.prv', 
     49#                  'Fitting files (*.fitv)|*.fitv', 
     50#                  'Invariant files (*.inv)|*.inv'] 
     51 
     52PLUGIN_STATE_EXTENSIONS = [] 
     53APPLICATION_STATE_EXTENSION = None 
     54WLIST = [] 
     55SPLASH_SCREEN_PATH = "images/danse_logo.png"      
     56DEFAULT_STYLE = GUIFRAME.SINGLE_APPLICATION 
     57SPLASH_SCREEN_WIDTH = 500 
     58SPLASH_SCREEN_HEIGHT = 300 
     59SS_MAX_DISPLAY_TIME = 3000 #3 sec 
     60PLOPANEL_WIDTH = 400 
     61PLOPANEL_HEIGTH = 400 
     62GUIFRAME_WIDTH = 1000 
     63GUIFRAME_HEIGHT = 800 
     64 
    4465 
    4566import wx.lib.newevent 
  • guiframe/dummyapp.py

    r783940c r957723f  
    44""" 
    55import gui_manager 
    6 from sans.guiframe.gui_style import GUIFRAME 
     6 
    77from sans.guiframe.plugin_base import PluginBase 
    88 
     
    1010    """ 
    1111    """ 
    12     #PROG_SPLASH_PATH = None 
    13     STYLE = GUIFRAME.SINGLE_APPLICATION 
    1412     
    1513class TestPlugin(PluginBase): 
  • guiframe/gui_manager.py

    r783940c r957723f  
    5151 
    5252 
    53 PLOPANEL_WIDTH = 400 
    54 PLOPANEL_HEIGTH = 400 
    55 GUIFRAME_WIDTH = 1000 
    56 GUIFRAME_HEIGHT = 800 
    57 PROG_SPLASH_SCREEN = "images/danse_logo.png"  
    58 EXTENSIONS =  ['.inv', '.fitv', '.prv', '.svs'] 
     53#read some constants from config 
     54APPLICATION_STATE_EXTENSION = config.APPLICATION_STATE_EXTENSION 
     55 
     56APPLICATION_NAME = config.__appname__ 
     57SPLASH_SCREEN_PATH = config.SPLASH_SCREEN_PATH 
     58DEFAULT_STYLE = config.DEFAULT_STYLE 
     59SPLASH_SCREEN_WIDTH = config.SPLASH_SCREEN_WIDTH 
     60SPLASH_SCREEN_HEIGHT = config.SPLASH_SCREEN_HEIGHT 
     61SS_MAX_DISPLAY_TIME = config.SS_MAX_DISPLAY_TIME 
     62PLOPANEL_WIDTH = config.PLOPANEL_WIDTH 
     63PLOPANEL_HEIGTH = config.PLOPANEL_HEIGTH 
     64GUIFRAME_WIDTH = config.GUIFRAME_WIDTH  
     65GUIFRAME_HEIGHT = config.GUIFRAME_HEIGHT 
     66PLUGIN_STATE_EXTENSIONS =  config.PLUGIN_STATE_EXTENSIONS 
     67extension_list = [] 
     68if APPLICATION_STATE_EXTENSION is not None: 
     69    extension_list.append(APPLICATION_STATE_EXTENSION) 
     70EXTENSIONS = PLUGIN_STATE_EXTENSIONS + extension_list 
     71try: 
     72    WLIST = '|'.join(config.WLIST) 
     73except: 
     74    WLIST = '' 
     75 
    5976 
    6077class ViewerFrame(wx.Frame): 
     
    9921009                    reader.read(path) 
    9931010                    return 
    994                 elif extension == '.svs': 
     1011                elif extension == APPLICATION_STATE_EXTENSION: 
    9951012                    reader.read(path) 
    9961013         
     
    10011018                self._data_panel.load_data_list(data_state) 
    10021019                self._mgr.GetPane(self._data_panel.window_name).Show(True) 
    1003                          
     1020                      
     1021    def load_state(self, path):    
     1022        """ 
     1023        """ 
     1024        if path and os.path.isfile(path): 
     1025            basename  = os.path.basename(path) 
     1026            if APPLICATION_STATE_EXTENSION is not None \ 
     1027                and basename.endswith(APPLICATION_STATE_EXTENSION): 
     1028                #remove panels for new states 
     1029                for plug in self.plugins: 
     1030                    reader, ext = plug.get_extensions() 
     1031                    if ext is not None and ext.strip() != ''\ 
     1032                        and ext.lower() not in EXTENSIONS: 
     1033                        plug.clear_panel()   
     1034            self.panel_on_focus = None     
     1035            self.get_data(path) 
     1036        if self.defaultPanel is not None and \ 
     1037            self._mgr.GetPane(self.panels["default"].window_name).IsShown(): 
     1038            self.on_close_welcome_panel() 
     1039             
     1040    def load_data(self, path): 
     1041        """ 
     1042        """ 
     1043        if not os.path.isfile(path): 
     1044            return 
     1045        basename  = os.path.basename(path) 
     1046        root, extension = os.path.splitext(basename) 
     1047        if extension.lower() in EXTENSIONS: 
     1048            log_msg = "Data Loader cannot " 
     1049            log_msg += "load: %s\n" % str(path) 
     1050            log_msg += "Try File opening ...." 
     1051            print log_msg 
     1052            return 
     1053     
     1054        try: 
     1055            print "Loading Data..." + str(path) + "\n" 
     1056            temp =  self.loader.load(path) 
     1057            if temp.__class__.__name__ == "list": 
     1058                for item in temp: 
     1059                    data = self.parent.create_gui_data(item, path) 
     1060                    output[data.id] = data 
     1061            else: 
     1062                data = self.parent.create_gui_data(temp, path) 
     1063                output[data.id] = data 
     1064             
     1065            self.add_data(data_list=output) 
     1066        except: 
     1067            error_message = "Error while loading Data: %s\n" % str(path) 
     1068            error_message += str(sys.exc_value) + "\n" 
     1069            print error_message 
     1070            
     1071             
    10041072    def _on_open_state(self, event): 
    10051073        """ 
     
    10091077            self._default_save_location = os.getcwd() 
    10101078  
    1011         wlist = ['SansView files (*.svs)|*.svs', 
    1012                   'P(r) files (*.prv)|*.prv', 
    1013                   'Fitting files (*.fitv)|*.fitv', 
    1014                   'Invariant files (*.inv)|*.inv'] 
    1015         wlist = '|'.join(wlist) 
    10161079        dlg = wx.FileDialog(self,  
    10171080                            "Choose a file",  
    10181081                            self._default_save_location, "", 
    1019                              wlist) 
     1082                             WLIST) 
    10201083        if dlg.ShowModal() == wx.ID_OK: 
    10211084            path = dlg.GetPath() 
     
    10231086                self._default_save_location = os.path.dirname(path) 
    10241087        dlg.Destroy() 
    1025         if path and os.path.isfile(path): 
    1026             basename  = os.path.basename(path) 
    1027             if  basename.endswith('.svs'): 
    1028                 #remove panels for new states 
    1029                 for plug in self.plugins: 
    1030                     plug.clear_panel() 
    1031                     self.panel_on_focus = None 
    1032                  
    1033             self.get_data(path) 
    1034                  
    1035         if self.defaultPanel is not None and \ 
    1036             self._mgr.GetPane(self.panels["default"].window_name).IsShown(): 
    1037             self.on_close_welcome_panel() 
     1088        self.load_state(path=path) 
    10381089     
    10391090    def _on_save_application(self, event): 
     
    10551106        path = None 
    10561107        dlg = wx.FileDialog(self, "Save Project file", 
    1057                             self._default_save_location, "", '.svs', wx.SAVE) 
     1108                            self._default_save_location, "", 
     1109                             APPLICATION_STATE_EXTENSION,  
     1110                             wx.SAVE) 
    10581111        if dlg.ShowModal() == wx.ID_OK: 
    10591112            path = dlg.GetPath() 
     
    10941147            fd.close() 
    10951148        else: 
    1096             raise 
    1097             #print "Nothing to save..." 
    1098             #raise RuntimeError, "%s is not a SansView (.svs) file..." % path 
     1149            msg = "%s cannot read %s\n" % (str(APPLICATION_NAME), str(path)) 
     1150            raise RuntimeError, msg 
    10991151        return doc 
    11001152 
     
    16951747    """ 
    16961748    """ 
    1697     SIZE = (GUIFRAME_WIDTH,GUIFRAME_HEIGHT) 
    1698     TITLE = config.__appname__ 
    1699     PROG_SPLASH_PATH = PROG_SPLASH_SCREEN 
    1700     STYLE = GUIFRAME.SINGLE_APPLICATION 
    1701     SPLASH_WIDTH = 500 
    1702     SPLASH_HEIGHT = 300 
    1703     SPLASH_MAX_DISPLAY_TIME = 3000 #3 sec 
    1704      
    17051749    def OnInit(self): 
    17061750        """ 
    17071751        """ 
    1708         pos, size = self.window_placement(self.SIZE) 
     1752        pos, size = self.window_placement((GUIFRAME_WIDTH, GUIFRAME_HEIGHT)) 
    17091753        self.frame = ViewerFrame(parent=None,  
    1710                                  title=self.TITLE,  
     1754                                 title=APPLICATION_NAME,  
    17111755                                 pos=pos,  
    1712                                  gui_style = self.STYLE, 
     1756                                 gui_style = DEFAULT_STYLE, 
    17131757                                 size=size)  
    1714          # Display a splash screen on top of the frame. 
     1758        #try to load file at the start 
     1759        #try: 
     1760        #    self.open_file() 
     1761        #except: 
     1762        #    raise 
     1763        self.s_screen = None 
     1764        # Display a splash screen on top of the frame. 
    17151765        if len(sys.argv) > 1 and '--time' in sys.argv[1:]: 
    17161766            log_time("Starting to display the splash screen") 
    1717         if self.PROG_SPLASH_PATH is not None and \ 
    1718             os.path.isfile(self.PROG_SPLASH_PATH): 
    1719             try: 
    1720                 s_screen = self.display_splash_screen(parent=self.frame, path=self.PROG_SPLASH_PATH)    
     1767         
     1768        try: 
     1769            if os.path.isfile(SPLASH_SCREEN_PATH): 
     1770                self.s_screen = self.display_splash_screen(parent=self.frame,  
     1771                                        path=SPLASH_SCREEN_PATH) 
     1772            else: 
     1773                self.frame.Show()    
     1774        except: 
     1775            try:  
     1776                self.frame.Show() 
    17211777            except: 
    1722                 try:  
    1723                     self.frame.Show() 
    1724                 except: 
    1725                      
    1726                     msg = "Cannot display splash screen\n" 
    1727                     msg += str (sys.exc_value) 
    1728                     #raise 
    1729                     logging.error(msg) 
    1730         else: 
    1731             self.frame.Show() 
     1778                raise 
     1779                msg = "Cannot display splash screen\n" 
     1780                msg += str (sys.exc_value) 
     1781                #raise 
     1782                logging.error(msg) 
     1783         
    17321784         
    17331785 
     
    17391791        return True 
    17401792     
     1793    def load(self, path): 
     1794        """ 
     1795        """ 
     1796        if self.frame is not None: 
     1797            self.frame.load(path) 
     1798             
     1799    def open_file(self): 
     1800        """ 
     1801        open a state file at the start of the application 
     1802        """ 
     1803        if len(sys.argv) >= 2: 
     1804            if sys.argv[0].lower() in ['sansview.py', 'sansview.exe']: 
     1805                path = sys.argv[1] 
     1806                if os.path.isfile(path): 
     1807                    self.load(path) 
     1808                else: 
     1809                    print "SansView cannot read this file: %s" % str(path) 
     1810             
    17411811    def set_manager(self, manager): 
    17421812        """ 
     
    17521822        self.frame.build_gui() 
    17531823        self.frame.post_init() 
     1824        if self.s_screen.IsShown(): 
     1825            self.s_screen.Close() 
    17541826         
    17551827    def set_welcome_panel(self, panel_class): 
     
    18011873     
    18021874    def display_splash_screen(self, parent,  
    1803                               path=PROG_SPLASH_SCREEN): 
     1875                              path=SPLASH_SCREEN_PATH): 
    18041876        """Displays the splash screen.  It will exactly cover the main frame.""" 
    1805  
     1877        
    18061878        # Prepare the picture.  On a 2GHz intel cpu, this takes about a second. 
    18071879        x, y = parent.GetSizeTuple() 
    18081880        image = wx.Image(path, wx.BITMAP_TYPE_PNG) 
    1809         image.Rescale(self.SPLASH_WIDTH, self.SPLASH_HEIGHT, wx.IMAGE_QUALITY_HIGH) 
     1881        image.Rescale(SPLASH_SCREEN_WIDTH,  
     1882                      SPLASH_SCREEN_HEIGHT, wx.IMAGE_QUALITY_HIGH) 
    18101883        bm = image.ConvertToBitmap() 
    18111884 
     
    18261899                                        wx.STAY_ON_TOP), 
    18271900                                         
    1828                         milliseconds=self.SPLASH_MAX_DISPLAY_TIME, 
     1901                        milliseconds=SS_MAX_DISPLAY_TIME, 
    18291902                        parent=parent, 
    18301903                        id=wx.ID_ANY) 
  • guiframe/local_perspectives/data_loader/data_loader.py

    re88ebfd r957723f  
    1717from sans.guiframe.utils import parse_name 
    1818from sans.guiframe.gui_style import GUIFRAME 
    19  
    20 EXTENSIONS = ['.svs', '.prv','.fitv', '.inv'] 
     19try: 
     20    # Try to find a local config 
     21    import imp 
     22    path = os.getcwd() 
     23    if(os.path.isfile("%s/%s.py" % (path, 'local_config'))) or \ 
     24        (os.path.isfile("%s/%s.pyc" % (path, 'local_config'))): 
     25        fObj, path, descr = imp.find_module('local_config', [path]) 
     26        config = imp.load_module('local_config', fObj, path, descr)   
     27    else: 
     28        # Try simply importing local_config 
     29        import local_config as config 
     30except: 
     31    # Didn't find local config, load the default  
     32    import config 
     33  
     34extension_list = [] 
     35if APPLICATION_STATE_EXTENSION is not None: 
     36    extension_list.append(APPLICATION_STATE_EXTENSION) 
     37EXTENSIONS = PLUGIN_STATE_EXTENSIONS + extension_list    
    2138 
    2239class Plugin(PluginBase): 
  • guiframe/local_perspectives/plotting/plotting.py

    r783940c r957723f  
    8989        return False 
    9090         
    91     def clear_panel(self, group_id): 
     91    def clear_panel(self): 
     92        """ 
     93        """ 
     94        pass 
     95     
     96    def clear_panel_by_id(self, group_id): 
    9297        """ 
    9398        clear the graph 
     
    239244                return self.delete_panel(group_id) 
    240245            if event.action.lower() == "clear": 
    241                 return self.clear_panel(group_id) 
     246                return self.clear_panel_by_id(group_id) 
    242247             
    243248        title = None 
  • guiframe/plugin_base.py

    r3658717e r957723f  
    138138        return [] 
    139139     
    140     def clear_panel(self): 
    141         """ 
    142         reset all panels 
    143         """ 
    144      
     140  
    145141    def get_tools(self): 
    146142        """ 
Note: See TracChangeset for help on using the changeset viewer.