Skip to main content

PlotController

Struct PlotController 

Source
pub struct PlotController {
    pub model: PlotModel,
    pub undo_stack: Vec<Command>,
    pub redo_stack: Vec<Command>,
    /* private fields */
}
Expand description

EN: Main MVC controller. Owns model, data table, command history and notifications. RU: Glavnyy MVC-kontroller. Hranit model, tablitsu dannyh, istoriyu komand i uvedomleniya.

Fields§

§model: PlotModel§undo_stack: Vec<Command>§redo_stack: Vec<Command>

Implementations§

Source§

impl PlotController

Source

pub fn new() -> Self

EN: Empty initial state; data is loaded via File menu. RU: Pustoe nachalnoe sostoyanie; dannye zagruzhayutsya cherez File menu.

Source

pub fn notification(&self) -> Option<&Notification>

Returns latest notification for status banner.

Source

pub fn available_columns(&self) -> Vec<String>

Returns names of all loaded numeric columns.

Source

pub fn has_data(&self) -> bool

Indicates whether any dataset has been loaded.

Source

pub fn load_from_data_source( &mut self, source: &dyn DataSource, ) -> Result<(), ControllerError>

EN: Public API for embedding editor in another crate. RU: Public API dlya vstraivaniya redaktora v drugoy crate.

Examples found in repository?
examples/host_app.rs (line 54)
44fn main() -> Result<(), eframe::Error> {
45    let source = HostDataSource::demo();
46    let native_options = eframe::NativeOptions::default();
47    eframe::run_native(
48        "Host App + Embedded Plot Redactor",
49        native_options,
50        Box::new(move |cc| {
51            cc.egui_ctx.set_visuals(eframe::egui::Visuals::light());
52            let mut app = PlotEditorApp::new();
53            app.controller_mut()
54                .load_from_data_source(&source)
55                .expect("failed to load host data source");
56            Ok(Box::new(app))
57        }),
58    )
59}
More examples
Hide additional examples
examples/host_app2.rs (line 54)
44fn main() -> Result<(), eframe::Error> {
45    let source = HostDataSource::demo();
46    let native_options = eframe::NativeOptions::default();
47    eframe::run_native(
48        "Host App + Embedded Plot Redactor",
49        native_options,
50        Box::new(move |cc| {
51            cc.egui_ctx.set_visuals(eframe::egui::Visuals::light());
52            let mut app = PlotEditorApp::new();
53            app.controller_mut()
54                .load_from_data_source(&source)
55                .expect("failed to load host data source");
56            Ok(Box::new(app))
57        }),
58    )
59}
Source

pub fn points_for_series( &self, series_id: SeriesId, ) -> Result<Vec<(f32, f32)>, ControllerError>

Returns currently selected (x, y) points for a series.

Source

pub fn dispatch(&mut self, action: Action) -> Result<(), ControllerError>

Main action dispatcher invoked from the view each frame.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more