webgme
Version:
Web-based Generic Modeling Environment
71 lines (54 loc) • 2.46 kB
JavaScript
/*globals define, $, _*/
/*jshint browser: true, camelcase: false*/
/**
* @author rkereskenyi / https://github.com/rkereskenyi
*/
define([
'js/DragDrop/DragHelper',
'js/Widgets/DiagramDesigner/DiagramDesignerWidget'
], function (DragHelper, DiagramDesignerWidget) {
'use strict';
var ModelEditorWidget;
ModelEditorWidget = function (container, params) {
params = params || {};
params.loggerName = 'gme:Widgets:ModelEditor:ModelEditorWidget';
params.tabsEnabled = true;
params.addTabs = false;
params.deleteTabs = false;
params.reorderTabs = false;
DiagramDesignerWidget.call(this, container, params);
this.logger.debug('ModelEditorWidget ctor');
};
_.extend(ModelEditorWidget.prototype, DiagramDesignerWidget.prototype);
ModelEditorWidget.prototype._afterManagersInitialized = function () {
//turn on open btn
this.enableOpenButton(true);
};
ModelEditorWidget.prototype.getDragEffects = function (selectedElements, event) {
var ctrlKey = event.ctrlKey || event.metaKey,
altKey = event.altKey,
shiftKey = event.shiftKey,
effects = DiagramDesignerWidget.prototype.getDragEffects.apply(this, [selectedElements, event]);
//ALT_KEY --> DRAG_CREATE_INSTANCE
if (!ctrlKey && altKey && !shiftKey) {
effects = [DragHelper.DRAG_EFFECTS.DRAG_CREATE_INSTANCE];
} else if (!ctrlKey && !altKey && shiftKey) {
effects = [DragHelper.DRAG_EFFECTS.DRAG_CREATE_POINTER];
}
return effects;
};
/* OVERWRITE DiagramDesignerWidget.prototype._dragHelper */
ModelEditorWidget.prototype._dragHelper = function (el, event, dragInfo) {
var helperEl = DiagramDesignerWidget.prototype._dragHelper.apply(this, [el, event, dragInfo]),
dragEffects = DragHelper.getDragEffects(dragInfo);
if (dragEffects.length === 1) {
if (dragEffects[0] === DragHelper.DRAG_EFFECTS.DRAG_CREATE_INSTANCE) {
helperEl.html($('<i class="glyphicon glyphicon-share-alt"></i>')).append(' Create instance...');
} else if (dragEffects[0] === DragHelper.DRAG_EFFECTS.DRAG_CREATE_POINTER) {
helperEl.html($('<i class="glyphicon glyphicon-share"></i>')).append(' Create pointer...');
}
}
return helperEl;
};
return ModelEditorWidget;
});