Revision 0e8041afdfe0c717ae4e44119897038db7297eeb authored by Juliane Müller on 07 October 2020, 15:11:18 UTC, committed by GitHub on 07 October 2020, 15:11:18 UTC
1 parent 126bc27
view_run_famd_button.js
function initialize_run_famd_button(parent_div_id, button_id) {
for (let i=0; i< data_cleansing_buttons.length; i++) {
let append_filter_div = d3.select('#' + parent_div_id).append('div')
.attr('id', parent_div_id + id_dimension_button_ending_div)
.attr('class', id_dimension_button_class);
let circle_width_height = parseFloat(getComputedStyle(append_filter_div.node()).getPropertyValue(id_view_property_dimension_button_width_height));
let circle_width_height_radius = circle_width_height - 2;
append_filter_div.style('right', i * circle_width_height + 70+ 'px');
let svg_append_filter_button = append_filter_div
.append('svg').attr('id', parent_div_id + button_id + id_dimension_button_ending)
.style('width', 100 + '%')
.style('height', 100 + '%')
.attr('data-tippy-content', get_language_label_by_id(data_cleansing_buttons[data_cleansing_buttons.length-1 -i].id));
tippy(svg_append_filter_button.nodes());
svg_append_filter_button.append('circle')
.attr("cx", circle_width_height_radius / 2)
.attr("cy", circle_width_height_radius / 2 + 2)
.attr("r", circle_width_height_radius / 2)
.attr("stroke", "none")
.style('fill', getComputedStyle(append_filter_div.node()).getPropertyValue(id_view_propertiy_dimensions_background_color));
let svg_width_height = circle_width_height_radius - 10;
svg_append_filter_button.append("svg:image")
.attr('x', circle_width_height_radius / 2 - svg_width_height / 2)
.attr('y', circle_width_height_radius / 2 - svg_width_height / 2 + 2)
.attr('width', svg_width_height)
.attr('height', svg_width_height)
.attr('fill', 'white')
.attr("xlink:href", data_cleansing_buttons[i].image);
svg_append_filter_button.on('click', function () {
if (data_cleansing_buttons[i].id === id_data_type_identification_and_formatting_button) {
update_data_type_automatically();
} else if (data_cleansing_buttons[i].id === id_outlier_removing_button) {
remove_outliers();
} else if (data_cleansing_buttons[i].id === id_applied_data_cleansing_button) {
open_run_famd_view(parent_div_id, brushed_dimensions);
}
});
}
}
function initialize_run_famd_pop_up_view(parent_div_id) {
let popup_view_applied_data_cleansing = d3.select('#' + parent_div_id).append('div').attr('id', parent_div_id + id_applied_data_cleansing_ending_div).attr('class', id_applied_data_cleansing_pop_up_view_class);
popup_view_applied_data_cleansing.append('div').attr('class', id_closebtn_class);
let close_buttn_svg = d3.select('#' + parent_div_id).select('.' + id_closebtn_class).append('svg')
.style('width', 100 + '%')
.style('height', 100 + '%')
.style('top', 0)
.style('left', 0)
.style('position', 'absolute')
.on('click', function () {
close_run_famd_view(parent_div_id);
});
let circle_width_height = parseFloat(getComputedStyle(d3.select('#' + parent_div_id).node()).getPropertyValue('--close_btn_width_height'));
let circle_width_height_radius = circle_width_height - 2;
let circle_padding_top = 2;
let plus_color = getComputedStyle(d3.select('#' + parent_div_id).node()).getPropertyValue('--element-background-color');
close_buttn_svg.append('circle')
.attr("cx", circle_width_height_radius / 2)
.attr("cy", circle_width_height_radius / 2 + 2)
.attr("r", circle_width_height_radius / 2)
.attr("stroke", "none")
.style('fill', getComputedStyle(d3.select('#' + parent_div_id).node()).getPropertyValue('--navbar-highlight-font-color'));
close_buttn_svg.append('line')
.attr('x1', 5)
.attr('y1', 5 + circle_padding_top)
.attr('x2', circle_width_height_radius - 5)
.attr('y2', circle_width_height_radius - 5 + circle_padding_top)
.attr('stroke', plus_color)
.attr('stroke-width', "2");
close_buttn_svg.append('line')
.attr('y2', circle_width_height_radius - 5 + circle_padding_top)
.attr('x1', circle_width_height_radius - 5)
.attr('y1', 5 + circle_padding_top)
.attr('x2', 5)
.attr('stroke', plus_color)
.attr('stroke-width', "2");
add_heading(parent_div_id + id_applied_data_cleansing_ending_div, get_language_label_by_id(language_id_applied_data_cleansing_heading));
add_content_div(parent_div_id + id_applied_data_cleansing_ending_div);
d3.select('#' + parent_div_id + id_applied_data_cleansing_ending_div + id_content_ending).style("overflow-y", "auto");
}
function initialize_pop_up_view_content(parent_div_id, brushed_dimensions, updated_dim_id) {
let content_div = d3.select('#' + parent_div_id + id_applied_data_cleansing_ending_div + id_content_ending);
console.log(content_div.style('height'))
let select_run_famd_listbox = content_div.append('select')
.attr('multiple', 'multiple')
.attr('name', "dimensions")
.attr('id', id_run_famd_listbox);
column_values_filtered.forEach(function (dim) {
if (dim.type_element_group === "dimension") {
let last_option = select_run_famd_listbox.append('option').attr('id', dim.id).text(dim.header);
if (brushed_dimensions.includes(dim.id)) {
last_option.attr('selected', 'selected');
}
}
});
$('#' + id_run_famd_listbox).multi({
non_selected_header:'Dimensions',
selected_header:'Selected Dimensions for Dimensionality Reduction (minimum 2)',
enable_search: true,
// placeholder of search input
search_placeholder: get_language_label_by_id(language_id_search)
});
let multi_select_height = parseFloat(content_div.style('height')) - 90;
content_div.select('.multi-wrapper .non-selected-wrapper').style('height', multi_select_height+'px');
content_div.select('.multi-wrapper .selected-wrapper').style('height', multi_select_height+'px');
$("#" + id_run_famd_listbox).change(function (d) {
if ($('#' + id_run_famd_listbox).val() === null || $('#' + id_run_famd_listbox).val().length < 2) {
svg_button.style('opacity', 0.5);
svg_button.selectAll('*').on('click', null);
} else {
svg_button.style('opacity', 1);
svg_button.selectAll('*').on('click', function () {
return run_famd(updated_dim_id);
});
}
});
let svg_button = content_div.append('svg').style('width', 100 + '%')
.style('height', 40 + 'px')
.style('margin-top', 15 + 'px')
.style('opacity', function () {
if ($('#' + id_run_famd_listbox).val() === null || $('#' + id_run_famd_listbox).val().length < 2) {
return 0.5;
} else {
return 1;
}
});
svg_button.append('rect')
.style('width', 240 +'px')
.style('height', 40 + 'px')
.attr("rx", 6)
.attr("ry", 6)
.style('x', (parseFloat(d3.select('#' + parent_div_id).style('width')) - 260) + 'px')
.attr('fill', '#9ebcda')
.on('click', function () {
if ($('#' + id_run_famd_listbox).val() === null || $('#' + id_run_famd_listbox).val().length < 2) {
return null
} else {
return run_famd(updated_dim_id);
}
});
svg_button
.append('text')
.attr('text-anchor', 'middle')
.attr('alignment-baseline', 'central')
.attr('transform', 'translate(' + (parseFloat(d3.select('#' + parent_div_id).style('width')) - 140) + ','+40/2 +')')
.text(get_language_label_by_id(language_id_run_dimensionality_reduction))
.on('click', function () {
console.log($('#' + id_run_famd_listbox).val().length)
if ($('#' + id_run_famd_listbox).val() === null || $('#' + id_run_famd_listbox).val().length < 2) {
return null
} else {
return run_famd(updated_dim_id);
}
});
}
function run_famd(updated_dim_id) {
let list_selected_headers = $('#' + id_run_famd_listbox).val();
let list_ids = [];
d3.select('#' + id_run_famd_listbox).selectAll('option').each(function (option) {
if (list_selected_headers.includes(this.value)) {
list_ids.push(this.id);
}
});
// remove brushed selection
d3.select('#' + id_likelihood_of_errors_dimensions + id_content_ending).select("g").call(d3.brush().move, null);
run_famd_on_user_selection(function (response) {
close_run_famd_view(id_likelihood_of_errors_dimensions);
}, list_ids, updated_dim_id);
}
function open_run_famd_view(parent_div_id, brushed_dimensions, updated_dim_id) {
initialize_pop_up_view_content(parent_div_id, brushed_dimensions, updated_dim_id);
d3.select(d3.select('#' + parent_div_id).node().parentNode)
.select('.' + id_applied_data_cleansing_pop_up_view_class)
.style('z-index', 1)
.transition().duration(animation_duration_time_pop_up_view).style('width', 'calc(' + 100 + '%)');
}
function close_run_famd_view(parent_div_id) {
d3.select(d3.select('#' + parent_div_id).node().parentNode)
.select('.' + id_applied_data_cleansing_pop_up_view_class)
.transition().duration(animation_duration_time_pop_up_view).style('width', 0 + '%')
.on('end', function () {
d3.select(this).style('z-index', -1);
d3.select('#' + parent_div_id + id_applied_data_cleansing_ending_div + id_content_ending).selectAll('*').remove();
});
}
Computing file changes ...