Commit Graph

563 Commits

Author SHA1 Message Date
ahocevar ff17eb53d4 Separate add listener from method that adds index 2013-11-13 00:44:36 +01:00
ahocevar 292b851a74 Adding ModifyFeature interaction
This is a first draft. The way geometry changes are handled for
now is a bit clumsy. Both updating the feature cache RTree and
making the layer aware of feature and geometry changes could be
handled in a smarter way if these changes would be made through
the layer instead of directly on the geometry or feature.
2013-11-13 00:44:36 +01:00
Tim Schaub 05b9922861 Tests for draw interaction
The tests revealed that polygons can be drawn with counter-clockwise exterior ring order.  In the polygon constructor, we enforce clockwise winding for exterior rings.  So after drawing, we pass polygon coordinates back to the constructor before adding feature to the target layer.
2013-11-12 16:06:42 -07:00
Tim Schaub 5a898884ec Use geometry type enum for configuring draw interaction
This allows us to cast single-part geometries to multi-part types before adding features to the target layer.  This doesn't yet allow for drawing multi-part geometries with multiple parts.  That can be handled separately.
2013-11-12 11:51:41 -07:00
Tim Schaub 8194ba9f0a Remove setMode method from interaction in favor of add/removeInteraction
This makes the example a bit more awkward, but eventually adding and removing interactions will be the job of an editing control.
2013-11-12 10:30:37 -07:00
Tim Schaub 62b44f3c73 Add click tolerance to allow dragging while drawing 2013-11-12 10:30:37 -07:00
Tim Schaub e3faa76770 Add method to abort drawing 2013-11-12 10:30:37 -07:00
Tim Schaub 4e98e86b14 Stop dblclick propagation while editing 2013-11-12 10:30:37 -07:00
Tim Schaub 048dec1644 Updated sketch style 2013-11-12 10:30:36 -07:00
Tim Schaub 7c197252ed Ensure drawing is not finished prematurely 2013-11-12 10:30:36 -07:00
Tim Schaub 45ba000df5 Pop off last point from linestring 2013-11-12 10:30:36 -07:00
Tim Schaub b5cc35ee04 Snap to finish with configurable tolerance 2013-11-12 10:30:32 -07:00
Tim Schaub ea6500ecd0 Finish lines by clicking last point 2013-11-12 10:29:29 -07:00
Tim Schaub d821f227ba Add point at head of drawing 2013-11-12 10:29:29 -07:00
Tim Schaub b3487ad30e Draw interaction 2013-11-12 10:29:21 -07:00
ahocevar 0ed208b710 Make renderIntent private and add a getter 2013-11-11 22:07:18 +01:00
ahocevar 03e20ce6f1 Do not fail on non-vector layers 2013-11-09 16:12:13 +01:00
ahocevar 26c8c954c3 Make selectedFeaturesFilter available to other components 2013-11-09 16:03:30 +01:00
ahocevar d9fd459654 Do not use a temporary layer for selected features 2013-11-09 14:15:35 +01:00
ahocevar 7cf636147b Call setRenderIntent on the feature, not the layer 2013-11-09 14:15:35 +01:00
Tim Schaub 009f7b53a1 Make interactions event targets 2013-11-07 16:39:05 -07:00
Peter Robins ef42744c66 Clarify keyboard events and focus in docs 2013-11-03 05:24:02 -05:00
Tim Schaub 7d2d68c011 Give interactions a reference to the map
This is in line with what we do for controls and overlays.  A follow-up change will add calls to `setMap` when interactions are added to a map.
2013-10-31 09:25:52 -06:00
Éric Lemoine 8402eee0c3 Map "click" event renamed to "singleclick"
As discussed with @tschaub in #1195.
2013-10-31 09:37:16 +01:00
Éric Lemoine a85b82090d Emulate click events only on mouse "action"
`click` events are fired only if the mouse action button is pressed. This prevents `click` events from being fired when the middle mouse button is used.

Also, without this commit, in Chrome with emulated touch events enabled, double-clicking the map doesn't zoom the map. This is because `ol.BrowserFeature.HAS_TOUCH` is `false` in that environment. The commit fixes it by testing `isMouseActionButton` on mouse devices only.
2013-10-30 13:16:09 +01:00
Frederic Junod a9159ecac3 Rename ol.interaction.condition to ol.events.condition 2013-10-30 12:13:44 +01:00
ahocevar 4b7b95fc2f Handle dragend after resetting view hint and dragging flag
When we start dragging, we first handle dragstart and then set
the INTERACTING view hint and the dragging flag. To end dragging
in a symmetric manner, we have to first reset the INTERACTING
hint and dragging flag, and then handle dragend.

This flaw becomes obvious when using an interaction where no
animation is performed after the interaction. This can be seen
in the style-rules example when using the dragzoom interaction
(i.e. zoom using a drag box): the vector renderer will not
render the new resolution, because the INTERACTING view hint is
still set when the zoom box dragend is handled.
2013-10-30 11:45:34 +01:00
Paul Spencer bada596b45 Add default stability level to docs of exported things. 2013-10-24 18:20:24 -04:00
Frederic Junod 9ffabb481c Rename offset* attributes to delta* 2013-10-14 14:22:51 +02:00
Frederic Junod ef97da2b77 Use getPixel function instead of offset from event 2013-10-11 07:35:27 +02:00
Tom Payne b533cad031 Only install animations if duration > 0 2013-10-08 14:35:04 +02:00
Tom Payne c6df48e424 Add zoomDuration option to interaction defaults 2013-10-08 14:35:04 +02:00
Tom Payne b1ed63ebf8 Make touch zoom animation duration configurable 2013-10-08 14:35:04 +02:00
Tom Payne 6c0d4cddad Make mouse wheel zoom animation duration configurable 2013-10-08 14:35:03 +02:00
Tom Payne 1863109ac8 Make keyboard zoom animation duration configurable 2013-10-07 15:41:00 +02:00
Tom Payne 93b33589a1 Make double click zoom animation duration configurable 2013-10-07 15:39:52 +02:00
Frédéric Junod 948735f948 Merge pull request #1075 from fredj/center-constraint
Add ol.CenterConstraint
2013-10-02 02:54:17 -07:00
Frederic Junod 680f5cbb5a Constrain center in ol.interaction.TouchPan 2013-09-30 10:37:02 +02:00
Tom Payne 2e395e4530 Constrain center in ol.interaction.DragPan 2013-09-30 10:17:24 +02:00
Tom Payne 92f7f14744 Constrain center in ol.interaction.Interaction.pan 2013-09-30 10:17:24 +02:00
ahocevar f8e891ff15 Making the condition for adding to selection configurable 2013-09-27 11:45:15 +02:00
Tim Schaub 6276e633de Merge pull request #832 from fredj/feature_getset_id
Rename setFeatureId to setId (same for get).
2013-09-20 10:31:37 -07:00
Tom Payne 0e4c5d10c5 Merge pull request #1024 from pagameba/doc-interactions
Documentation for Interactions
2013-09-18 08:05:46 -07:00
Frederic Junod 764aacb568 Rename {get|set}FeatureId to {get|set}Id 2013-09-17 12:50:56 +02:00
Frederic Junod 7de0e79c62 Remove unused goog.requires 2013-09-17 09:41:22 +02:00
Éric Lemoine b81a4e875b Remove noModifierKeys condition for keyboad zoom
Refs #917. With the key hanler now attached to the map target by default we can remove the noModifierKeys condition for the keyboard zoom interaction. This will prevent the back button shortcut (alt + <back arrow>) to work, but it's ok, the map is focused so it's the one with the highest priority.
2013-09-16 22:51:44 +02:00
Paul Spencer 28ee9bcd9b remove export for conditionType as it breaks the build to have it in there. 2013-09-13 11:23:06 -04:00
Paul Spencer d7eee91195 Add exports for interactions. 2013-09-13 11:23:05 -04:00
Éric Lemoine ba3f97d50a Change the interaction condition signature 2013-09-12 18:08:01 +02:00
Tim Schaub 8b7a0a060c Export ol.interaction namespace instead of the defaults function 2013-09-04 13:55:54 -06:00