StingrayExplorer / explorer.py
kartikmandar's picture
add data ingestion feature
44c7452
raw
history blame
3.75 kB
import panel as pn
from modules.Home.HomeContent import (
create_home_header,
create_home_main_area,
create_home_output_box,
create_home_warning_box,
create_home_plots_area,
create_home_help_area,
create_home_footer
)
from utils.sidebar import create_sidebar
# Initialize panel extension
pn.extension()
# Create a boolean status indicator
busy_indicator = pn.indicators.BooleanStatus(
value=True, color="warning", width=30, height=30
)
# Create the header
header = create_home_header()
# Create the main area
main_area = create_home_main_area()
# Create the output box
output_box = create_home_output_box()
# Create the warning box
warning_box = create_home_warning_box()
# Create the plots container
bokeh_plots = create_home_plots_area()
# Create the help box
help_box = create_home_help_area()
# Create the footer
footer = create_home_footer()
# Containers for changing the layouts dynamically
header_container = pn.Column(header)
main_area_container = pn.Column(main_area)
output_box_container = pn.Column(output_box)
warning_box_container = pn.Column(warning_box)
bokeh_plots_container = pn.Column(bokeh_plots)
help_box_container = pn.Column(help_box)
footer_container = pn.Column(footer)
sidebar = create_sidebar(
main_area=main_area_container,
header=header_container,
footer=footer_container,
output_box=output_box_container,
warning_box=warning_box_container,
help_box=help_box_container,
)
# Create a FastGridTemplate layout
layout = pn.template.FastGridTemplate(
# Basic Panel layout components
main=[],
header="Next-Generation Spectral Timing Made Easy",
sidebar=[sidebar],
modal=True,
# Parameters for the FastGridTemplate
site="", # Not shown as already doing in title
site_url="StingrayExplorer",
logo="./assets/images/stingray_explorer.png",
title="Stingray Explorer",
favicon="./assets/images/stingray_explorer.png",
# sidebar_footer="Sidebar Footer",
# config= (TemplateConfig): Contains configuration options similar to pn.config but applied to the current Template only. (Currently only css_files is supported) But css_files are now deprecated.
busy_indicator=busy_indicator,
# For configuring the grid
cols={"lg": 12, "md": 12, "sm": 12, "xs": 4, "xxs": 2},
breakpoints={"lg": 1200, "md": 996, "sm": 768, "xs": 480, "xxs": 0},
row_height=10,
dimensions={"minW": 0, "maxW": float("inf"), "minH": 0, "maxH": float("inf")},
prevent_collision=False,
save_layout=True,
# Styling parameter
theme="default",
theme_toggle=False,
background_color="#FFFFFF",
neutral_color="#D3D3D3",
accent_base_color="#5ead61",
header_background="#000000",
header_color="#c4e1c5",
header_neutral_color="#D3D3D3",
header_accent_base_color="#c4e1c5",
corner_radius=7,
# font="",
# font_url="",
shadow=True,
main_layout="card",
# Layout parameters
collapsed_sidebar=False,
sidebar_width=250,
main_max_width="100%",
# Meta data
meta_description="Stingray Explorer Dashboard",
meta_keywords="Stingray, Explorer, Dashboard, Astronomy, Stingray Explorer, X-ray Astronomy, X-ray Data Analysis",
meta_author="Kartik Mandar",
meta_refresh="",
meta_viewport="width=device-width, initial-scale=1",
base_url="/",
base_target="_self",
)
layout.main[0:10, 0:12] = header_container
layout.main[10:45, 0:8] = main_area_container
layout.main[10:27, 8:12] = output_box_container
layout.main[27:45, 8:12] = warning_box_container
layout.main[45:85, 0:12] = bokeh_plots_container
layout.main[85:120, 0:12] = help_box_container
layout.main[120:150, 0:12] = footer_container
# Serve the layout
layout.servable()