From f43488af34d4fa644474b545336d06b21c8335ed Mon Sep 17 00:00:00 2001 From: Ivan Usov Date: Fri, 9 Apr 2021 09:03:50 +0200 Subject: [PATCH] Layout improvements --- pyzebra/app/panel_ccl_integrate.py | 36 +++++----- pyzebra/app/panel_hdf_anatric.py | 103 +++++++++++++---------------- pyzebra/app/panel_hdf_viewer.py | 30 ++++----- pyzebra/app/panel_param_study.py | 36 +++++----- pyzebra/app/panel_spind.py | 18 +++-- 5 files changed, 101 insertions(+), 122 deletions(-) diff --git a/pyzebra/app/panel_ccl_integrate.py b/pyzebra/app/panel_ccl_integrate.py index 04c7fa0..00cc636 100644 --- a/pyzebra/app/panel_ccl_integrate.py +++ b/pyzebra/app/panel_ccl_integrate.py @@ -78,7 +78,7 @@ def create(): ccl_file_list.append((os.path.join(ccl_path, file), file)) file_select.options = ccl_file_list - proposal_textinput = TextInput(title="Proposal number:", default_size=145) + proposal_textinput = TextInput(title="Proposal number:", width=210) proposal_textinput.on_change("value", proposal_textinput_callback) def _init_datatable(): @@ -100,7 +100,7 @@ def create(): def ccl_file_select_callback(_attr, _old, _new): pass - file_select = MultiSelect(title="Available .ccl/.dat files:", default_size=200, height=250) + file_select = MultiSelect(title="Available .ccl/.dat files:", width=210, height=250) file_select.on_change("value", ccl_file_select_callback) def file_open_button_callback(): @@ -122,7 +122,7 @@ def create(): _init_datatable() _update_preview() - file_open_button = Button(label="Open New", default_size=100) + file_open_button = Button(label="Open New", width=100) file_open_button.on_click(file_open_button_callback) def file_append_button_callback(): @@ -136,7 +136,7 @@ def create(): _init_datatable() - file_append_button = Button(label="Append", default_size=100) + file_append_button = Button(label="Append", width=100) file_append_button.on_click(file_append_button_callback) def upload_button_callback(_attr, _old, new): @@ -159,7 +159,7 @@ def create(): _update_preview() upload_div = Div(text="or upload new .ccl/.dat files:", margin=(5, 5, 0, 5)) - upload_button = FileInput(accept=".ccl,.dat", multiple=True, default_size=200) + upload_button = FileInput(accept=".ccl,.dat", multiple=True, width=200) upload_button.on_change("value", upload_button_callback) def append_upload_button_callback(_attr, _old, new): @@ -174,7 +174,7 @@ def create(): _init_datatable() append_upload_div = Div(text="append extra files:", margin=(5, 5, 0, 5)) - append_upload_button = FileInput(accept=".ccl,.dat", multiple=True, default_size=200) + append_upload_button = FileInput(accept=".ccl,.dat", multiple=True, width=200) append_upload_button.on_change("value", append_upload_button_callback) def monitor_spinner_callback(_attr, old, new): @@ -341,13 +341,13 @@ def create(): def fit_from_spinner_callback(_attr, _old, new): fit_from_span.location = new - fit_from_spinner = Spinner(title="Fit from:", default_size=145) + fit_from_spinner = Spinner(title="Fit from:", width=145) fit_from_spinner.on_change("value", fit_from_spinner_callback) def fit_to_spinner_callback(_attr, _old, new): fit_to_span.location = new - fit_to_spinner = Spinner(title="to:", default_size=145) + fit_to_spinner = Spinner(title="to:", width=145) fit_to_spinner.on_change("value", fit_to_spinner_callback) def fitparams_add_dropdown_callback(click): @@ -366,7 +366,7 @@ def create(): ("Pseudo Voigt", "pvoigt"), # ("Pseudo Voigt1", "pseudovoigt1"), ], - default_size=145, + width=145, disabled=True, ) fitparams_add_dropdown.on_click(fitparams_add_dropdown_callback) @@ -387,7 +387,7 @@ def create(): else: fitparams_table_source.data.update(dict(param=[], value=[], vary=[], min=[], max=[])) - fitparams_select = MultiSelect(options=[], height=120, default_size=145) + fitparams_select = MultiSelect(options=[], height=120, width=145) fitparams_select.tags = [0] fitparams_select.on_change("value", fitparams_select_callback) @@ -402,7 +402,7 @@ def create(): fitparams_select.value = [] - fitparams_remove_button = Button(label="Remove fit function", default_size=145, disabled=True) + fitparams_remove_button = Button(label="Remove fit function", width=145, disabled=True) fitparams_remove_button.on_click(fitparams_remove_button_callback) def fitparams_factory(function): @@ -465,7 +465,7 @@ def create(): _update_table() _update_preview() - fit_all_button = Button(label="Fit All", button_type="primary", default_size=145) + fit_all_button = Button(label="Fit All", button_type="primary", width=145) fit_all_button.on_click(fit_all_button_callback) def fit_button_callback(): @@ -478,23 +478,21 @@ def create(): _update_table() _update_preview() - fit_button = Button(label="Fit Current", default_size=145) + fit_button = Button(label="Fit Current", width=145) fit_button.on_click(fit_button_callback) def area_method_radiobutton_callback(_handler): _update_preview() area_method_radiobutton = RadioButtonGroup( - labels=["Fit area", "Int area"], active=0, default_size=145, disabled=True + labels=["Fit area", "Int area"], active=0, width=145, disabled=True ) area_method_radiobutton.on_click(area_method_radiobutton_callback) def lorentz_checkbox_callback(_handler): _update_preview() - lorentz_checkbox = CheckboxGroup( - labels=["Lorentz Correction"], default_size=145, margin=[13, 5, 5, 5] - ) + lorentz_checkbox = CheckboxGroup(labels=["Lorentz Correction"], width=145, margin=[13, 5, 5, 5]) lorentz_checkbox.on_click(lorentz_checkbox_callback) export_preview_textinput = TextAreaInput(title="Export file preview:", width=500, height=400) @@ -534,11 +532,11 @@ def create(): _update_preview() hkl_precision_select = Select( - title="hkl precision:", options=["2", "3", "4"], value="2", default_size=80 + title="hkl precision:", options=["2", "3", "4"], value="2", width=80 ) hkl_precision_select.on_change("value", hkl_precision_select_callback) - save_button = Button(label="Download File", button_type="success", default_size=200) + save_button = Button(label="Download File", button_type="success", width=200) save_button.js_on_click(CustomJS(args={"js_data": js_data}, code=javaScript)) fitpeak_controls = row( diff --git a/pyzebra/app/panel_hdf_anatric.py b/pyzebra/app/panel_hdf_anatric.py index def22ff..caa87dc 100644 --- a/pyzebra/app/panel_hdf_anatric.py +++ b/pyzebra/app/panel_hdf_anatric.py @@ -53,7 +53,7 @@ def create(): reflectionPrinter_format_select.value = config.reflectionPrinter_format if config.algorithm == "adaptivemaxcog": - algorithm_tabs.active = 0 + algorithm_params.active = 0 threshold_textinput.value = config.threshold shell_textinput.value = config.shell steepness_textinput.value = config.steepness @@ -62,7 +62,7 @@ def create(): aps_window_textinput.value = str(tuple(map(int, config.aps_window.values()))) elif config.algorithm == "adaptivedynamic": - algorithm_tabs.active = 1 + algorithm_params.active = 1 adm_window_textinput.value = str(tuple(map(int, config.adm_window.values()))) border_textinput.value = str(tuple(map(int, config.border.values()))) minWindow_textinput.value = str(tuple(map(int, config.minWindow.values()))) @@ -80,8 +80,8 @@ def create(): with io.BytesIO(base64.b64decode(new)) as file: _load_config_file(file) - upload_div = Div(text="Open XML configuration file:") - upload_button = FileInput(accept=".xml") + upload_div = Div(text="Open .xml config:") + upload_button = FileInput(accept=".xml", width=200) upload_button.on_change("value", upload_button_callback) # General parameters @@ -89,7 +89,7 @@ def create(): def logfile_textinput_callback(_attr, _old, new): config.logfile = new - logfile_textinput = TextInput(title="Logfile:", value="logfile.log", width=320) + logfile_textinput = TextInput(title="Logfile:", value="logfile.log") logfile_textinput.on_change("value", logfile_textinput_callback) def logfile_verbosity_select_callback(_attr, _old, new): @@ -125,20 +125,20 @@ def create(): ranges.append(re.findall(r"\b\d+\b", line)) config.filelist_ranges = ranges - filelist_ranges_textareainput = TextAreaInput(title="ranges:", height=100) + filelist_ranges_textareainput = TextAreaInput(title="ranges:", rows=1) filelist_ranges_textareainput.on_change("value", filelist_ranges_textareainput_callback) # ---- crystal def crystal_sample_textinput_callback(_attr, _old, new): config.crystal_sample = new - crystal_sample_textinput = TextInput(title="Sample Name:") + crystal_sample_textinput = TextInput(title="Sample Name:", width=290) crystal_sample_textinput.on_change("value", crystal_sample_textinput_callback) def lambda_textinput_callback(_attr, _old, new): config.crystal_lambda = new - lambda_textinput = TextInput(title="lambda:", width=145) + lambda_textinput = TextInput(title="lambda:", width=100) lambda_textinput.on_change("value", lambda_textinput_callback) def ub_textareainput_callback(_attr, _old, new): @@ -150,19 +150,19 @@ def create(): def zeroOM_textinput_callback(_attr, _old, new): config.crystal_zeroOM = new - zeroOM_textinput = TextInput(title="zeroOM:", width=145) + zeroOM_textinput = TextInput(title="zeroOM:", width=100) zeroOM_textinput.on_change("value", zeroOM_textinput_callback) def zeroSTT_textinput_callback(_attr, _old, new): config.crystal_zeroSTT = new - zeroSTT_textinput = TextInput(title="zeroSTT:", width=145) + zeroSTT_textinput = TextInput(title="zeroSTT:", width=100) zeroSTT_textinput.on_change("value", zeroSTT_textinput_callback) def zeroCHI_textinput_callback(_attr, _old, new): config.crystal_zeroCHI = new - zeroCHI_textinput = TextInput(title="zeroCHI:", width=145) + zeroCHI_textinput = TextInput(title="zeroCHI:", width=100) zeroCHI_textinput.on_change("value", zeroCHI_textinput_callback) # ---- DataFactory @@ -210,42 +210,42 @@ def create(): def threshold_textinput_callback(_attr, _old, new): config.threshold = new - threshold_textinput = TextInput(title="Threshold:") + threshold_textinput = TextInput(title="Threshold:", width=145) threshold_textinput.on_change("value", threshold_textinput_callback) # ---- shell def shell_textinput_callback(_attr, _old, new): config.shell = new - shell_textinput = TextInput(title="Shell:") + shell_textinput = TextInput(title="Shell:", width=145) shell_textinput.on_change("value", shell_textinput_callback) # ---- steepness def steepness_textinput_callback(_attr, _old, new): config.steepness = new - steepness_textinput = TextInput(title="Steepness:") + steepness_textinput = TextInput(title="Steepness:", width=145) steepness_textinput.on_change("value", steepness_textinput_callback) # ---- duplicateDistance def duplicateDistance_textinput_callback(_attr, _old, new): config.duplicateDistance = new - duplicateDistance_textinput = TextInput(title="Duplicate Distance:") + duplicateDistance_textinput = TextInput(title="Duplicate Distance:", width=145) duplicateDistance_textinput.on_change("value", duplicateDistance_textinput_callback) # ---- maxequal def maxequal_textinput_callback(_attr, _old, new): config.maxequal = new - maxequal_textinput = TextInput(title="Max Equal:") + maxequal_textinput = TextInput(title="Max Equal:", width=145) maxequal_textinput.on_change("value", maxequal_textinput_callback) # ---- window def aps_window_textinput_callback(_attr, _old, new): config.aps_window = dict(zip(("x", "y", "z"), re.findall(r"\b\d+\b", new))) - aps_window_textinput = TextInput(title="Window (x, y, z):") + aps_window_textinput = TextInput(title="Window (x, y, z):", width=145) aps_window_textinput.on_change("value", aps_window_textinput_callback) # Adaptive Dynamic Mask Integration (adaptivedynamic) @@ -253,56 +253,56 @@ def create(): def adm_window_textinput_callback(_attr, _old, new): config.adm_window = dict(zip(("x", "y", "z"), re.findall(r"\b\d+\b", new))) - adm_window_textinput = TextInput(title="Window (x, y, z):") + adm_window_textinput = TextInput(title="Window (x, y, z):", width=145) adm_window_textinput.on_change("value", adm_window_textinput_callback) # ---- border def border_textinput_callback(_attr, _old, new): config.border = dict(zip(("x", "y", "z"), re.findall(r"\b\d+\b", new))) - border_textinput = TextInput(title="Border (x, y, z):") + border_textinput = TextInput(title="Border (x, y, z):", width=145) border_textinput.on_change("value", border_textinput_callback) # ---- minWindow def minWindow_textinput_callback(_attr, _old, new): config.minWindow = dict(zip(("x", "y", "z"), re.findall(r"\b\d+\b", new))) - minWindow_textinput = TextInput(title="Min Window (x, y, z):") + minWindow_textinput = TextInput(title="Min Window (x, y, z):", width=145) minWindow_textinput.on_change("value", minWindow_textinput_callback) # ---- reflectionFile def reflectionFile_textinput_callback(_attr, _old, new): config.reflectionFile = new - reflectionFile_textinput = TextInput(title="Reflection File:") + reflectionFile_textinput = TextInput(title="Reflection File:", width=145) reflectionFile_textinput.on_change("value", reflectionFile_textinput_callback) # ---- targetMonitor def targetMonitor_textinput_callback(_attr, _old, new): config.targetMonitor = new - targetMonitor_textinput = TextInput(title="Target Monitor:") + targetMonitor_textinput = TextInput(title="Target Monitor:", width=145) targetMonitor_textinput.on_change("value", targetMonitor_textinput_callback) # ---- smoothSize def smoothSize_textinput_callback(_attr, _old, new): config.smoothSize = new - smoothSize_textinput = TextInput(title="Smooth Size:") + smoothSize_textinput = TextInput(title="Smooth Size:", width=145) smoothSize_textinput.on_change("value", smoothSize_textinput_callback) # ---- loop def loop_textinput_callback(_attr, _old, new): config.loop = new - loop_textinput = TextInput(title="Loop:") + loop_textinput = TextInput(title="Loop:", width=145) loop_textinput.on_change("value", loop_textinput_callback) # ---- minPeakCount def minPeakCount_textinput_callback(_attr, _old, new): config.minPeakCount = new - minPeakCount_textinput = TextInput(title="Min Peak Count:") + minPeakCount_textinput = TextInput(title="Min Peak Count:", width=145) minPeakCount_textinput.on_change("value", minPeakCount_textinput_callback) # ---- displacementCurve @@ -313,7 +313,7 @@ def create(): config.displacementCurve = maps displacementCurve_textinput = TextAreaInput( - title="Displacement Curve (twotheta, x, y):", height=100 + title="Displ. Curve (2θ, x, y):", width=145, height=100 ) displacementCurve_textinput.on_change("value", displacementCurve_textinput_callback) @@ -323,36 +323,26 @@ def create(): else: config.algorithm = "adaptivedynamic" - algorithm_tabs = Tabs( + algorithm_params = Tabs( tabs=[ Panel( child=column( - threshold_textinput, - shell_textinput, - steepness_textinput, - duplicateDistance_textinput, - maxequal_textinput, - aps_window_textinput, + row(threshold_textinput, shell_textinput, steepness_textinput), + row(duplicateDistance_textinput, maxequal_textinput, aps_window_textinput), ), - title="Adaptive Peak Search", + title="Peak Search", ), Panel( child=column( - adm_window_textinput, - border_textinput, - minWindow_textinput, - reflectionFile_textinput, - targetMonitor_textinput, - smoothSize_textinput, - loop_textinput, - minPeakCount_textinput, - displacementCurve_textinput, + row(adm_window_textinput, border_textinput, minWindow_textinput), + row(reflectionFile_textinput, targetMonitor_textinput, smoothSize_textinput), + row(loop_textinput, minPeakCount_textinput, displacementCurve_textinput), ), - title="Adaptive Dynamic Integration", + title="Dynamic Integration", ), ] ) - algorithm_tabs.on_change("active", algorithm_tabs_callback) + algorithm_params.on_change("active", algorithm_tabs_callback) def process_button_callback(): with tempfile.TemporaryDirectory() as temp_dir: @@ -369,34 +359,31 @@ def create(): process_button = Button(label="Process", button_type="primary") process_button.on_click(process_button_callback) - output_log = TextAreaInput(title="Logfile output:", height=600, disabled=True) - output_config = TextAreaInput(title="Current config:", height=600, width=400, disabled=True) + output_log = TextAreaInput(title="Logfile output:", height=320, width=465, disabled=True) + output_config = TextAreaInput(title="Current config:", height=320, width=465, disabled=True) general_params_layout = column( + row(column(Spacer(height=2), upload_div), upload_button), row(logfile_textinput, logfile_verbosity_select), row(filelist_type, filelist_format_textinput), filelist_datapath_textinput, filelist_ranges_textareainput, - crystal_sample_textinput, - row(lambda_textinput, zeroOM_textinput), - row(zeroSTT_textinput, zeroCHI_textinput), + row(crystal_sample_textinput, lambda_textinput), ub_textareainput, + row(zeroOM_textinput, zeroSTT_textinput, zeroCHI_textinput), row( dataFactory_implementation_select, dataFactory_dist1_textinput, dataFactory_dist2_textinput, dataFactory_dist3_textinput, ), - reflectionPrinter_format_select, + row(reflectionPrinter_format_select), ) - tab_layout = column( - row(column(Spacer(height=2), upload_div), upload_button), - row( - general_params_layout, - algorithm_tabs, - column(row(output_config, output_log), row(process_button)), - ), + tab_layout = row( + general_params_layout, + column(output_config, algorithm_params, row(process_button)), + output_log, ) async def update_config(): diff --git a/pyzebra/app/panel_hdf_viewer.py b/pyzebra/app/panel_hdf_viewer.py index dd4e702..97ec5dc 100644 --- a/pyzebra/app/panel_hdf_viewer.py +++ b/pyzebra/app/panel_hdf_viewer.py @@ -59,7 +59,7 @@ def create(): filelist.options = file_list filelist.value = file_list[0][0] - proposal_textinput = TextInput(title="Enter proposal number:", default_size=145) + proposal_textinput = TextInput(title="Enter proposal number:", width=145) proposal_textinput.on_change("value", proposal_textinput_callback) def upload_button_callback(_attr, _old, new): @@ -176,7 +176,7 @@ def create(): def index_spinner_callback(_attr, _old, new): update_image(new) - index_spinner = Spinner(title="Image index:", value=0, low=0) + index_spinner = Spinner(title="Image index:", value=0, low=0, width=80) index_spinner.on_change("value", index_spinner_callback) plot = Plot( @@ -429,7 +429,7 @@ def create(): overview_plot_x_image_glyph.color_mapper = LinearColorMapper(palette=cmap_dict[new]) overview_plot_y_image_glyph.color_mapper = LinearColorMapper(palette=cmap_dict[new]) - colormap = Select(title="Colormap:", options=list(cmap_dict.keys()), default_size=145) + colormap = Select(title="Colormap:", options=list(cmap_dict.keys()), width=210) colormap.on_change("value", colormap_callback) colormap.value = "plasma" @@ -446,7 +446,7 @@ def create(): update_image() main_auto_checkbox = CheckboxGroup( - labels=["Main Auto Range"], active=[0], default_size=145, margin=[10, 5, 0, 5] + labels=["Main Auto Range"], active=[0], width=145, margin=[10, 5, 0, 5] ) main_auto_checkbox.on_click(main_auto_checkbox_callback) @@ -459,7 +459,7 @@ def create(): value=1, step=STEP, disabled=bool(main_auto_checkbox.active), - default_size=95, + width=100, height=31, ) display_max_spinner.on_change("value", display_max_spinner_callback) @@ -474,7 +474,7 @@ def create(): value=0, step=STEP, disabled=bool(main_auto_checkbox.active), - default_size=95, + width=100, height=31, ) display_min_spinner.on_change("value", display_min_spinner_callback) @@ -492,7 +492,7 @@ def create(): update_overview_plot() proj_auto_checkbox = CheckboxGroup( - labels=["Projections Auto Range"], active=[0], default_size=145, margin=[10, 5, 0, 5] + labels=["Projections Auto Range"], active=[0], width=145, margin=[10, 5, 0, 5] ) proj_auto_checkbox.on_click(proj_auto_checkbox_callback) @@ -506,7 +506,7 @@ def create(): value=1, step=PROJ_STEP, disabled=bool(proj_auto_checkbox.active), - default_size=95, + width=100, height=31, ) proj_display_max_spinner.on_change("value", proj_display_max_spinner_callback) @@ -522,7 +522,7 @@ def create(): value=0, step=PROJ_STEP, disabled=bool(proj_auto_checkbox.active), - default_size=95, + width=100, height=31, ) proj_display_min_spinner.on_change("value", proj_display_min_spinner_callback) @@ -532,7 +532,7 @@ def create(): h, k, l = calculate_hkl(det_data, index) image_source.data.update(h=[h], k=[k], l=[l]) - hkl_button = Button(label="Calculate hkl (slow)") + hkl_button = Button(label="Calculate hkl (slow)", width=210) hkl_button.on_click(hkl_button_callback) selection_list = TextAreaInput(rows=7) @@ -559,9 +559,9 @@ def create(): selection_button = Button(label="Add selection") selection_button.on_click(selection_button_callback) - mf_spinner = Spinner(title="Magnetic field:", format="0.00", width=145, disabled=True) - temp_spinner = Spinner(title="Temperature:", format="0.00", width=145, disabled=True) - geometry_textinput = TextInput(title="Geometry:", disabled=True) + mf_spinner = Spinner(title="Magnetic field:", format="0.00", width=100, disabled=True) + temp_spinner = Spinner(title="Temperature:", format="0.00", width=100, disabled=True) + geometry_textinput = TextInput(title="Geometry:", width=120, disabled=True) # Final layout layout_image = column(gridplot([[proj_v, None], [plot, proj_h]], merge_tools=False)) @@ -572,15 +572,13 @@ def create(): proj_auto_checkbox, row(proj_display_min_spinner, proj_display_max_spinner), ) - hkl_layout = column(geometry_textinput, hkl_button) - params_layout = row(mf_spinner, temp_spinner) layout_controls = row( column(selection_button, selection_list), Spacer(width=20), column(colormap_layout), Spacer(width=20), - column(index_spinner, params_layout, hkl_layout), + column(row(mf_spinner, temp_spinner), row(geometry_textinput, index_spinner), hkl_button), ) layout_overview = column( diff --git a/pyzebra/app/panel_param_study.py b/pyzebra/app/panel_param_study.py index b4774ec..8329c87 100644 --- a/pyzebra/app/panel_param_study.py +++ b/pyzebra/app/panel_param_study.py @@ -87,7 +87,7 @@ def create(): dat_file_list.append((os.path.join(full_proposal_path, file), file)) file_select.options = dat_file_list - proposal_textinput = TextInput(title="Proposal number:", default_size=200) + proposal_textinput = TextInput(title="Proposal number:", width=210) proposal_textinput.on_change("value", proposal_textinput_callback) def _init_datatable(): @@ -111,7 +111,7 @@ def create(): def file_select_callback(_attr, _old, _new): pass - file_select = MultiSelect(title="Available .dat files:", default_size=200, height=250) + file_select = MultiSelect(title="Available .dat files:", width=210, height=250) file_select.on_change("value", file_select_callback) def file_open_button_callback(): @@ -132,7 +132,7 @@ def create(): _init_datatable() _update_preview() - file_open_button = Button(label="Open New", default_size=100) + file_open_button = Button(label="Open New", width=100) file_open_button.on_click(file_open_button_callback) def file_append_button_callback(): @@ -146,7 +146,7 @@ def create(): _init_datatable() - file_append_button = Button(label="Append", default_size=100) + file_append_button = Button(label="Append", width=100) file_append_button.on_click(file_append_button_callback) def upload_button_callback(_attr, _old, new): @@ -168,7 +168,7 @@ def create(): _update_preview() upload_div = Div(text="or upload new .dat files:", margin=(5, 5, 0, 5)) - upload_button = FileInput(accept=".dat", multiple=True, default_size=200) + upload_button = FileInput(accept=".dat", multiple=True, width=200) upload_button.on_change("value", upload_button_callback) def append_upload_button_callback(_attr, _old, new): @@ -183,7 +183,7 @@ def create(): _init_datatable() append_upload_div = Div(text="append extra files:", margin=(5, 5, 0, 5)) - append_upload_button = FileInput(accept=".dat", multiple=True, default_size=200) + append_upload_button = FileInput(accept=".dat", multiple=True, width=200) append_upload_button.on_change("value", append_upload_button_callback) def monitor_spinner_callback(_attr, _old, new): @@ -429,20 +429,20 @@ def create(): title="Parameter:", options=["user defined", "temp", "mf", "h", "k", "l"], value="user defined", - default_size=145, + width=145, ) param_select.on_change("value", param_select_callback) def fit_from_spinner_callback(_attr, _old, new): fit_from_span.location = new - fit_from_spinner = Spinner(title="Fit from:", default_size=145) + fit_from_spinner = Spinner(title="Fit from:", width=145) fit_from_spinner.on_change("value", fit_from_spinner_callback) def fit_to_spinner_callback(_attr, _old, new): fit_to_span.location = new - fit_to_spinner = Spinner(title="to:", default_size=145) + fit_to_spinner = Spinner(title="to:", width=145) fit_to_spinner.on_change("value", fit_to_spinner_callback) def fitparams_add_dropdown_callback(click): @@ -461,7 +461,7 @@ def create(): ("Pseudo Voigt", "pvoigt"), # ("Pseudo Voigt1", "pseudovoigt1"), ], - default_size=145, + width=145, ) fitparams_add_dropdown.on_click(fitparams_add_dropdown_callback) @@ -481,7 +481,7 @@ def create(): else: fitparams_table_source.data.update(dict(param=[], value=[], vary=[], min=[], max=[])) - fitparams_select = MultiSelect(options=[], height=120, default_size=145) + fitparams_select = MultiSelect(options=[], height=120, width=145) fitparams_select.tags = [0] fitparams_select.on_change("value", fitparams_select_callback) @@ -496,7 +496,7 @@ def create(): fitparams_select.value = [] - fitparams_remove_button = Button(label="Remove fit function", default_size=145) + fitparams_remove_button = Button(label="Remove fit function", width=145) fitparams_remove_button.on_click(fitparams_remove_button_callback) def fitparams_factory(function): @@ -559,7 +559,7 @@ def create(): _update_table() _update_preview() - fit_all_button = Button(label="Fit All", button_type="primary", default_size=145) + fit_all_button = Button(label="Fit All", button_type="primary", width=145) fit_all_button.on_click(fit_all_button_callback) def fit_button_callback(): @@ -572,23 +572,21 @@ def create(): _update_table() _update_preview() - fit_button = Button(label="Fit Current", default_size=145) + fit_button = Button(label="Fit Current", width=145) fit_button.on_click(fit_button_callback) def area_method_radiobutton_callback(_handler): _update_preview() area_method_radiobutton = RadioButtonGroup( - labels=["Fit area", "Int area"], active=0, default_size=145, disabled=True + labels=["Fit area", "Int area"], active=0, width=145, disabled=True ) area_method_radiobutton.on_click(area_method_radiobutton_callback) def lorentz_checkbox_callback(_handler): _update_preview() - lorentz_checkbox = CheckboxGroup( - labels=["Lorentz Correction"], default_size=145, margin=[13, 5, 5, 5] - ) + lorentz_checkbox = CheckboxGroup(labels=["Lorentz Correction"], width=145, margin=[13, 5, 5, 5]) lorentz_checkbox.on_click(lorentz_checkbox_callback) export_preview_textinput = TextAreaInput(title="Export file preview:", width=450, height=400) @@ -623,7 +621,7 @@ def create(): js_data.data.update(content=file_content) export_preview_textinput.value = exported_content - save_button = Button(label="Download File", button_type="success", default_size=220) + save_button = Button(label="Download File", button_type="success", width=220) save_button.js_on_click(CustomJS(args={"js_data": js_data}, code=javaScript)) fitpeak_controls = row( diff --git a/pyzebra/app/panel_spind.py b/pyzebra/app/panel_spind.py index b00c48a..b83d3f5 100644 --- a/pyzebra/app/panel_spind.py +++ b/pyzebra/app/panel_spind.py @@ -28,11 +28,11 @@ def create(): lattice_const_textinput = TextInput( title="Lattice constants:", value="8.3211,8.3211,8.3211,90.00,90.00,90.00" ) - max_res_spinner = Spinner(title="max-res", value=2, step=0.01) - seed_pool_size_spinner = Spinner(title="seed-pool-size", value=5, step=0.01) - seed_len_tol_spinner = Spinner(title="seed-len-tol", value=0.02, step=0.01) - seed_angle_tol_spinner = Spinner(title="seed-angle-tol", value=1, step=0.01) - eval_hkl_tol_spinner = Spinner(title="eval-hkl-tol", value=0.15, step=0.01) + max_res_spinner = Spinner(title="max-res:", value=2, step=0.01, width=145) + seed_pool_size_spinner = Spinner(title="seed-pool-size:", value=5, step=0.01, width=145) + seed_len_tol_spinner = Spinner(title="seed-len-tol:", value=0.02, step=0.01, width=145) + seed_angle_tol_spinner = Spinner(title="seed-angle-tol:", value=1, step=0.01, width=145) + eval_hkl_tol_spinner = Spinner(title="eval-hkl-tol:", value=0.15, step=0.01, width=145) diff_vec = [] ub_matrices = [] @@ -172,11 +172,9 @@ def create(): path_prefix_textinput, selection_list, lattice_const_textinput, - max_res_spinner, - seed_pool_size_spinner, - seed_len_tol_spinner, - seed_angle_tol_spinner, - eval_hkl_tol_spinner, + row(max_res_spinner, seed_pool_size_spinner), + row(seed_len_tol_spinner, seed_angle_tol_spinner), + row(eval_hkl_tol_spinner), process_button, ), column(results_table, row(ub_matrix_textareainput, hkl_textareainput)),