Añade función as_any() en componentes

This commit is contained in:
Manuel Cillero 2022-04-23 21:55:37 +02:00
parent 98a0773fb5
commit 0220020f4f
14 changed files with 56 additions and 2 deletions

View file

@ -46,6 +46,10 @@ impl PageComponent for Block {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -29,6 +29,10 @@ impl PageComponent for Chunck {
html! { (*self.html()) }
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -73,6 +73,10 @@ impl PageComponent for Container {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -66,6 +66,10 @@ impl PageComponent for Button {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -85,6 +85,10 @@ impl PageComponent for Date {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -55,6 +55,10 @@ impl PageComponent for Form {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -29,6 +29,10 @@ impl PageComponent for Hidden {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -113,6 +113,10 @@ impl PageComponent for Input {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -41,6 +41,10 @@ impl PageComponent for Column {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -41,6 +41,10 @@ impl PageComponent for Row {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -38,6 +38,10 @@ impl PageComponent for Image {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -68,6 +68,10 @@ impl PageComponent for MenuItem {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}
@ -222,6 +226,10 @@ impl PageComponent for Menu {
}
}
fn as_any(&mut self) -> &dyn AnyComponent {
self
}
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
self
}

View file

@ -42,5 +42,7 @@ pub trait PageComponent: AnyComponent + Send + Sync {
html! {}
}
fn as_any(&mut self) -> &dyn AnyComponent;
fn as_mut_any(&mut self) -> &mut dyn AnyComponent;
}

View file

@ -85,7 +85,7 @@ pub trait ThemeTrait: Send + Sync {
match component.name() {
"Block" => {
let block = component.downcast_mut::<Block>().unwrap();
let block = component.as_mut_any().downcast_mut::<Block>().unwrap();
block.alter_title("New title");
},
_ => {},
@ -105,7 +105,7 @@ pub trait ThemeTrait: Send + Sync {
match component.name() {
"Block" => {
let block = component.downcast_ref::<Block>().unwrap();
let block = component.as_any().downcast_ref::<Block>().unwrap();
match block.template() {
"default" => Some(block_default(block)),
_ => None,