[Browse] Context menu gesture called

The context menu gesture is called when the user clicks
the arrow next to the title of a domain object. This does
not yet display the context menu. It also does not yet
distinguish between edit and browse mode. #33.
This commit is contained in:
Sarah Hale 2015-06-30 11:18:56 -07:00
parent 397a545482
commit 57eefd7316
4 changed files with 29 additions and 5 deletions

View File

@ -60,7 +60,7 @@
{ {
"key": "TreeNodeController", "key": "TreeNodeController",
"implementation": "controllers/TreeNodeController.js", "implementation": "controllers/TreeNodeController.js",
"depends": [ "$scope", "$timeout" ] "depends": [ "$scope", "$timeout", "$rootScope" ]
}, },
{ {
"key": "ActionGroupController", "key": "ActionGroupController",

View File

@ -27,7 +27,7 @@
> >
<span <span
class='ui-symbol view-control' class='ui-symbol view-control'
ng-click="toggle.toggle(); treeNode.trackExpansion()" ng-click="toggle.toggle(); treeNode.trackExpansion() ; treeNode.contextMenu()"
ng-if="model.composition !== undefined" ng-if="model.composition !== undefined"
> >
{{toggle.isActive() ? "v" : ">"}} {{toggle.isActive() ? "v" : ">"}}

View File

@ -50,7 +50,7 @@ define(
* expand-to-show-navigated-object behavior.) * expand-to-show-navigated-object behavior.)
* @constructor * @constructor
*/ */
function TreeNodeController($scope, $timeout) { function TreeNodeController($scope, $timeout, $rootScope) {
var selectedObject = ($scope.ngModel || {}).selectedObject, var selectedObject = ($scope.ngModel || {}).selectedObject,
isSelected = false, isSelected = false,
hasBeenExpanded = false; hasBeenExpanded = false;
@ -138,6 +138,20 @@ define(
selectedObject = object; selectedObject = object;
checkSelection(); checkSelection();
} }
// If we are in edit mode, then a left-click on the
// down arrow next to a domain object's title should display
// a context menu
function contextMenu() {
//console.log('contextMenu() called');
if ($scope.domainObject.hasCapability('editor') || true) {
//console.log('contextMenu() believes in edit mode');
$rootScope.$broadcast('leftContextual');
console.log('contextMenu() broadcasted from root');
}
}
// Listen for changes which will effect display parameters // Listen for changes which will effect display parameters
$scope.$watch("ngModel.selectedObject", setSelection); $scope.$watch("ngModel.selectedObject", setSelection);
@ -166,7 +180,13 @@ define(
*/ */
isSelected: function () { isSelected: function () {
return isSelected; return isSelected;
} },
/**
* This method should be called when the down arrow next
* to a domain object's title is (left) clicked. If in edit
* mode, this activates a context menu.
*/
contextMenu: contextMenu
}; };
} }

View File

@ -60,7 +60,10 @@ define(
goLeft = eventCoors[0] + menuDim[0] > winDim[0], goLeft = eventCoors[0] + menuDim[0] > winDim[0],
goUp = eventCoors[1] + menuDim[1] > winDim[1], goUp = eventCoors[1] + menuDim[1] > winDim[1],
menu; menu;
//console.log('in showMenu() in ContextMenuGesture');
//console.log('domainObject is ', domainObject);
// Remove the context menu // Remove the context menu
function dismiss() { function dismiss() {
menu.remove(); menu.remove();
@ -104,6 +107,7 @@ define(
// When context menu event occurs, show object actions instead // When context menu event occurs, show object actions instead
element.on('contextmenu', showMenu); element.on('contextmenu', showMenu);
$rootScope.$on('leftContextual', showMenu);
return { return {
/** /**