Skip to content

Commit

Permalink
FLUID-4686: All tests are now passing.
Browse files Browse the repository at this point in the history
  • Loading branch information
yzen committed May 13, 2013
1 parent fb6fdba commit 42b2f0b
Show file tree
Hide file tree
Showing 12 changed files with 182 additions and 83 deletions.
15 changes: 7 additions & 8 deletions src/webapp/components/uiOptions/js/FatPanelUIOptions.js
Expand Up @@ -30,8 +30,6 @@ var fluid_1_5 = fluid_1_5 || {};
/*****************************************
* Fat Panel UI Options Top Level Driver *
*****************************************/

fluid.registerNamespace("fluid.uiOptions.fatPanel");

fluid.defaults("fluid.uiOptions.fatPanel", {
gradeNames: ["fluid.uiOptions.inline", "autoInit"],
Expand All @@ -42,7 +40,7 @@ var fluid_1_5 = fluid_1_5 || {};
listeners: {
onReady: {
listener: "fluid.uiOptions.fatPanel.bindEvents",
args: ["{fatPanel}.uiOptionsLoader.uiOptions", "{uiEnhancer}", "{iframeRenderer}.iframeEnhancer", "{fatPanel}"]
args: ["{fatPanel}.uiOptionsLoader.uiOptions", "{iframeRenderer}.iframeEnhancer", "{fatPanel}"]
}
},
selectors: {
Expand Down Expand Up @@ -120,6 +118,7 @@ var fluid_1_5 = fluid_1_5 || {};
createOnEvent: "templatesAndIframeReady",
container: "{iframeRenderer}.renderUIOContainer",
options: {
gradeNames: ["fluid.uiOptions.uiEnhancerRelay"],
// ensure that model and applier are available to users at top level
model: "{fatPanel}.model",
applier: "{fatPanel}.applier",
Expand Down Expand Up @@ -197,24 +196,24 @@ var fluid_1_5 = fluid_1_5 || {};
that.iframe.appendTo(that.container);
};

fluid.uiOptions.fatPanel.updateView = function (uiOptions, uiEnhancer) {
fluid.uiOptions.fatPanel.updateView = function (uiOptions) {
uiOptions.events.onSignificantDOMChange.fire();
};

fluid.uiOptions.fatPanel.bindEvents = function (uiOptions, uiEnhancer, iframeEnhancer, fatPanel) {
fluid.uiOptions.fatPanel.bindEvents = function (uiOptions, iframeEnhancer, fatPanel) {
// TODO: This binding should be done declaratively - needs ginger world in order to bind onto slidingPanel
// which is a child of this component - and also uiOptionsLoader which is another child
fatPanel.slidingPanel.events.afterPanelShow.addListener(function () {
iframeEnhancer.events.onIframeVisible.fire(iframeEnhancer);
fluid.uiOptions.fatPanel.updateView(uiOptions, iframeEnhancer);
fluid.uiOptions.fatPanel.updateView(uiOptions);
});

uiOptions.events.modelChanged.addListener(function (model) {
uiEnhancer.updateModel(model.selections);
iframeEnhancer.updateModel(model.selections);
uiOptions.save();
});
uiOptions.events.onReset.addListener(function (uiOptions) {
fluid.uiOptions.fatPanel.updateView(uiOptions, iframeEnhancer);
fluid.uiOptions.fatPanel.updateView(uiOptions);
});
uiOptions.events.onSignificantDOMChange.addListener(function () {
var dokkument = uiOptions.container[0].ownerDocument;
Expand Down
44 changes: 29 additions & 15 deletions src/webapp/components/uiOptions/js/ModelRelay.js
Expand Up @@ -32,24 +32,38 @@ var fluid_1_5 = fluid_1_5 || {};
mergePolicy: {
sourceApplier: "nomerge"
},
listeners: {
onCreate: "{that}.addListeners",
onDestroy: "{that}.removeListeners"
},
invokers: {
addListeners: {
funcName: "fluid.uiOptions.modelRelay.addListeners",
args: ["{that}.options.rules", "{that}.applier", "{that}.options.sourceApplier", "{that}.id"]
},
removeListeners: {
funcName: "fluid.uiOptions.modelRelay.removeListeners",
args: ["{that}.options.rules", "{that}.options.sourceApplier", "{that}.id"]
}
},
sourceApplier: null, // must be supplied by implementors
rules: {}, // must be supplied by implementors, in format: "externalModelKey": "internalModelKey"
postInitFunction: "fluid.uiOptions.modelRelay.postInit"
rules: {} // must be supplied by implementors, in format: "externalModelKey": "internalModelKey"
});

fluid.uiOptions.modelRelay.postInit = function (that) {
fluid.transform(that.options.rules, function (internalKey, sourceKey) {
that.applier.modelChanged.addListener(internalKey, function (newModel, oldModel) {
if (!that.applier.hasChangeSource(sourceKey)) {
fluid.fireSourcedChange(that.options.sourceApplier, sourceKey, fluid.get(newModel, internalKey), internalKey);
}
});

that.options.sourceApplier.modelChanged.addListener(sourceKey, function (newModel, oldModel) {
if (!that.options.sourceApplier.hasChangeSource(internalKey)) {
fluid.fireSourcedChange(that.applier, internalKey, fluid.get(newModel, sourceKey), sourceKey);
}

fluid.uiOptions.modelRelay.removeListeners = function (rules, applier, namespace) {
fluid.each(rules, function () {
applier.removeListener(namespace);
});
};

fluid.uiOptions.modelRelay.addListeners = function (rules, applier, sourceApplier, namespace) {
fluid.each(rules, function (internalKey, sourceKey) {
fluid.addSourceGuardedListener(applier, internalKey, sourceKey, function (newModel) {
fluid.fireSourcedChange(sourceApplier, sourceKey, fluid.get(newModel, internalKey), internalKey)
});
fluid.addSourceGuardedListener(sourceApplier, sourceKey, internalKey, function (newModel) {
fluid.fireSourcedChange(applier, internalKey, fluid.get(newModel, sourceKey), sourceKey);
}, undefined, namespace);
});
};

Expand Down
16 changes: 8 additions & 8 deletions src/webapp/components/uiOptions/js/SettingsPanels.js
Expand Up @@ -323,7 +323,7 @@ var fluid_1_5 = fluid_1_5 || {};
"selections.textSize": "value"
},
model: {
value: "{uiOptions}.defaultModel.textSize"
value: "{fluid.uiOptions.defaultModel}.defaultModel.textSize"
},
resources: {
template: "{templateLoader}.resources.textSizer"
Expand All @@ -340,7 +340,7 @@ var fluid_1_5 = fluid_1_5 || {};
"selections.lineSpacing": "value"
},
model: {
value: "{uiOptions}.defaultModel.lineSpacing"
value: "{fluid.uiOptions.defaultModel}.defaultModel.lineSpacing"
},
resources: {
template: "{templateLoader}.resources.lineSpacer"
Expand All @@ -358,7 +358,7 @@ var fluid_1_5 = fluid_1_5 || {};
"selections.textFont": "value"
},
model: {
value: "{uiOptions}.defaultModel.textFont"
value: "{fluid.uiOptions.defaultModel}.defaultModel.textFont"
},
resources: {
template: "{templateLoader}.resources.textFont"
Expand All @@ -376,7 +376,7 @@ var fluid_1_5 = fluid_1_5 || {};
"selections.theme": "value"
},
model: {
value: "{uiOptions}.defaultModel.theme"
value: "{fluid.uiOptions.defaultModel}.defaultModel.theme"
},
resources: {
template: "{templateLoader}.resources.contrast"
Expand All @@ -394,8 +394,8 @@ var fluid_1_5 = fluid_1_5 || {};
"selections.layout": "layout"
},
model: {
toc: "{uiOptions}.defaultModel.toc",
layout: "{uiOptions}.defaultModel.layout"
toc: "{fluid.uiOptions.defaultModel}.defaultModel.toc",
layout: "{fluid.uiOptions.defaultModel}.defaultModel.layout"
},
resources: {
template: "{templateLoader}.resources.layoutControls"
Expand All @@ -413,8 +413,8 @@ var fluid_1_5 = fluid_1_5 || {};
"selections.inputsLarger": "inputsLarger"
},
model: {
links: "{uiOptions}.defaultModel.links",
inputsLarger: "{uiOptions}.defaultModel.inputsLarger"
links: "{fluid.uiOptions.defaultModel}.defaultModel.links",
inputsLarger: "{fluid.uiOptions.defaultModel}.defaultModel.inputsLarger"
},
resources: {
template: "{templateLoader}.resources.linksControls"
Expand Down
17 changes: 17 additions & 0 deletions src/webapp/components/uiOptions/js/Store.js
Expand Up @@ -139,4 +139,21 @@ var fluid_1_5 = fluid_1_5 || {};
applier.requestChange("", settings);
};

fluid.defaults("fluid.globalSettingsStore", {
gradeNames: ["autoInit", "fluid.littleComponent"],
components: {
settingsStore: {
type: "fluid.uiOptions.store"
}
}
});

fluid.globalSettingsStore.finalInit = function (that) {
fluid.staticEnvironment.settingsStore = that.settingsStore;
};

fluid.demands("fluid.uiOptions.store", ["fluid.globalSettingsStore"], {
funcName: "fluid.cookieStore"
});

})(jQuery, fluid_1_5);
19 changes: 10 additions & 9 deletions src/webapp/components/uiOptions/js/UIEnhancer.js
Expand Up @@ -114,7 +114,7 @@ var fluid_1_5 = fluid_1_5 || {};
"textSize": "value"
},
model: {
value: "{uiOptions}.defaultModel.textSize"
value: "{fluid.uiOptions.defaultModel}.defaultModel.textSize"
}
}
},
Expand All @@ -128,7 +128,7 @@ var fluid_1_5 = fluid_1_5 || {};
"textFont": "value"
},
model: {
value: "{uiOptions}.defaultModel.textFont"
value: "{fluid.uiOptions.defaultModel}.defaultModel.textFont"
}
}
},
Expand All @@ -142,7 +142,7 @@ var fluid_1_5 = fluid_1_5 || {};
"lineSpacing": "value"
},
model: {
value: "{uiOptions}.defaultModel.lineSpacing"
value: "{fluid.uiOptions.defaultModel}.defaultModel.lineSpacing"
}
}
},
Expand All @@ -156,7 +156,7 @@ var fluid_1_5 = fluid_1_5 || {};
"theme": "value"
},
model: {
value: "{uiOptions}.defaultModel.theme"
value: "{fluid.uiOptions.defaultModel}.defaultModel.theme"
}
}
},
Expand All @@ -170,7 +170,7 @@ var fluid_1_5 = fluid_1_5 || {};
"links": "value"
},
model: {
links: "{uiOptions}.defaultModel.links"
links: "{fluid.uiOptions.defaultModel}.defaultModel.links"
}
}
},
Expand All @@ -184,7 +184,7 @@ var fluid_1_5 = fluid_1_5 || {};
"inputsLarger": "value"
},
model: {
inputsLarger: "{uiOptions}.defaultModel.inputsLarger"
inputsLarger: "{fluid.uiOptions.defaultModel}.defaultModel.inputsLarger"
}
}
},
Expand All @@ -203,7 +203,7 @@ var fluid_1_5 = fluid_1_5 || {};
onLateRefreshRelay: "{uiEnhancer}.events.onAsyncEnactorReady"
},
model: {
toc: "{uiOptions}.defaultModel.toc"
toc: "{fluid.uiOptions.defaultModel}.defaultModel.toc"
}
}
},
Expand All @@ -216,7 +216,7 @@ var fluid_1_5 = fluid_1_5 || {};
"theme": "value"
},
model: {
value: "{uiOptions}.defaultModel.theme"
value: "{fluid.uiOptions.defaultModel}.defaultModel.theme"
}
}
}
Expand Down Expand Up @@ -260,12 +260,13 @@ var fluid_1_5 = fluid_1_5 || {};
that.options.originalUserOptions = fluid.copy(uiEnhancerOptions);
that.uiEnhancerOptions = uiEnhancerOptions;
fluid.initDependents(that);
that.uiEnhancer.updateModel(that.getSettings());
fluid.staticEnvironment.uiEnhancer = that.uiEnhancer;
return that;
};

fluid.defaults("fluid.pageEnhancer", {
gradeNames: ["fluid.originalEnhancerOptions"],
gradeNames: ["fluid.originalEnhancerOptions", "fluid.uiOptions.defaultModel", "fluid.uiOptions.settingsGetter"],
components: {
uiEnhancer: {
type: "fluid.uiEnhancer",
Expand Down

0 comments on commit 42b2f0b

Please sign in to comment.