Virtual panels working again with refactored code

This commit is contained in:
Henry
2015-11-11 14:59:00 -08:00
parent 5f8d13672f
commit f0e293a513
6 changed files with 19 additions and 21 deletions

View File

@ -50,7 +50,7 @@ define(
((domainObject && domainObject.useCapability('view')) || []) ((domainObject && domainObject.useCapability('view')) || [])
.forEach(selectViewIfMatching); .forEach(selectViewIfMatching);
} }
$scope.editMode = domainObject.getDomainObject ? true : false; $scope.editMode = domainObject.hasCapability('editor') ? true : false;
navigatedObject = domainObject; navigatedObject = domainObject;
} }

View File

@ -38,7 +38,7 @@
{ {
"key": "edit", "key": "edit",
"implementation": "actions/EditAction.js", "implementation": "actions/EditAction.js",
"depends": [ "$location", "navigationService", "$log" ], "depends": [ "$location", "navigationService", "$log", "$q" ],
"description": "Edit this object.", "description": "Edit this object.",
"category": "view-control", "category": "view-control",
"glyph": "p" "glyph": "p"
@ -78,7 +78,7 @@
"implementation": "actions/CancelAction.js", "implementation": "actions/CancelAction.js",
"name": "Cancel", "name": "Cancel",
"description": "Discard changes made to these objects.", "description": "Discard changes made to these objects.",
"depends": [ "$location", "urlService", "navigationService" ] "depends": ["$injector", "navigationService"]
} }
], ],
"policies": [ "policies": [

View File

@ -33,11 +33,10 @@ define(
* @memberof platform/commonUI/edit * @memberof platform/commonUI/edit
* @implements {Action} * @implements {Action}
*/ */
function CancelAction($location, urlService, navigationService, context) { function CancelAction($injector, navigationService, context) {
this.domainObject = context.domainObject; this.domainObject = context.domainObject;
this.$location = $location;
this.urlService = urlService;
this.navigationService = navigationService; this.navigationService = navigationService;
this.objectService = $injector.get('objectService');
} }
/** /**
@ -48,8 +47,6 @@ define(
*/ */
CancelAction.prototype.perform = function () { CancelAction.prototype.perform = function () {
var domainObject = this.domainObject, var domainObject = this.domainObject,
$location = this.$location,
urlService = this.urlService,
self = this; self = this;
// Look up the object's "editor.completion" capability; // Look up the object's "editor.completion" capability;
@ -69,11 +66,11 @@ define(
// Discard the current root view (which will be the editing // Discard the current root view (which will be the editing
// UI, which will have been pushed atop the Browise UI.) // UI, which will have been pushed atop the Browise UI.)
function returnToBrowse() { function returnToBrowse() {
return self.navigationService.setNavigation(self.domainObject.getDomainObject()); self.objectService.getObjects([self.domainObject.getId()]).then(function(objects){
/*$location.path($location.path(urlService.urlForLocation( return self.navigationService.setNavigation(objects[self.domainObject.getId()]);
"browse", })
domainObject //return
)));*/ // self.navigationService.setNavigation(self.domainObject.getDomainObject());
} }
return doCancel(getEditorCapability()) return doCancel(getEditorCapability())

View File

@ -46,7 +46,7 @@ define(
* @constructor * @constructor
* @implements {Action} * @implements {Action}
*/ */
function EditAction($location, navigationService, $log, context) { function EditAction($location, navigationService, $log, $q, context) {
var domainObject = (context || {}).domainObject; var domainObject = (context || {}).domainObject;
// We cannot enter Edit mode if we have no domain object to // We cannot enter Edit mode if we have no domain object to
@ -65,6 +65,7 @@ define(
this.domainObject = domainObject; this.domainObject = domainObject;
this.$location = $location; this.$location = $location;
this.navigationService = navigationService; this.navigationService = navigationService;
this.$q = $q;
} }
/** /**
@ -72,7 +73,7 @@ define(
*/ */
EditAction.prototype.perform = function () { EditAction.prototype.perform = function () {
if (!this.domainObject.getDomainObject) { if (!this.domainObject.getDomainObject) {
this.navigationService.setNavigation(new EditableDomainObject(this.domainObject)); this.navigationService.setNavigation(new EditableDomainObject(this.domainObject, this.$q));
} }
//this.$location.path("/edit"); //this.$location.path("/edit");
}; };

View File

@ -22,7 +22,7 @@
"key": "drop", "key": "drop",
"implementation": "gestures/DropGesture.js", "implementation": "gestures/DropGesture.js",
"depends": [ "dndService", "$q", "navigationService", "depends": [ "dndService", "$q", "navigationService",
"objectService" ] "objectService", "instantiate" ]
}, },
{ {
"key": "menu", "key": "menu",

View File

@ -42,7 +42,7 @@ define(
* @param {DomainObject} domainObject the domain object whose * @param {DomainObject} domainObject the domain object whose
* composition should be modified as a result of the drop. * composition should be modified as a result of the drop.
*/ */
function DropGesture(dndService, $q, navigationService, objectService, element, domainObject) { function DropGesture(dndService, $q, navigationService, objectService, instantiate, element, domainObject) {
var actionCapability = domainObject.getCapability('action'), var actionCapability = domainObject.getCapability('action'),
editableDomainObject, editableDomainObject,
action; // Action for the drop, when it occurs action; // Action for the drop, when it occurs
@ -73,15 +73,15 @@ define(
function shouldCreateVirtualPanel(domainObject){ function shouldCreateVirtualPanel(domainObject){
// //
return domainObject.useCapability('view').filter(function (view){ return domainObject.useCapability('view').filter(function (view){
return view.key==='plot' && domainObject.getModel().type!== 'telemetry.panel' return view.key==='plot' && domainObject.getModel().type!== 'telemetry.panel'
}).length > 0; }).length > 0;
} }
function dragOver(e) { function dragOver(e) {
//Refresh domain object on each dragOver to catch external //Refresh domain object on each dragOver to catch external
// updates to the model // updates to the model
//Don't use EditableDomainObject for folders, allow immediate persistence //Don't use EditableDomainObject for folders, allow immediate persistence
editableDomainObject = domainObject.getDomainObject || domainObject.getModel().type==='folder' ? domainObject : new EditableDomainObject(domainObject, $q); editableDomainObject = domainObject.hasCapability('editor') || domainObject.getModel().type==='folder' ? domainObject : new EditableDomainObject(domainObject, $q);
actionCapability = editableDomainObject.getCapability('action'); actionCapability = editableDomainObject.getCapability('action');
var event = (e || {}).originalEvent || e, var event = (e || {}).originalEvent || e,
@ -117,7 +117,7 @@ define(
id = uuid(); id = uuid();
//ObjectService is wrapped by a decorator which is obscuring //ObjectService is wrapped by a decorator which is obscuring
// the newObject method. // the newObject method.
return objectService.objectService.newObject(id, model); return instantiate(model, id);
} }