pub enum PerspectiveViewerMsg {
Show 42 variants
ColumnSettingsPanelAutoWidth(f64),
ToggleColumnSettingsPin,
ToggleColumnSettingsPinComplete(Sender<()>),
ColumnSettingsTabChanged(ColumnSettingsTab),
OpenColumnSettings {
target: Option<ColumnSettingsTarget>,
sender: Option<Sender<()>>,
toggle: bool,
},
PreloadFontsUpdate,
Reset(bool, Option<Completion>),
ResetPanel(Option<String>, bool, Option<Completion>),
Resize,
LayoutChanged,
SetActivePanel(String, Option<Completion>),
ClosePanel(String, Option<Completion>),
PanelClosed(String),
CommitWorkspaceRestore(String),
DuplicatePanel(String),
NewPanel(String),
NewPanelFrom {
client: String,
table: String,
},
ToggleMaster(String),
MasterContribution(String, Option<MasterSelection>),
RemoveGlobalFilter(usize),
ClearGlobalFilters,
TitlesChanged,
DividerMove(Divider, PaneTarget),
DividerPump(Divider),
DividerCommit(Divider, PaneTarget),
DividerFinish(Divider),
SettingsPanelTabChanged(SelectedTab),
SettingsPanelAutoWidth(f64),
ToggleDebug,
ToggleSettingsComplete(SettingsUpdate, Sender<()>),
ToggleSettingsInit(Option<SettingsUpdate>, bool, Option<Sender<ApiResult<JsValue>>>),
UpdateSession(Box<SessionProps>),
UpdateRenderer(Box<RendererProps>),
UpdatePresentation(Box<PresentationProps>),
UpdateSettingsOpen(bool),
UpdateIsWorkspace(bool),
UpdateColumnSettings(Box<OpenColumnSettings>),
UpdateColumnSettingsCommit(Sender<()>),
UpdateDragDrop(Box<DragDropProps>),
UpdateSessionStats(bool, Option<TableLoadState>),
UpdateGlobalFilters,
UpdateInFlight(u32),
}Variants§
ColumnSettingsPanelAutoWidth(f64)
ToggleColumnSettingsPin
ToggleColumnSettingsPinComplete(Sender<()>)
ColumnSettingsTabChanged(ColumnSettingsTab)
OpenColumnSettings
PreloadFontsUpdate
Reset(bool, Option<Completion>)
Element-level reset (the public reset() API): reset EVERY panel and
clear the cross-filter overlay, symmetric with
saveWorkspace/restoreWorkspace. The bool also clears
expressions/column settings.
ResetPanel(Option<String>, bool, Option<Completion>)
Reset ONLY the named panel — or the active panel when None — to its
default ViewerConfig (the toolbar Reset button, the context menu’s
“Reset” command, and the public resetPanel() API). The bool is
Reset’s expressions flag (toolbar shift-click); the Completion
resolves the resetPanel() promise after the reset’s run completes
(invariant I6).
Resize
LayoutChanged
The set of layout panels changed (added/removed); re-render so the
layout host reconciles its <regular-layout> cells.
SetActivePanel(String, Option<Completion>)
Make the named panel active: re-target the settings panel + status bar
(and the root’s session/renderer subscriptions) to its engines. The
Completion resolves setActivePanel() after the activation-chrome
nudge runs complete (invariant I6).
ClosePanel(String, Option<Completion>)
Close the named panel: remove it from the workspace now but keep its
engines parked until Self::PanelClosed reports the layout commit
that reclaims its cell. The Completion resolves removePanel()
after the eject’s teardown run completes (invariant I6) — carrying
any teardown error.
PanelClosed(String)
MainPanel saw the named panel leave the regular-layout tree, so
dispose its parked panel, or close outright one the workspace still
holds.
CommitWorkspaceRestore(String)
restoreWorkspace finished replacing the panel set in the
Workspace (new models inserted, old panels ejected, layout staged):
activate the named panel, re-subscribe the per-panel wiring, and
re-render — the SINGLE visible commit of the restore.
DuplicatePanel(String)
Duplicate the named panel: snapshot its config into a new independent panel appended to the layout.
NewPanel(String)
New panel: a fresh (default-config) panel bound to the named panel’s table (from the default client).
NewPanelFrom
New panel bound to the named Table on the named Client (the
context menu’s “New” sub-menu). The Client is resolved by name from
the Workspace loaded-clients registry.
ToggleMaster(String)
Toggle the named panel’s master/detail (filter-source) role.
MasterContribution(String, Option<MasterSelection>)
A master panel’s selection state, from EITHER host listener
(perspective-global-filter select/deselect or perspective-click):
Some REPLACES that panel’s global-filter contribution, None
(deselect) clears it. Non-master sources are ignored by the handler.
RemoveGlobalFilter(usize)
Remove the global filter at this index (GlobalFilterBar chip ×).
ClearGlobalFilters
Clear all global filters (GlobalFilterBar “Clear”).
TitlesChanged
Some panel’s title changed (any panel, via _title_subscriptions);
re-render so the tab titles refresh.
DividerMove(Divider, PaneTarget)
DividerPump(Divider)
DividerCommit(Divider, PaneTarget)
DividerFinish(Divider)
SettingsPanelTabChanged(SelectedTab)
SettingsPanelAutoWidth(f64)
ToggleDebug
ToggleSettingsComplete(SettingsUpdate, Sender<()>)
The toggle choreography’s INTERNAL completion leaf: flip the pane
and resolve on the render commit. Never send this to toggle
settings from outside settings.rs — it skips the presize/resize
sweep (the pane’s SplitPanel emits no before-resize and the
host box is unchanged, so nothing else resizes the plugins), which
leaves canvas plugins CSS-stretched at their old backing size. API
entry points send Self::ToggleSettingsInit.
ToggleSettingsInit(Option<SettingsUpdate>, bool, Option<Sender<ApiResult<JsValue>>>)
Toggle (or force) the settings pane with the FULL choreography:
presize every visible plugin to its post-toggle box, commit the
pane, then the exactness-finalizer resize. The Sender resolves
after the sweep. The one settings-toggle entry point for both the
toolbar and the element API (toggleConfig, restore({settings}),
restoreWorkspace).
The bool is announce: true when this toggle is the SOLE
carrier of the config change (a user gesture — toolbar,
toggleConfig), which emits toggle-settings + one
perspective-config-update; false for the restore family,
whose own view-config commit dispatch announces the settings field
— one API call, one config-update.
UpdateSession(Box<SessionProps>)
UpdateRenderer(Box<RendererProps>)
UpdatePresentation(Box<PresentationProps>)
UpdateSettingsOpen(bool)
Update only is_settings_open in the presentation snapshot without
touching available_themes (which requires async data).
UpdateIsWorkspace(bool)
UpdateColumnSettings(Box<OpenColumnSettings>)
Update only open_column_settings in the presentation snapshot.
Handled in settings.rs (not snapshots.rs): a docked-drawer
mount/unmount defers the snapshot behind a presize sweep.
UpdateColumnSettingsCommit(Sender<()>)
Every visible panel has rendered at its post-transition box — NOW
apply the newest deferred open_column_settings target (the
latest-wins slot, not a copy captured at sweep spawn); the Sender
resolves on the render commit so the staged presents reveal in the
same paint (mirrors ToggleSettingsComplete).
UpdateDragDrop(Box<DragDropProps>)
UpdateSessionStats(bool, Option<TableLoadState>)
Update only the stats-derived fields of session_props
(has_table_cells, has_table) without touching config. This
prevents stats_changed events (e.g. from reset()) from propagating
a freshly-cleared config to the column selector.
UpdateGlobalFilters
Refresh the root’s render snapshot of the Workspace-owned global
filter set (dispatched by its filters_changed PubSub).
UpdateInFlight(u32)
The active panel’s in-flight config-run count changed. LEVEL-
triggered: the payload is the ABSOLUTE count (RAII-settled — see
Session::begin_config_run), which the handler ASSIGNS to
update_count; there is no delta arithmetic to drift. Threaded to
StatusIndicator as the “updating” spinner.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for PerspectiveViewerMsg
impl !Send for PerspectiveViewerMsg
impl !Sync for PerspectiveViewerMsg
impl !UnwindSafe for PerspectiveViewerMsg
impl Freeze for PerspectiveViewerMsg
impl Unpin for PerspectiveViewerMsg
impl UnsafeUnpin for PerspectiveViewerMsg
Blanket Implementations§
impl<Token, Builder, How> AllPropsFor<Builder, How> for Tokenwhere
Builder: Buildable<Token>,
<Builder as Buildable<Token>>::WrappedToken: HasAllProps<<Builder as Buildable<Token>>::Output, How>,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> HasAllProps<(), T> for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoPropValue<Option<T>> for T
impl<T> IntoPropValue<Option<T>> for T
Source§fn into_prop_value(self) -> Option<T>
fn into_prop_value(self) -> Option<T>
self to a value of a Properties struct.Source§impl<T> IntoPropValue<T> for T
impl<T> IntoPropValue<T> for T
Source§fn into_prop_value(self) -> T
fn into_prop_value(self) -> T
self to a value of a Properties struct.