blob: 9305c83b234cfe368a9c545f446a4bfb6e0a3651 [file] [log] [blame]
var SelectionSettings = function (view) {
var ob = {}, settingsView, compData, tempData = {}, callback;
var segments, segmentsCheckbox, segmentsTextBox, compositions;
var standalone, standaloneCheckbox;
var demo, demoCheckbox;
var glyphs,hiddens,guideds,extraComps, glyphsCheckbox,guidedsCheckbox,hiddensCheckbox, extraCompsCheckbox;
function updateSegmentsData() {
if (tempData.segmented) {
segments.addClass('active');
segmentsCheckbox.addClass('selected');
segmentsTextBox.prop('disabled', '');
} else {
segments.removeClass('active');
segmentsCheckbox.removeClass('selected');
segmentsTextBox.prop('disabled', 'disabled');
}
segmentsTextBox.val(tempData.segmentTime);
}
function updateStandaloneData() {
if (tempData.standalone) {
standaloneCheckbox.addClass('selected');
} else {
standaloneCheckbox.removeClass('selected');
}
}
function updateDemoData() {
if (tempData.demo) {
demoCheckbox.addClass('selected');
} else {
demoCheckbox.removeClass('selected');
}
}
function updateGlyphsData() {
if (tempData.glyphs) {
glyphsCheckbox.addClass('selected');
} else {
glyphsCheckbox.removeClass('selected');
}
}
function updateHiddensData() {
if (tempData.hiddens) {
hiddensCheckbox.addClass('selected');
} else {
hiddensCheckbox.removeClass('selected');
}
}
function updateExtraCompsData() {
if (tempData.extraComps && tempData.extraComps.active) {
extraCompsCheckbox.addClass('selected');
ExtraCompsSelectionSettingsController.show();
ExtraCompsSelectionSettingsController.updateList(compositions,tempData.extraComps.list);
} else {
extraCompsCheckbox.removeClass('selected');
ExtraCompsSelectionSettingsController.hide();
}
}
function updateGuidedsData() {
if (tempData.guideds) {
guidedsCheckbox.addClass('selected');
} else {
guidedsCheckbox.removeClass('selected');
}
}
function handleSegmentCheckboxClick() {
tempData.segmented = !tempData.segmented;
updateSegmentsData();
mainController.saveData();
}
function handleStandaloneCheckboxClick() {
tempData.standalone = !tempData.standalone;
updateStandaloneData();
mainController.saveData();
}
function handleDemoCheckboxClick() {
tempData.demo = !tempData.demo;
updateDemoData();
mainController.saveData();
}
function handleGlyphsCheckboxClick() {
tempData.glyphs = !tempData.glyphs;
updateGlyphsData();
mainController.saveData();
}
function handleHiddensCheckboxClick() {
tempData.hiddens = !tempData.hiddens;
updateHiddensData();
mainController.saveData();
}
function handleExtraCompsCheckboxClick() {
tempData.extraComps.active = !tempData.extraComps.active;
updateExtraCompsData();
mainController.saveData();
}
function handleGuidedsCheckboxClick() {
tempData.guideds = !tempData.guideds;
updateGuidedsData();
mainController.saveData();
}
function cancelSettings() {
settingsView.hide();
}
function saveSettings() {
tempData.segmentTime = segmentsTextBox.val();
compData = JSON.parse(JSON.stringify(tempData));
callback.apply(null, [compData]);
settingsView.hide();
}
function init() {
settingsView = view.find('.settingsView');
settingsView.hide();
segments = settingsView.find('.segments');
segments.find('.checkboxCombo').on('click', handleSegmentCheckboxClick);
segmentsCheckbox = segments.find('.checkbox');
segmentsTextBox = segments.find('.inputText');
standalone = settingsView.find('.standalone');
standalone.find('.checkboxCombo').on('click', handleStandaloneCheckboxClick);
standaloneCheckbox = standalone.find('.checkbox');
demo = settingsView.find('.demo');
demo.find('.checkboxCombo').on('click', handleDemoCheckboxClick);
demoCheckbox = demo.find('.checkbox');
glyphs = settingsView.find('.glyphs');
glyphs.find('.checkboxCombo').on('click', handleGlyphsCheckboxClick);
hiddens = settingsView.find('.hiddens');
hiddens.find('.checkboxCombo').on('click', handleHiddensCheckboxClick);
extraComps = settingsView.find('.extraComps');
extraComps.find('.checkboxCombo').on('click', handleExtraCompsCheckboxClick);
guideds = settingsView.find('.guideds');
guideds.find('.checkboxCombo').on('click', handleGuidedsCheckboxClick);
glyphsCheckbox = glyphs.find('.checkbox');
hiddensCheckbox = hiddens.find('.checkbox');
extraCompsCheckbox = extraComps.find('.checkbox');
guidedsCheckbox = guideds.find('.checkbox');
settingsView.find('.buttons .cancel').on('click', cancelSettings);
settingsView.find('.buttons .return').on('click', saveSettings);
ExtraCompsSelectionSettingsController.init(settingsView);
updateAllData();
}
function updateAllData(){
updateSegmentsData();
updateStandaloneData();
updateDemoData();
updateGlyphsData();
updateHiddensData();
updateExtraCompsData();
updateGuidedsData();
}
function show(data, cb, comps) {
settingsView.show();
compData = data;
tempData = JSON.parse(JSON.stringify(compData));
callback = cb;
compositions = comps;
updateAllData();
}
ob.init = init;
ob.show = show;
return ob;
};