From 2161dfb4ced32f92fc90488b3bb09734cb89622f Mon Sep 17 00:00:00 2001
From: Andy Bavier <acb@cs.princeton.edu>
Date: Wed, 23 Jun 2010 11:40:15 -0400
Subject: [PATCH] Read ~/.sfi/sfi_config

---
 Configure.py |  4 ++--
 SfaData.py   | 26 +++++++++++++++-----------
 SfaGUI.py    |  2 +-
 3 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/Configure.py b/Configure.py
index ef7fd76..2d5db33 100644
--- a/Configure.py
+++ b/Configure.py
@@ -66,9 +66,9 @@ class Configure(Sink):
         panel.setWidth("100%")
         panel.setWidth("100%")
 
-        self.userBox = LabeledTextBox("User HRN:", SfaData.user)
+        self.userBox = LabeledTextBox("User HRN:", self.data.getUser())
         panel.add(self.userBox.getWidget())
-        self.sliceBox = LabeledTextBox("Slice HRN:", SfaData.slice)
+        self.sliceBox = LabeledTextBox("Slice HRN:", self.data.getSlice())
         panel.add(self.sliceBox.getWidget())
 
         hp = HorizontalPanel()
diff --git a/SfaData.py b/SfaData.py
index 88d2b13..117c06d 100644
--- a/SfaData.py
+++ b/SfaData.py
@@ -4,32 +4,36 @@ from subprocess import *
 from sfa.util.rspecHelper import RSpec
 
 class SfaData:
-    authority = "plc.princeton"
-    user = "plc.princeton.acb"
-    slice = "plc.princeton.sapan"
-
     def __init__(self):
         self.registry = None
         self.slicemgr = None
+        filename = os.path.expanduser("~/.sfi/sfi_config")
+        execfile(filename, SfaData.__dict__)
+        if not hasattr(SfaData, 'SFI_AUTH'): 
+            SfaData.SFI_AUTH = None
+        if not hasattr(SfaData, 'SFI_USER'): 
+            SfaData.SFI_USER = None
+        if not hasattr(SfaData, 'SFI_SLICE'): 
+            SfaData.SFI_SLICE = None
 
     def getAuthority(self):
-        return SfaData.authority
+        return SfaData.SFI_AUTH
 
     def getUser(self):
-        return SfaData.user
+        return SfaData.SFI_USER
 
     def setUser(self, user):
-        SfaData.user = user
+        SfaData.SFI_USER = user
 
         # Should probably get authority from user record instead...
-        a = SfaData.user.split('.')
-        SfaData.authority = '.'.join(a[:len(a)-1])
+        a = user.split('.')
+        SfaData.SFI_AUTH = '.'.join(a[:len(a)-1])
 
     def getSlice(self):
-        return SfaData.slice
+        return SfaData.SFI_SLICE
 
     def setSlice(self, slice):
-        SfaData.slice = slice
+        SfaData.SFI_SLICE = slice
 
     def getRecord(self, hrn):
         text = Popen(["sfi.py", "-u", self.getUser(), "-a", 
diff --git a/SfaGUI.py b/SfaGUI.py
index 09f0333..0a3ddda 100644
--- a/SfaGUI.py
+++ b/SfaGUI.py
@@ -52,6 +52,7 @@ class SfaGUI:
 
         self.description.setStyleName("ks-Info")
 
+        self.panel.add(self.tp, DockPanel.NORTH)
         self.panel.add(self.sink_list, DockPanel.WEST)
         self.panel.add(vp, DockPanel.CENTER)
 
@@ -60,7 +61,6 @@ class SfaGUI:
         self.panel.setCellHeight(vp, "100%")
 
         History.addHistoryListener(self)
-        RootPanel().add(self.tp)
         RootPanel().add(self.panel)
 
         #Show the initial screen.
-- 
2.47.0