Index: sansview/installer_generator.py
===================================================================
--- sansview/installer_generator.py	(revision b0e8beb0a63e9937fe7353b255d92259630bc76b)
+++ sansview/installer_generator.py	(revision e52010a5d58884805ed0c43e80ba000e5d38e917)
@@ -20,5 +20,5 @@
                                 
 OutputBaseFilename = local_config.OutputBaseFilename
-SetupIconFile = local_config.SetupIconFile
+SetupIconFile = local_config.SetupIconFile_win
 LicenseFile = 'license.txt'
 DisableProgramGroupPage = 'yes'
Index: sansview/local_config.py
===================================================================
--- sansview/local_config.py	(revision b0e8beb0a63e9937fe7353b255d92259630bc76b)
+++ sansview/local_config.py	(revision e52010a5d58884805ed0c43e80ba000e5d38e917)
@@ -63,5 +63,6 @@
 SPLASH_SCREEN_HEIGHT = 366
 SS_MAX_DISPLAY_TIME = 3000 #3 sec
-SetupIconFile = os.path.join("images", "ball.ico")
+SetupIconFile_win = os.path.join("images", "ball.ico")
+SetupIconFile_mac = os.path.join("images", "ball.icns")
 DefaultGroupName = "DANSE"
 OutputBaseFilename = "setupSansView"
Index: sansview/setup_mac.py
===================================================================
--- sansview/setup_mac.py	(revision 66ddd578bb3171285cba10624fa0488bded92de5)
+++ sansview/setup_mac.py	(revision e52010a5d58884805ed0c43e80ba000e5d38e917)
@@ -10,11 +10,17 @@
 from distutils.sysconfig import get_python_lib
 import os
+import string
+import local_config
 
+ICON = local_config.SetupIconFile_mac
 DATA_FILES = []
 RESOURCES_FILES = []
+EXTENSIONS_LIST = []
 
 #Periodictable data file
 DATA_FILES = periodictable.data_files()
-
+#add guiframe data file
+import sans.guiframe as guiframe
+DATA_files += guiframe.data_files()
 #invariant and calculator help doc
 import sans.perspectives.calculator as calculator
@@ -24,9 +30,53 @@
 import sans.models as models
 DATA_FILES += models.data_files()
-import sans.guiframe as guiframe
-DATA_FILES += guiframe.data_files()
 
 #CANSAxml reader data files
-RESOURCES_FILES.append(os.path.join(DataLoader.readers.get_data_path(),'defaults.xml'))
+RESOURCES_FILES.append(os.path.join(DataLoader.readers.get_data_path(),
+                                    'defaults.xml'))
+# locate file extensions
+def find_extension():
+    """
+    Describe the extensions that can be read by the current application
+    """
+    try:
+        list = []
+        EXCEPTION_LIST = ['*', '.', '']
+        #(ext, type, name, flags)
+        from DataLoader.loader import Loader
+        wild_cards = Loader().get_wildcards()
+        for item in wild_cards:
+            #['All (*.*)|*.*']
+            file_type, ext = string.split(item, "|*.", 1)
+            if ext.strip() not in EXCEPTION_LIST and ext.strip() not in list:
+                list.append((ext, 'string', file_type))
+    except:
+        raise
+    try:
+        file_type, ext = string.split(local_config.APPLICATION_WLIST, "|*.", 1)
+        if ext.strip() not in EXCEPTION_LIST and ext.strip() not in list:
+            list.append((ext, 'string', file_type))
+    except:
+        raise
+    try:
+        for item in local_config.PLUGINS_WLIST:
+            file_type, ext = string.split(item, "|*.", 1)
+            if ext.strip() not in EXCEPTION_LIST and ext.strip() not in list:
+                list.append((ext, 'string', file_type)) 
+    except:
+        raise
+    
+    return list
+
+EXTENSIONS_LIST = find_extension()
+temp = []
+for (ext, _, file_type) in EXTENSIONS_LIST:
+    dict(CFBundleTypeTypeExtensions=[str(ext)],
+         CFBundleTypeIconFile=ICON,
+         CFBundleTypeName=str(file_type),
+         CFBundleTypeRole="Viewer")
+    temp.append(dict)
+    
+PLIST = dict(CFBundleDocumentTypes=temp)
+    
 
 # Locate libxml2 library
@@ -44,7 +94,8 @@
 OPTIONS = {'argv_emulation': True,
            'packages': ['lxml','periodictable'],
-           'iconfile': 'images/ball.icns',
+           'iconfile': ICON,
            'frameworks':[libxml_path],
-           'resources': RESOURCES_FILES
+           'resources': RESOURCES_FILES,
+           'plist':PLIST
            }
 
@@ -56,2 +107,3 @@
     setup_requires=['py2app'],
 )
+
