/[thuban]/branches/WIP-pyshapelib-bramz/Extensions/ogr/ogrstart.py
ViewVC logotype

Annotation of /branches/WIP-pyshapelib-bramz/Extensions/ogr/ogrstart.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2493 - (hide annotations)
Mon Dec 20 14:13:57 2004 UTC (20 years, 2 months ago) by nhueffme
Original Path: trunk/thuban/Extensions/ogr/ogrstart.py
File MIME type: text/x-python
File size: 2822 byte(s)
Fixed some issues from Bernhard.

1 nhueffme 2435 # Copyright (c) 2004 by Intevation GmbH
2     # Authors:
3     # Nina Hüffmeyer <[email protected]>
4     #
5     # This program is free software under the GPL (>=v2)
6     # Read the file COPYING coming with Thuban for details.
7    
8     __version__ = "$Revision$"
9     # $Source$
10     # $Id$
11    
12     # Needed wx-toolkit classes
13     from wxPython.wx import wxFileDialog, wxOPEN, wxMULTIPLE, wxID_OK, \
14     wxOK, wxICON_HAND
15    
16     # We need os.path
17     import os
18    
19     # use _() already now for all strings that may later be translated
20     from Thuban import _
21    
22     from Thuban.Model.layer import Layer
23    
24     # Import ogr related classes
25 nhueffme 2493 from Extensions.ogr import ogrshapes, ogrdialog
26 nhueffme 2435
27     def open_with_ogr(context):
28 nhueffme 2493 '''Export data depending on the set properties.
29 nhueffme 2435
30 nhueffme 2493 This is the main export funcation.
31     '''
32     canvas = context.mainwindow.canvas
33     file = None
34     map = canvas.Map()
35 nhueffme 2435
36 nhueffme 2493 # Get the file to be opened
37     dlg = wxFileDialog(canvas, _("Select a data file"),
38     ".", "",
39 nhueffme 2435 _("Shapefiles (*.shp)") + "|*.shp;*.SHP|" +
40     _("All Files (*.*)") + "|*.*",
41     wxOPEN | wxMULTIPLE)
42    
43 nhueffme 2493 if dlg.ShowModal() == wxID_OK:
44     filenames = dlg.GetPaths()
45     for filename in filenames:
46     title = os.path.splitext(os.path.basename(filename))[0]
47     has_layers = map.HasLayers()
48     layername = title
49     try:
50     session = context.application.Session()
51     store = ogrshapes.OGRShapeStore(session, filename, layername)
52     session.AddShapeStore(store)
53     except IOError:
54     # the layer couldn't be opened
55     self.RunMessageBox(("Add Layer"),
56     ("Can't open the file '%s'.")%filename)
57     else:
58     layer = Layer(title, store)
59     map.AddLayer(layer)
60     if not has_layers:
61     # if we're adding a layer to an empty map, fit the
62     # new map to the window
63     canvas.FitMapToWindow()
64     context.application.SetPath("data",filename)
65 nhueffme 2435 dlg.Destroy()
66    
67    
68    
69     # Thuban has named commands which can be registered in the central
70     # instance registry.
71     from Thuban.UI.command import registry, Command
72    
73     # The instance of the main menu of the Thuban application
74     # See Thuban/UI/menu.py for the API of the Menu class
75     from Thuban.UI.mainwindow import main_menu
76    
77 nhueffme 2493 # create new commands and register them
78     registry.Add(Command('open_ogr_files', 'Open an ogr-file', open_with_ogr,
79     helptext = 'Open a file supported from ogr'))
80 nhueffme 2435
81     # find the ogr menu (create it a new if not found)
82     ogr_menu = main_menu.FindOrInsertMenu('ogr', _('OGR'))
83    
84     # finally bind the new command with an entry in the extensions menu
85     ogr_menu.InsertItem('open_ogr_files')
86 nhueffme 2493

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26