Allow editing of patrol waypoints in query interface
(Original title: Outlier Points in Patrol Interface)
Unless we're missing something, you cannot edit outlier points outside of Patrol interface. It would be great if it were possible to add editing functionality.
Unless we're missing something, you cannot edit outlier points outside of Patrol interface. It would be great if it were possible to add editing functionality.
Leave a comment
Ideal would be to add editing functionality to the query tables and maps for patrol, observation and incident queries. Minimum would be being able to delete observations and patrols in this interface. Ideal would be being able to edit observations and move points. I think we woudl need to add a "enter edit mode" button or similar, to prevent accidental edits and make access to this feature linked to user level.
Details of implementation / usage are here:
https://docs.google.com/document/d/1Jp7BHbGHRJmoG_4r0vRHBrvbJzMe8dHnNqKAMObbC5A/edit?usp=sharing
https://docs.google.com/document/d/1Jp7BHbGHRJmoG_4r0vRHBrvbJzMe8dHnNqKAMObbC5A/edit?usp=sharing
In 6.0.a5, all appears to be working as expected except when trying to delete a waypoint after a different one has had its attributes edited.
1. Run query
2. Enter in Edit mode and update a waypoint attribute.
3. Select a different waypoint and try to delete it
=============================
!ENTRY org.wcs.smart.query 4 0 2017-11-27 10:22:25.979
!MESSAGE Error deleting waypoint: org.wcs.smart.patrol.query.engine.DerbyObservationEngine cannot be cast to org.wcs.smart.patrol.query.engine.DerbyWaypointEngine
!STACK 0
java.lang.ClassCastException: org.wcs.smart.patrol.query.engine.DerbyObservationEngine cannot be cast to org.wcs.smart.patrol.query.engine.DerbyWaypointEngine
at org.wcs.smart.patrol.query.engine.DerbyPagedWaypointResult.deleteWaypoint(DerbyPagedWaypointResult.java:439)
at org.wcs.smart.patrol.query.ui.editor.DeleteObservationResultInfoProvider.doWork(DeleteObservationResultInfoProvider.java:85)
at org.wcs.smart.query.common.ui.QueryResultsTable.lambda$1(QueryResultsTable.java:243)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at org.wcs.smart.SmartApp.start(SmartApp.java:47)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
1. Run query
2. Enter in Edit mode and update a waypoint attribute.
3. Select a different waypoint and try to delete it
=============================
!ENTRY org.wcs.smart.query 4 0 2017-11-27 10:22:25.979
!MESSAGE Error deleting waypoint: org.wcs.smart.patrol.query.engine.DerbyObservationEngine cannot be cast to org.wcs.smart.patrol.query.engine.DerbyWaypointEngine
!STACK 0
java.lang.ClassCastException: org.wcs.smart.patrol.query.engine.DerbyObservationEngine cannot be cast to org.wcs.smart.patrol.query.engine.DerbyWaypointEngine
at org.wcs.smart.patrol.query.engine.DerbyPagedWaypointResult.deleteWaypoint(DerbyPagedWaypointResult.java:439)
at org.wcs.smart.patrol.query.ui.editor.DeleteObservationResultInfoProvider.doWork(DeleteObservationResultInfoProvider.java:85)
at org.wcs.smart.query.common.ui.QueryResultsTable.lambda$1(QueryResultsTable.java:243)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at org.wcs.smart.SmartApp.start(SmartApp.java:47)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)