/[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 1068 by bh, Tue May 27 15:02:37 2003 UTC revision 1084 by jan, Wed May 28 10:25:09 2003 UTC
# Line 64  class MainWindow(DockFrame): Line 64  class MainWindow(DockFrame):
64      # implemented in the __getattr__ method.      # implemented in the __getattr__ method.
65      delegated_methods = {"SelectLayer": "canvas",      delegated_methods = {"SelectLayer": "canvas",
66                           "SelectShapes": "canvas",                           "SelectShapes": "canvas",
67                             "SelectedLayer": "canvas",
68                           "SelectedShapes": "canvas",                           "SelectedShapes": "canvas",
69                           }                           }
70    
# Line 619  class MainWindow(DockFrame): Line 620  class MainWindow(DockFrame):
620          dialog.Raise()          dialog.Raise()
621    
622      def LayerJoinTable(self):      def LayerJoinTable(self):
623          print "LayerJoinTable: Not implemented."          layer = self.canvas.SelectedLayer()
624            if layer is not None:
625                dlg = JoinDialog(self, _("Join Layer with Table"),
626                                 self.application.session,
627                                 layer = layer)
628                dlg.ShowModal()
629    
630      def LayerUnjoinTable(self):      def LayerUnjoinTable(self):
631          print "LayerUnjoinTable: Not implemented."          layer = self.canvas.SelectedLayer()
632            if layer is not None:
633                orig_store = layer.ShapeStore().OrigShapeStore()
634                if orig_store:
635                    layer.SetShapeStore(orig_store)
636    
637      def ShowLegend(self):      def ShowLegend(self):
638          if not self.LegendShown():          if not self.LegendShown():
# Line 668  class MainWindow(DockFrame): Line 678  class MainWindow(DockFrame):
678      def TableClose(self):      def TableClose(self):
679          tables = self.application.session.UnreferencedTables()          tables = self.application.session.UnreferencedTables()
680    
681            lst = [(t.Title(), t) for t in tables]
682            lst.sort()
683            titles = [i[0] for i in lst]
684          dlg = wxMultipleChoiceDialog(self, _("Pick the tables to close:"),          dlg = wxMultipleChoiceDialog(self, _("Pick the tables to close:"),
685                                       _("Close Table"),                                       _("Close Table"), titles,
686                                       [t.Title() for t in tables],                                       size = (400, 300),
687                                       size = (400, 300), style=wxRESIZE_BORDER)                                       style = wxDEFAULT_DIALOG_STYLE |
688                                                 wxRESIZE_BORDER)
689          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
690              for i in dlg.GetValue():              for i in dlg.GetValue():
691                  self.application.session.RemoveTable(tables[i])                  self.application.session.RemoveTable(lst[i][1])
692    
693    
694      def TableShow(self):      def TableShow(self):
# Line 685  class MainWindow(DockFrame): Line 699  class MainWindow(DockFrame):
699          """          """
700          tables = self.application.session.Tables()          tables = self.application.session.Tables()
701    
702            lst = [(t.Title(), t) for t in tables]
703            lst.sort()
704            titles = [i[0] for i in lst]
705          dlg = wxMultipleChoiceDialog(self, _("Pick the table to show:"),          dlg = wxMultipleChoiceDialog(self, _("Pick the table to show:"),
706                                       _("Show Table"),                                       _("Show Table"), titles,
707                                       [t.Title() for t in tables],                                       size = (400,300),
708                                       size = (400,300), style = wxRESIZE_BORDER)                                       style = wxDEFAULT_DIALOG_STYLE |
709                                                 wxRESIZE_BORDER)
710          if (dlg.ShowModal() == wxID_OK):          if (dlg.ShowModal() == wxID_OK):
711              for i in dlg.GetValue():              for i in dlg.GetValue():
712                  # XXX: if the table belongs to a layer, open a                  # XXX: if the table belongs to a layer, open a
713                  # LayerTableFrame instead of QueryTableFrame                  # LayerTableFrame instead of QueryTableFrame
714                  self.ShowTableView(tables[i])                  self.ShowTableView(lst[i][1])
715    
716      def TableJoin(self):      def TableJoin(self):
717          dlg = JoinDialog(self, _("Join Tables"), self.application.session)          dlg = JoinDialog(self, _("Join Tables"), self.application.session)
# Line 926  _method_command("layer_properties", _("& Line 944  _method_command("layer_properties", _("&
944                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
945  _method_command("layer_jointable", _("&Join Table..."), "LayerJoinTable",  _method_command("layer_jointable", _("&Join Table..."), "LayerJoinTable",
946                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
947    
948    def _can_unjoin(context):
949        """Return whether the Layer/Unjoin command can be executed.
950    
951        This is the case if a layer is selected and that layer has a
952        shapestore that has an original shapestore.
953        """
954        layer = context.mainwindow.SelectedLayer()
955        if layer is None:
956            return 0
957        getstore = getattr(layer, "ShapeStore", None)
958        if getstore is not None:
959            return getstore().OrigShapeStore() is not None
960        else:
961            return 0
962  _method_command("layer_unjointable", _("&Unjoin Table..."), "LayerUnjoinTable",  _method_command("layer_unjointable", _("&Unjoin Table..."), "LayerUnjoinTable",
963                  sensitive = _has_selected_layer)                  sensitive = _can_unjoin)
964    
965  # Table menu  # Table menu
966  _method_command("table_open", _("&Open..."), "TableOpen")  _method_command("table_open", _("&Open..."), "TableOpen")
967  _method_command("table_close", _("&Close"), "TableClose")  _method_command("table_close", _("&Close"), "TableClose",
968           sensitive = lambda context: bool(context.session.UnreferencedTables()))
969  _method_command("table_show", _("&Show"), "TableShow")  _method_command("table_show", _("&Show"), "TableShow")
970  _method_command("table_join", _("&Join..."), "TableJoin")  _method_command("table_join", _("&Join..."), "TableJoin")
971    

Legend:
Removed from v.1068  
changed lines
  Added in v.1084

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26