This example shows how to use the ngeo-map-query
- directive. It also shows how the ngeo.ToolActivate can be
+ directive. It also shows how the ngeo.misc.ToolActivate can be
used to make the directive inactive when an other tool becomes active.
The "Dummy" button here does nothing, but when toggled the query
directive becomes inactive.
diff --git a/examples/mapquery.js b/examples/mapquery.js
index d505d1a5cbb8..7d2d4668f34c 100644
--- a/examples/mapquery.js
+++ b/examples/mapquery.js
@@ -4,8 +4,9 @@ goog.provide('app.mapquery');
goog.require('ngeo.proj.EPSG21781');
goog.require('ngeo.datasource.DataSources');
goog.require('ngeo.datasource.OGC');
-goog.require('ngeo.ToolActivate');
-goog.require('ngeo.ToolActivateMgr');
+goog.require('ngeo.map.module');
+goog.require('ngeo.misc.ToolActivate');
+goog.require('ngeo.misc.ToolActivateMgr');
/** @suppress {extraRequire} */
goog.require('ngeo.btnDirective');
/** @suppress {extraRequire} */
@@ -17,14 +18,12 @@ goog.require('ol.layer.Tile');
goog.require('ol.source.ImageWMS');
goog.require('ol.source.OSM');
-goog.require('ngeo.map.module');
-
/** @type {!angular.Module} **/
app.module = angular.module('app', [
ngeo.module.name,
ngeo.map.module.name,
- ngeo.ToolActivateMgr.module.name,
+ ngeo.misc.ToolActivateMgr.module.name,
]);
@@ -70,7 +69,7 @@ app.module.controller('AppQueryresultController', app.QueryresultController);
* @param {angular.Scope} $scope Scope.
* @param {ngeo.datasource.DataSources} ngeoDataSources Ngeo collection of
* data sources objects.
- * @param {ngeo.ToolActivateMgr} ngeoToolActivateMgr The ngeo ToolActivate
+ * @param {ngeo.misc.ToolActivateMgr} ngeoToolActivateMgr The ngeo ToolActivate
* manager.
* @constructor
* @ngInject
@@ -143,10 +142,10 @@ app.MainController = function($scope, ngeoDataSources, ngeoToolActivateMgr) {
})
});
- const queryToolActivate = new ngeo.ToolActivate(this, 'queryActive');
+ const queryToolActivate = new ngeo.misc.ToolActivate(this, 'queryActive');
ngeoToolActivateMgr.registerTool('mapTools', queryToolActivate, true);
- const dummyToolActivate = new ngeo.ToolActivate(this, 'dummyActive');
+ const dummyToolActivate = new ngeo.misc.ToolActivate(this, 'dummyActive');
ngeoToolActivateMgr.registerTool('mapTools', dummyToolActivate);
};
diff --git a/examples/toolActivate.html b/examples/toolActivate.html
index 260cce533057..736a0abeade7 100644
--- a/examples/toolActivate.html
+++ b/examples/toolActivate.html
@@ -23,7 +23,7 @@
-
This example shows how to use ngeo.ToolActivate objects with the ngeo.ToolActivateMgrto active only one map control at once. If none draw control is choose, the click on the map is enabled.
+
This example shows how to use ngeo.misc.ToolActivate objects with the ngeo.misc.ToolActivateMgrto active only one map control at once. If none draw control is choose, the click on the map is enabled.
diff --git a/examples/toolActivate.js b/examples/toolActivate.js
index 0f285e977884..d75fbd62f9dd 100644
--- a/examples/toolActivate.js
+++ b/examples/toolActivate.js
@@ -1,11 +1,11 @@
goog.provide('app.toolActivate');
-goog.require('ngeo.ToolActivate');
-goog.require('ngeo.ToolActivateMgr');
/** @suppress {extraRequire} */
goog.require('ngeo.btnDirective');
goog.require('ngeo.map.module');
goog.require('ngeo.misc.decorate');
+goog.require('ngeo.misc.ToolActivate');
+goog.require('ngeo.misc.ToolActivateMgr');
goog.require('ol.Collection');
goog.require('ol.Map');
goog.require('ol.View');
@@ -23,14 +23,14 @@ goog.require('ol.style.Style');
app.module = angular.module('app', [
ngeo.module.name,
ngeo.map.module.name,
- ngeo.ToolActivateMgr.module.name,
+ ngeo.misc.ToolActivateMgr.module.name,
]);
/**
* @param {ngeo.map.FeatureOverlayMgr} ngeoFeatureOverlayMgr Feature overlay
* manager.
- * @param {ngeo.ToolActivateMgr} ngeoToolActivateMgr ToolActivate manager.
+ * @param {ngeo.misc.ToolActivateMgr} ngeoToolActivateMgr ToolActivate manager.
* @constructor
* @ngInject
*/
@@ -93,7 +93,7 @@ app.MainController = function(ngeoFeatureOverlayMgr, ngeoToolActivateMgr) {
}
});
- const mapClickTool = new ngeo.ToolActivate(this, 'mapClickIsEnabled');
+ const mapClickTool = new ngeo.misc.ToolActivate(this, 'mapClickIsEnabled');
ngeoToolActivateMgr.registerTool('mapTools', mapClickTool, true);
@@ -111,7 +111,7 @@ app.MainController = function(ngeoFeatureOverlayMgr, ngeoToolActivateMgr) {
ngeo.misc.decorate.interaction(this.drawPoint);
map.addInteraction(this.drawPoint);
- const drawPointTool = new ngeo.ToolActivate(this.drawPoint, 'active');
+ const drawPointTool = new ngeo.misc.ToolActivate(this.drawPoint, 'active');
ngeoToolActivateMgr.registerTool('mapTools', drawPointTool);
// draw line interaction
@@ -128,7 +128,7 @@ app.MainController = function(ngeoFeatureOverlayMgr, ngeoToolActivateMgr) {
ngeo.misc.decorate.interaction(this.drawLine);
map.addInteraction(this.drawLine);
- const drawLineTool = new ngeo.ToolActivate(this.drawLine, 'active');
+ const drawLineTool = new ngeo.misc.ToolActivate(this.drawLine, 'active');
ngeoToolActivateMgr.registerTool('mapTools', drawLineTool);
// draw polygon interaction
@@ -145,7 +145,7 @@ app.MainController = function(ngeoFeatureOverlayMgr, ngeoToolActivateMgr) {
ngeo.misc.decorate.interaction(this.drawPolygon);
map.addInteraction(this.drawPolygon);
- const drawPolygonTool = new ngeo.ToolActivate(this.drawPolygon, 'active');
+ const drawPolygonTool = new ngeo.misc.ToolActivate(this.drawPolygon, 'active');
ngeoToolActivateMgr.registerTool('mapTools', drawPolygonTool);
};
diff --git a/options/ngeox.js b/options/ngeox.js
index 19223ff45efb..e5994b30f62d 100644
--- a/options/ngeox.js
+++ b/options/ngeox.js
@@ -290,6 +290,16 @@ ngeox.miscDebounce;
ngeox.miscGetBrowserLanguage;
+/**
+ * An entry for a tool in a `ngeo.misc.ToolActivateMgr` group.
+ * @typedef {{
+ * tool: (ngeo.misc.ToolActivate),
+ * defaultTool: boolean,
+ * unlisten: (function(): void)}}
+ */
+ngeox.miscToolActivateMgrEntry;
+
+
/**
* A hash that contains 2 lists of queryable data sources: `wfs` and `wms`.
* The same data source can only be in one of the two lists. The `wfs` list
diff --git a/src/filter/rulecomponent.js b/src/filter/rulecomponent.js
index 815a51e26501..7d6e7a759881 100644
--- a/src/filter/rulecomponent.js
+++ b/src/filter/rulecomponent.js
@@ -4,9 +4,6 @@ goog.require('ngeo');
/** @suppress {extraRequire} */
goog.require('ngeo.DatePickerDirective');
goog.require('ngeo.Menu');
-goog.require('ngeo.ToolActivate');
-/** @suppress {extraRequire} */
-goog.require('ngeo.ToolActivateMgr');
goog.require('ngeo.draw.component');
/** @suppress {extraRequire} */
goog.require('ngeo.filter.RuleHelper');
@@ -14,8 +11,10 @@ goog.require('ngeo.interaction.Modify');
goog.require('ngeo.interaction.Rotate');
goog.require('ngeo.interaction.Translate');
goog.require('ngeo.map.FeatureOverlay');
-goog.require('ngeo.misc.FeatureHelper');
goog.require('ngeo.misc.decorate');
+goog.require('ngeo.misc.FeatureHelper');
+goog.require('ngeo.misc.ToolActivate');
+goog.require('ngeo.misc.ToolActivateMgr');
goog.require('ngeo.rule.Rule');
goog.require('ngeo.rule.Geometry');
goog.require('ngeo.rule.Select');
@@ -55,7 +54,7 @@ ngeo.filter.ruleComponent.RuleController_ = class {
* @param {!angular.$timeout} $timeout Angular timeout service.
* @param {!ngeo.misc.FeatureHelper} ngeoFeatureHelper Ngeo feature helper service.
* @param {!ngeo.filter.RuleHelper} ngeoRuleHelper Ngeo rule helper service.
- * @param {!ngeo.ToolActivateMgr} ngeoToolActivateMgr Ngeo ToolActivate
+ * @param {!ngeo.misc.ToolActivateMgr} ngeoToolActivateMgr Ngeo ToolActivate
* manager service.
* @private
* @struct
@@ -127,7 +126,7 @@ ngeo.filter.ruleComponent.RuleController_ = class {
this.ngeoRuleHelper_ = ngeoRuleHelper;
/**
- * @type {!ngeo.ToolActivateMgr}
+ * @type {!ngeo.misc.ToolActivateMgr}
* @private
*/
this.ngeoToolActivateMgr_ = ngeoToolActivateMgr;
@@ -204,10 +203,10 @@ ngeo.filter.ruleComponent.RuleController_ = class {
};
/**
- * @type {!ngeo.ToolActivate}
+ * @type {!ngeo.misc.ToolActivate}
* @private
*/
- this.toolActivate_;// = new ngeo.ToolActivate(this.rule, 'active');
+ this.toolActivate_;// = new ngeo.misc.ToolActivate(this.rule, 'active');
/**
* @type {!Array.}
@@ -225,10 +224,10 @@ ngeo.filter.ruleComponent.RuleController_ = class {
this.drawActive = false;
/**
- * @type {!ngeo.ToolActivate}
+ * @type {!ngeo.misc.ToolActivate}
* @export
*/
- this.drawToolActivate = new ngeo.ToolActivate(this, 'drawActive');
+ this.drawToolActivate = new ngeo.misc.ToolActivate(this, 'drawActive');
/**
* @type {!ol.Collection.}
@@ -309,28 +308,28 @@ ngeo.filter.ruleComponent.RuleController_ = class {
this.initializeInteractions_();
/**
- * @type {!ngeo.ToolActivate}
+ * @type {!ngeo.misc.ToolActivate}
* @export
*/
- this.modifyToolActivate = new ngeo.ToolActivate(
+ this.modifyToolActivate = new ngeo.misc.ToolActivate(
this.modify_,
'active'
);
/**
- * @type {ngeo.ToolActivate}
+ * @type {ngeo.misc.ToolActivate}
* @export
*/
- this.rotateToolActivate = new ngeo.ToolActivate(
+ this.rotateToolActivate = new ngeo.misc.ToolActivate(
this.rotate_,
'active'
);
/**
- * @type {ngeo.ToolActivate}
+ * @type {ngeo.misc.ToolActivate}
* @export
*/
- this.translateToolActivate = new ngeo.ToolActivate(
+ this.translateToolActivate = new ngeo.misc.ToolActivate(
this.translate_,
'active'
);
@@ -351,7 +350,7 @@ ngeo.filter.ruleComponent.RuleController_ = class {
$onInit() {
this.clone = this.ngeoRuleHelper_.cloneRule(this.rule);
- this.toolActivate_ = new ngeo.ToolActivate(this.rule, 'active');
+ this.toolActivate_ = new ngeo.misc.ToolActivate(this.rule, 'active');
this.ngeoToolActivateMgr_.registerTool(
this.toolGroup, this.toolActivate_);
diff --git a/src/services/toolActivate.js b/src/misc/ToolActivate.js
similarity index 78%
rename from src/services/toolActivate.js
rename to src/misc/ToolActivate.js
index b56309786ee5..b9d8b8651cc9 100644
--- a/src/services/toolActivate.js
+++ b/src/misc/ToolActivate.js
@@ -1,10 +1,10 @@
-goog.provide('ngeo.ToolActivate');
+goog.provide('ngeo.misc.ToolActivate');
goog.require('ngeo');
/**
- * A simple object that can be managed by `ngeo.ToolActivateMgr`.
+ * A simple object that can be managed by `ngeo.misc.ToolActivateMgr`.
*
* See our live examples:
* [../examples/mapquery.html](../examples/mapquery.html)
@@ -15,11 +15,10 @@ goog.require('ngeo');
* `toolContext` which represents the active state of the tool.
* @constructor
* @struct
- * @ngdoc value
* @ngname ngeoToolActivate
* @export
*/
-ngeo.ToolActivate = function(toolContext, activePropertyName) {
+ngeo.misc.ToolActivate = function(toolContext, activePropertyName) {
/**
* A getter function to get the active state of the tool.
@@ -39,6 +38,3 @@ ngeo.ToolActivate = function(toolContext, activePropertyName) {
toolContext[activePropertyName] = newVal;
};
};
-
-
-ngeo.module.value('ngeoToolActivate', ngeo.ToolActivate);
diff --git a/src/services/toolActivateMgr.js b/src/misc/ToolActivateMgr.js
similarity index 71%
rename from src/services/toolActivateMgr.js
rename to src/misc/ToolActivateMgr.js
index 0316ee556b4d..1a1d8a8f27a2 100644
--- a/src/services/toolActivateMgr.js
+++ b/src/misc/ToolActivateMgr.js
@@ -1,17 +1,18 @@
-goog.provide('ngeo.ToolActivateMgr');
+goog.provide('ngeo.misc.ToolActivateMgr');
goog.require('ngeo');
goog.require('goog.asserts');
+goog.require('ngeo.misc.ToolActivate');
/**
- * Provides a service to manage the activation of `ngeo.toolActivate` objects.
+ * Provides a service to manage the activation of `ngeo.misc.ToolActivate` objects.
*
* Example:
*
* Each tool must be registered before using it.
*
- * let tool = new ngeo.ToolActivate(interaction, 'active');
+ * let tool = new ngeo.misc.ToolActivate(interaction, 'active');
* ngeoToolActivateMgr.registerTool('mapTools', tool);
*
* A tool will be registered in a group identified by a group name.
@@ -32,10 +33,10 @@ goog.require('goog.asserts');
* @ngname ngeoToolActivateMgr
* @ngInject
*/
-ngeo.ToolActivateMgr = function($rootScope) {
+ngeo.misc.ToolActivateMgr = function($rootScope) {
/**
- * @type {!Object.>}
+ * @type {!Object.>}
* @private
*/
this.groups_ = {};
@@ -52,12 +53,12 @@ ngeo.ToolActivateMgr = function($rootScope) {
/**
* Register a tool.
* @param {string} groupName Name of the group of this tool.
- * @param {ngeo.ToolActivate} tool Tool to register.
+ * @param {ngeo.misc.ToolActivate} tool Tool to register.
* @param {boolean=} opt_defaultActivate If true, this tool will be activated
* when all other tools in the group are deactivated.
* @export
*/
-ngeo.ToolActivateMgr.prototype.registerTool = function(groupName, tool,
+ngeo.misc.ToolActivateMgr.prototype.registerTool = function(groupName, tool,
opt_defaultActivate) {
let entries = this.groups_[groupName];
if (!entries) {
@@ -100,10 +101,10 @@ ngeo.ToolActivateMgr.prototype.registerTool = function(groupName, tool,
/**
* Unregister a tool from a group.
* @param {string} groupName Name of the group of this tool.
- * @param {ngeo.ToolActivate} tool Tool to unregister.
+ * @param {ngeo.misc.ToolActivate} tool Tool to unregister.
* @export
*/
-ngeo.ToolActivateMgr.prototype.unregisterTool = function(groupName, tool) {
+ngeo.misc.ToolActivateMgr.prototype.unregisterTool = function(groupName, tool) {
const entries = this.groups_[groupName];
if (entries) {
for (let i = 0; i < entries.length; i++) {
@@ -122,7 +123,7 @@ ngeo.ToolActivateMgr.prototype.unregisterTool = function(groupName, tool) {
* @param {string} groupName Name of the group of tools to unregister.
* @export
*/
-ngeo.ToolActivateMgr.prototype.unregisterGroup = function(groupName) {
+ngeo.misc.ToolActivateMgr.prototype.unregisterGroup = function(groupName) {
const entries = this.groups_[groupName];
if (entries) {
for (let i = 0; i < entries.length; i++) {
@@ -135,20 +136,20 @@ ngeo.ToolActivateMgr.prototype.unregisterGroup = function(groupName) {
/**
* Activate a tool.
- * @param {ngeo.ToolActivate} tool Tool to activate.
+ * @param {ngeo.misc.ToolActivate} tool Tool to activate.
* @export
*/
-ngeo.ToolActivateMgr.prototype.activateTool = function(tool) {
+ngeo.misc.ToolActivateMgr.prototype.activateTool = function(tool) {
tool.setActive(true);
};
/**
* Deactivate a tool.
- * @param {ngeo.ToolActivate} tool Tool to deactivate.
+ * @param {ngeo.misc.ToolActivate} tool Tool to deactivate.
* @export
*/
-ngeo.ToolActivateMgr.prototype.deactivateTool = function(tool) {
+ngeo.misc.ToolActivateMgr.prototype.deactivateTool = function(tool) {
tool.setActive(false);
};
@@ -157,10 +158,10 @@ ngeo.ToolActivateMgr.prototype.deactivateTool = function(tool) {
* Deactivate all tools except the given one.
*
* @param {string} groupName Name of the group.
- * @param {ngeo.ToolActivate} tool Tool to activate.
+ * @param {ngeo.misc.ToolActivate} tool Tool to activate.
* @private
*/
-ngeo.ToolActivateMgr.prototype.deactivateTools_ = function(groupName, tool) {
+ngeo.misc.ToolActivateMgr.prototype.deactivateTools_ = function(groupName, tool) {
const entries = this.groups_[groupName];
for (let i = 0; i < entries.length; i++) {
if (tool != entries[i].tool) {
@@ -176,7 +177,7 @@ ngeo.ToolActivateMgr.prototype.deactivateTools_ = function(groupName, tool) {
* @param {string} groupName Name of the group.
* @private
*/
-ngeo.ToolActivateMgr.prototype.activateDefault_ = function(groupName) {
+ngeo.misc.ToolActivateMgr.prototype.activateDefault_ = function(groupName) {
const entries = this.groups_[groupName];
let defaultTool = null;
let hasActiveTool = false;
@@ -195,16 +196,6 @@ ngeo.ToolActivateMgr.prototype.activateDefault_ = function(groupName) {
};
-/**
- * An entry for a tool in a `ngeo.ToolActivateMgr` group.
- * @typedef {{
- * tool: (ngeo.ToolActivate),
- * defaultTool: boolean,
- * unlisten: (function(): void)}}
- */
-ngeo.ToolActivateMgr.ToolMgrEntry;
-
-
-ngeo.ToolActivateMgr.module = angular.module('ngeoToolActivateMgr', [])
- .service('ngeoToolActivateMgr', ngeo.ToolActivateMgr);
-ngeo.module.requires.push(ngeo.ToolActivateMgr.module.name);
+ngeo.misc.ToolActivateMgr.module = angular.module('ngeoToolActivateMgr', []);
+ngeo.misc.ToolActivateMgr.module.service('ngeoToolActivateMgr', ngeo.misc.ToolActivateMgr);
+ngeo.module.requires.push(ngeo.misc.ToolActivateMgr.module.name);
diff --git a/test/spec/services/toolActivateMgr.spec.js b/test/spec/services/toolActivateMgr.spec.js
index 154e353b6dc0..47baff0fedf9 100644
--- a/test/spec/services/toolActivateMgr.spec.js
+++ b/test/spec/services/toolActivateMgr.spec.js
@@ -1,18 +1,18 @@
-goog.require('ngeo.ToolActivate');
-goog.require('ngeo.ToolActivateMgr');
+goog.require('ngeo.misc.ToolActivate');
+goog.require('ngeo.misc.ToolActivateMgr');
-describe('ngeo.ToolActivateMgr', () => {
+describe('ngeo.misc.ToolActivateMgr', () => {
let interaction1, interaction2, interaction3, tool1, tool2, tool3;
let ngeoToolActivateMgr;
let $rootScope;
beforeEach(() => {
interaction1 = {active: true};
- tool1 = new ngeo.ToolActivate(interaction1, 'active');
+ tool1 = new ngeo.misc.ToolActivate(interaction1, 'active');
interaction2 = {active: false};
- tool2 = new ngeo.ToolActivate(interaction2, 'active');
+ tool2 = new ngeo.misc.ToolActivate(interaction2, 'active');
interaction3 = {active: false};
- tool3 = new ngeo.ToolActivate(interaction3, 'active');
+ tool3 = new ngeo.misc.ToolActivate(interaction3, 'active');
inject(($injector) => {
ngeoToolActivateMgr = $injector.get('ngeoToolActivateMgr');