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

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

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

revision 222 by bh, Thu Jul 18 13:03:08 2002 UTC revision 235 by bh, Tue Jul 23 10:56:29 2002 UTC
# Line 28  import proj4dialog Line 28  import proj4dialog
28  import tableview, identifyview  import tableview, identifyview
29  from menu import Menu  from menu import Menu
30    
 import main  
31  from context import Context  from context import Context
32  from command import registry, Command  from command import registry, Command
33  from messages import SELECTED_SHAPE, VIEW_POSITION  from messages import SELECTED_SHAPE, VIEW_POSITION
# Line 41  bitmapext = ".xpm" Line 40  bitmapext = ".xpm"
40    
41  class MainWindow(wxFrame):  class MainWindow(wxFrame):
42    
43      def __init__(self, parent, ID, interactor):      def __init__(self, parent, ID, title, application, interactor,
44          wxFrame.__init__(self, parent, ID, 'Thuban',                   initial_message = None):
45                           wxDefaultPosition, wxSize(400, 300))          wxFrame.__init__(self, parent, ID, title, wxDefaultPosition,
46                             wxSize(400, 300))
47    
48            self.application = application
49          self.interactor = interactor          self.interactor = interactor
50    
51          self.CreateStatusBar()          self.CreateStatusBar()
52          self.SetStatusText("This is the wxPython-based "          if initial_message:
53                        "Graphical User Interface for exploring geographic data")              self.SetStatusText(initial_message)
54    
55          self.identify_view = None          self.identify_view = None
56    
# Line 197  class MainWindow(wxFrame): Line 198  class MainWindow(wxFrame):
198          name = self.id_to_name.get(event.GetId())          name = self.id_to_name.get(event.GetId())
199          if name is not None:          if name is not None:
200              command = registry.Command(name)              command = registry.Command(name)
201              command.Execute(Context(main.app, main.app.Session(), self))              context = Context(self.application, self.application.Session(),
202                                  self)
203                command.Execute(context)
204          else:          else:
205              print "Unknown command ID %d" % event.GetId()              print "Unknown command ID %d" % event.GetId()
206    
207      def update_command_ui(self, event):      def update_command_ui(self, event):
208          #print "update_command_ui", self.id_to_name[event.GetId()]          #print "update_command_ui", self.id_to_name[event.GetId()]
209          context = Context(main.app, main.app.Session(), self)          context = Context(self.application, self.application.Session(), self)
210          command = registry.Command(self.id_to_name[event.GetId()])          command = registry.Command(self.id_to_name[event.GetId()])
211          if command is not None:          if command is not None:
212              event.Enable(command.Sensitive(context))              event.Enable(command.Sensitive(context))
# Line 257  class MainWindow(wxFrame): Line 260  class MainWindow(wxFrame):
260          If the can_veto parameter is true (default) the dialog includes          If the can_veto parameter is true (default) the dialog includes
261          a cancel button, otherwise not.          a cancel button, otherwise not.
262          """          """
263          if main.app.session.WasModified():          if self.application.session.WasModified():
264              flags = wxYES_NO | wxICON_QUESTION              flags = wxYES_NO | wxICON_QUESTION
265              if can_veto:              if can_veto:
266                  flags = flags | wxCANCEL                  flags = flags | wxCANCEL
# Line 273  class MainWindow(wxFrame): Line 276  class MainWindow(wxFrame):
276    
277      def NewSession(self):      def NewSession(self):
278          self.save_modified_session()          self.save_modified_session()
279          main.app.SetSession(create_empty_session())          self.application.SetSession(create_empty_session())
280    
281      def OpenSession(self):      def OpenSession(self):
282          self.save_modified_session()          self.save_modified_session()
283          dlg = wxFileDialog(self, "Select a session file", ".", "",          dlg = wxFileDialog(self, "Select a session file", ".", "",
284                             "*.thuban", wxOPEN)                             "*.thuban", wxOPEN)
285          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
286              main.app.OpenSession(dlg.GetPath())              self.application.OpenSession(dlg.GetPath())
287          dlg.Destroy()          dlg.Destroy()
288    
289      def SaveSession(self):      def SaveSession(self):
290          if main.app.session.filename == None:          if self.application.session.filename == None:
291              self.SaveSessionAs()              self.SaveSessionAs()
292          main.app.SaveSession()          self.application.SaveSession()
293    
294      def SaveSessionAs(self):      def SaveSessionAs(self):
295          dlg = wxFileDialog(self, "Enter a filename for session", ".", "",          dlg = wxFileDialog(self, "Enter a filename for session", ".", "",
296                             "*.thuban", wxOPEN)                             "*.thuban", wxOPEN)
297          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
298              main.app.session.SetFilename(dlg.GetPath())              self.application.session.SetFilename(dlg.GetPath())
299              main.app.SaveSession()              self.application.SaveSession()
300          dlg.Destroy()          dlg.Destroy()
301    
302      def Exit(self):      def Exit(self):
# Line 313  class MainWindow(wxFrame): Line 316  class MainWindow(wxFrame):
316          name = "session_tree"          name = "session_tree"
317          dialog = self.get_open_dialog(name)          dialog = self.get_open_dialog(name)
318          if dialog is None:          if dialog is None:
319              dialog = tree.SessionTreeView(self, main.app, name)              dialog = tree.SessionTreeView(self, self.application, name)
320              self.add_dialog(name, dialog)              self.add_dialog(name, dialog)
321              dialog.Show(true)              dialog.Show(true)
322          else:          else:

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26