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): |
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, |
|
[t.Title() for t in tables], |
|
707 |
size = (400,300), |
size = (400,300), |
708 |
style = wxDEFAULT_DIALOG_STYLE | |
style = wxDEFAULT_DIALOG_STYLE | |
709 |
wxRESIZE_BORDER) |
wxRESIZE_BORDER) |
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) |
946 |
sensitive = _has_selected_layer) |
sensitive = _has_selected_layer) |
947 |
|
|
948 |
def _can_unjoin(context): |
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() |
layer = context.mainwindow.SelectedLayer() |
955 |
return bool(layer and layer.ShapeStore().OrigShapeStore() is not None) |
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 = _can_unjoin) |
sensitive = _can_unjoin) |
964 |
|
|