Browse Source

Refactor SelectComponent

Move component selection in DomComponents module
pull/261/head
Artur Arseniev 9 years ago
parent
commit
80b12dfd0e
  1. 23
      src/commands/view/SelectComponent.js
  2. 42
      src/dom_components/index.js

23
src/commands/view/SelectComponent.js

@ -304,12 +304,14 @@ module.exports = {
* */ * */
onSelect(e, el) { onSelect(e, el) {
e.stopPropagation(); e.stopPropagation();
var md = this.editorModel.get('selectedComponent'); //var md = this.editorModel.get('selectedComponent');
this.cleanPrevious(md); //this.cleanPrevious(md);
var $el = $(el); //var $el = $(el);
var nMd = $el.data('model'); //var nMd = $el.data('model');
var model = $(el).data('model');
if (nMd) { if (model) {
/*
var em = this.em; var em = this.em;
var mirror = nMd.get('mirror'); var mirror = nMd.get('mirror');
nMd = mirror ? mirror : nMd; nMd = mirror ? mirror : nMd;
@ -329,9 +331,11 @@ module.exports = {
opened[parent.cid] = parent; opened[parent.cid] = parent;
parent = parent.collection ? parent.collection.parent : null; parent = parent.collection ? parent.collection.parent : null;
} }
*/
this.editorModel.set('selectedComponent', nMd); //this.editorModel.set('selectedComponent', nMd);
nMd.set('status','selected'); this.editor.select(model);
//nMd.set('status','selected');
this.showFixedElementOffset(el); this.showFixedElementOffset(el);
this.hideElementOffset(); this.hideElementOffset();
this.hideHighlighter(); this.hideHighlighter();
@ -563,9 +567,8 @@ module.exports = {
return this.contWindow; return this.contWindow;
}, },
run(em) { run(editor) {
if(em && em.get) this.editor = editor && editor.get('Editor');
this.editor = em.get('Editor');
this.enable(); this.enable();
}, },

42
src/dom_components/index.js

@ -146,8 +146,11 @@ module.exports = () => {
*/ */
init(config) { init(config) {
c = config || {}; c = config || {};
if(c.em) const em = c.em;
c.components = c.em.config.components || c.components;
if (em) {
c.components = em.config.components || c.components;
}
for (var name in defaults) { for (var name in defaults) {
if (!(name in c)) if (!(name in c))
@ -159,22 +162,23 @@ module.exports = () => {
c.stylePrefix = ppfx + c.stylePrefix; c.stylePrefix = ppfx + c.stylePrefix;
// Load dependencies // Load dependencies
if(c.em){ if (em) {
c.rte = c.em.get('rte') || ''; c.rte = em.get('rte') || '';
c.modal = c.em.get('Modal') || ''; c.modal = em.get('Modal') || '';
c.am = c.em.get('AssetManager') || ''; c.am = em.get('AssetManager') || '';
c.em.get('Parser').compTypes = defaultTypes; em.get('Parser').compTypes = defaultTypes;
em.on('change:selectedComponent', this.componentChanged, this);
} }
component = new Component(c.wrapper, { component = new Component(c.wrapper, {
sm: c.em, sm: em,
config: c, config: c,
defaultTypes, defaultTypes,
componentTypes, componentTypes,
}); });
component.set({ attributes: {id: 'wrapper'}}); component.set({ attributes: {id: 'wrapper'}});
if(c.em && !c.em.config.loadCompsOnRender) { if(em && !em.config.loadCompsOnRender) {
component.get('components').add(c.components); component.get('components').add(c.components);
} }
@ -400,5 +404,25 @@ module.exports = () => {
return; return;
}, },
/**
* Triggered when the selected component is changed
* @private
*/
componentChanged() {
const em = c.em;
const model = em.get('selectedComponent');
const previousModel = em.previous('selectedComponent');
// Deselect the previous component
if (previousModel) {
previousModel.set({
status: '',
state: '',
});
}
model && model.set('status','selected');
}
}; };
}; };

Loading…
Cancel
Save