]> git.argeo.org Git - gpl/argeo-slc.git/blob - eclipse/plugins/org.argeo.slc.ui.gis/src/main/java/org/argeo/slc/ui/gis/commands/ImportGpx.java
Working GPX import
[gpl/argeo-slc.git] / eclipse / plugins / org.argeo.slc.ui.gis / src / main / java / org / argeo / slc / ui / gis / commands / ImportGpx.java
1 package org.argeo.slc.ui.gis.commands;
2
3 import javax.jcr.Node;
4
5 import org.apache.commons.logging.Log;
6 import org.apache.commons.logging.LogFactory;
7 import org.argeo.eclipse.ui.dialogs.Error;
8 import org.argeo.eclipse.ui.jcr.views.GenericJcrBrowser;
9 import org.argeo.slc.gpx.TrackDao;
10 import org.argeo.slc.ui.gis.wizards.ImportGpxWizard;
11 import org.eclipse.core.commands.AbstractHandler;
12 import org.eclipse.core.commands.ExecutionEvent;
13 import org.eclipse.core.commands.ExecutionException;
14 import org.eclipse.jface.viewers.ISelection;
15 import org.eclipse.jface.viewers.IStructuredSelection;
16 import org.eclipse.jface.wizard.WizardDialog;
17 import org.eclipse.ui.handlers.HandlerUtil;
18
19 /** Open a JCR query editor. */
20 public class ImportGpx extends AbstractHandler {
21 private final static Log log = LogFactory.getLog(ImportGpx.class);
22 private TrackDao trackDao;
23
24 public Object execute(ExecutionEvent event) throws ExecutionException {
25 ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)
26 .getActivePage().getSelection();
27 GenericJcrBrowser view = (GenericJcrBrowser) HandlerUtil
28 .getActiveWorkbenchWindow(event).getActivePage()
29 .findView(HandlerUtil.getActivePartId(event));
30 if (selection != null && !selection.isEmpty()
31 && selection instanceof IStructuredSelection) {
32 Object obj = ((IStructuredSelection) selection).getFirstElement();
33 try {
34 if (obj instanceof Node) {
35 Node baseNode = (Node) obj;
36 ImportGpxWizard wizard = new ImportGpxWizard(trackDao,
37 baseNode);
38 WizardDialog dialog = new WizardDialog(
39 HandlerUtil.getActiveShell(event), wizard);
40 dialog.open();
41 view.refresh(baseNode);
42 } else {
43 Error.show("Can only import to a node");
44 }
45 } catch (Exception e) {
46 Error.show("Cannot import files to " + obj, e);
47 }
48 }
49 return null;
50 }
51
52 public void setTrackDao(TrackDao trackDao) {
53 this.trackDao = trackDao;
54 }
55
56 }