/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/UI/application.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/UI/application.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 235 by bh, Tue Jul 23 10:56:29 2002 UTC revision 242 by bh, Wed Jul 24 17:16:31 2002 UTC
# Line 22  from Thuban.Lib.connector import Publish Line 22  from Thuban.Lib.connector import Publish
22  from Thuban.Model.session import create_empty_session  from Thuban.Model.session import create_empty_session
23  from Thuban.Model.save import save_session  from Thuban.Model.save import save_session
24  from Thuban.Model.load import load_session  from Thuban.Model.load import load_session
25    from Thuban.Model.messages import MAPS_CHANGED
26    
27  import view  import view
28  import tree  import tree
# Line 108  class ThubanApplication(wxApp, Publisher Line 109  class ThubanApplication(wxApp, Publisher
109      def SetSession(self, session):      def SetSession(self, session):
110          """Make session the new session.          """Make session the new session.
111    
112          Issue SESSION_CHANGED.          Issue SESSION_CHANGED after self.session has become the new
113            session. After the session has been assigned call
114            self.subscribe_session() with the new session and
115            self.unsubscribe_session with the old one.
116          """          """
117          oldsession = self.session          oldsession = self.session
118          self.session = session          self.session = session
119            self.subscribe_session(self.session)
120          self.issue(SESSION_CHANGED)          self.issue(SESSION_CHANGED)
121          self.interactor.SetSession(session)          self.interactor.SetSession(session)
122          self.set_map()          self.maps_changed()
123          if oldsession is not None:          if oldsession is not None:
124                self.unsubscribe_session(oldsession)
125              oldsession.Destroy()              oldsession.Destroy()
126    
127        def subscribe_session(self, session):
128            """Subscribe to some of the sessions channels.
129    
130            Extend this method in derived classes if you need additional
131            channels.
132            """
133            session.Subscribe(MAPS_CHANGED, self.maps_changed)
134    
135        def unsubscribe_session(self, session):
136            """Unsubscribe from the sessions channels.
137    
138            Extend this method in derived classes if you subscribed to
139            additional channels in subscribe_session().
140            """
141            session.Unsubscribe(MAPS_CHANGED, self.maps_changed)
142    
143      def create_session(self):      def create_session(self):
144          # Create a simple default session          """Create a default session.
145    
146            Override this method in derived classes to instantiate the
147            session differently or to use a different session class. Don't
148            subscribe to channels here yet. Do that in the
149            subscribe_session() method.
150            """
151          self.SetSession(create_empty_session())          self.SetSession(create_empty_session())
152    
153      def OpenSession(self, filename):      def OpenSession(self, filename):
# Line 131  class ThubanApplication(wxApp, Publisher Line 159  class ThubanApplication(wxApp, Publisher
159      def SaveSession(self):      def SaveSession(self):
160          save_session(self.session, self.session.filename)          save_session(self.session, self.session.filename)
161    
162      def set_map(self):      def maps_changed(self, *args):
163          if self.session.HasMaps():          if self.session.HasMaps():
164              self.top.SetMap(self.session.Maps()[0])              self.top.SetMap(self.session.Maps()[0])
165          else:          else:

Legend:
Removed from v.235  
changed lines
  Added in v.242

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26