36 |
|
|
37 |
from context import Context |
from context import Context |
38 |
from command import registry, Command, ToolCommand |
from command import registry, Command, ToolCommand |
39 |
from messages import LAYER_SELECTED, SHAPES_SELECTED, VIEW_POSITION, DOCKABLE_DOCKED, DOCKABLE_UNDOCKED, DOCKABLE_CLOSED |
from messages import LAYER_SELECTED, SHAPES_SELECTED, VIEW_POSITION |
40 |
|
|
41 |
from Thuban.UI.dock import DockableWindow, DockFrame, DockPanel |
from Thuban.UI.dock import DockFrame |
42 |
|
|
43 |
import resource |
import resource |
44 |
|
|
45 |
|
import projdialog |
46 |
|
|
|
# the directory where the toolbar icons are stored |
|
|
bitmapdir = os.path.join(Thuban.__path__[0], os.pardir, "Resources", "Bitmaps") |
|
|
bitmapext = ".xpm" |
|
|
|
|
|
ID_WINDOW_LEGEND = 4001 |
|
|
ID_WINDOW_CANVAS = 4002 |
|
47 |
|
|
48 |
|
|
49 |
class MainWindow(DockFrame): |
class MainWindow(DockFrame): |
444 |
if dlg.ShowModal() == wxID_OK: |
if dlg.ShowModal() == wxID_OK: |
445 |
filename = dlg.GetPath() |
filename = dlg.GetPath() |
446 |
title = os.path.splitext(os.path.basename(filename))[0] |
title = os.path.splitext(os.path.basename(filename))[0] |
447 |
layer = Layer(title, filename) |
store = self.application.Session().OpenShapefile(filename) |
448 |
|
layer = Layer(title, store) |
449 |
map = self.canvas.Map() |
map = self.canvas.Map() |
450 |
has_layers = map.HasLayers() |
has_layers = map.HasLayers() |
451 |
try: |
try: |
542 |
# FIXME: bring dialog to front here |
# FIXME: bring dialog to front here |
543 |
pass |
pass |
544 |
|
|
545 |
def Projection(self): |
def MapProjection(self): |
546 |
map = self.canvas.Map() |
|
547 |
proj = map.projection |
name = "map_projection" |
548 |
if proj is None: |
dialog = self.get_open_dialog(name) |
549 |
proj4Dlg = proj4dialog.Proj4Dialog(NULL, None, map.BoundingBox()) |
|
550 |
else: |
if dialog is None: |
551 |
proj4Dlg = proj4dialog.Proj4Dialog(NULL, map.projection.params, |
map = self.canvas.Map() |
552 |
map.BoundingBox()) |
dialog = projdialog.ProjFrame(self, name, map) |
553 |
if proj4Dlg.ShowModal() == wxID_OK: |
self.add_dialog(name, dialog) |
554 |
params = proj4Dlg.GetParams() |
dialog.Show() |
555 |
if params is not None: |
dialog.Raise() |
556 |
proj = Projection(params) |
|
557 |
else: |
def LayerProjection(self): |
558 |
proj = None |
|
559 |
map.SetProjection(proj) |
layer = self.current_layer() |
560 |
proj4Dlg.Destroy() |
|
561 |
|
name = "layer_projection" + str(id(layer)) |
562 |
|
dialog = self.get_open_dialog(name) |
563 |
|
|
564 |
|
if dialog is None: |
565 |
|
map = self.canvas.Map() |
566 |
|
dialog = projdialog.ProjFrame(self, name, layer) |
567 |
|
self.add_dialog(name, dialog) |
568 |
|
dialog.Show() |
569 |
|
dialog.Raise() |
570 |
|
|
571 |
def LayerEditProperties(self): |
def LayerEditProperties(self): |
572 |
|
|
739 |
|
|
740 |
|
|
741 |
# Map menu |
# Map menu |
742 |
_method_command("map_projection", _("Pro&jection"), "Projection") |
_method_command("map_projection", _("Pro&jection"), "MapProjection") |
743 |
|
|
744 |
_tool_command("map_zoom_in_tool", _("&Zoom in"), "ZoomInTool", "ZoomInTool", |
_tool_command("map_zoom_in_tool", _("&Zoom in"), "ZoomInTool", "ZoomInTool", |
745 |
helptext = _("Switch to map-mode 'zoom-in'"), icon = "zoom_in", |
helptext = _("Switch to map-mode 'zoom-in'"), icon = "zoom_in", |
764 |
helptext = _("Print the map")) |
helptext = _("Print the map")) |
765 |
_method_command("map_rename", _("&Rename"), "RenameMap", |
_method_command("map_rename", _("&Rename"), "RenameMap", |
766 |
helptext = _("Rename the map")) |
helptext = _("Rename the map")) |
|
|
|
|
# Layer menu |
|
767 |
_method_command("layer_add", _("&Add Layer"), "AddLayer", |
_method_command("layer_add", _("&Add Layer"), "AddLayer", |
768 |
helptext = _("Add a new layer to active map")) |
helptext = _("Add a new layer to active map")) |
769 |
_method_command("layer_remove", _("&Remove Layer"), "RemoveLayer", |
_method_command("layer_remove", _("&Remove Layer"), "RemoveLayer", |
770 |
helptext = _("Remove selected layer(s)"), |
helptext = _("Remove selected layer(s)"), |
771 |
sensitive = _can_remove_layer) |
sensitive = _can_remove_layer) |
772 |
|
|
773 |
|
# Layer menu |
774 |
|
_method_command("layer_projection", _("Pro&jection"), "LayerProjection", |
775 |
|
sensitive = _has_selected_layer) |
776 |
_method_command("layer_raise", _("&Raise"), "RaiseLayer", |
_method_command("layer_raise", _("&Raise"), "RaiseLayer", |
777 |
helptext = _("Raise selected layer(s)"), |
helptext = _("Raise selected layer(s)"), |
778 |
sensitive = _has_selected_layer) |
sensitive = _has_selected_layer) |
820 |
None, |
None, |
821 |
"layer_show_table", |
"layer_show_table", |
822 |
None, |
None, |
823 |
"layer_properties"]), |
"layer_properties", |
824 |
|
None, |
825 |
|
"layer_projection"]), |
826 |
Menu("help", _("&Help"), |
Menu("help", _("&Help"), |
827 |
["help_about"])]) |
["help_about"])]) |
828 |
|
|