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')) || [])
.forEach(selectViewIfMatching);
}
$scope.editMode = domainObject.getDomainObject ? true : false;
$scope.editMode = domainObject.hasCapability('editor') ? true : false;
navigatedObject = domainObject;
}

View File

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

View File

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

View File

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

View File

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

View File

@ -42,7 +42,7 @@ define(
* @param {DomainObject} domainObject the domain object whose
* 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'),
editableDomainObject,
action; // Action for the drop, when it occurs
@ -73,15 +73,15 @@ define(
function shouldCreateVirtualPanel(domainObject){
//
return domainObject.useCapability('view').filter(function (view){
return view.key==='plot' && domainObject.getModel().type!== 'telemetry.panel'
}).length > 0;
return view.key==='plot' && domainObject.getModel().type!== 'telemetry.panel'
}).length > 0;
}
function dragOver(e) {
//Refresh domain object on each dragOver to catch external
// updates to the model
//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');
var event = (e || {}).originalEvent || e,
@ -117,7 +117,7 @@ define(
id = uuid();
//ObjectService is wrapped by a decorator which is obscuring
// the newObject method.
return objectService.objectService.newObject(id, model);
return instantiate(model, id);
}