PC styles nearly done
This commit is contained in:
parent
da9d0a1136
commit
79f7c4c16f
25 changed files with 221 additions and 208 deletions
|
|
@ -13,16 +13,16 @@ export abstract class PageElement {
|
|||
this.element = value;
|
||||
}
|
||||
|
||||
protected eventGenerator: PageElement;
|
||||
protected eventBroadcaster: PageElement;
|
||||
|
||||
protected constructor(private children: Array<PageElement> = []) {}
|
||||
|
||||
public giveEvent(event: PageEvent, parent: PageElement = null) {
|
||||
if (event.type === PageEventType.eventGeneratorChanged) {
|
||||
this.eventGenerator = event.data;
|
||||
public broadcastEvent(event: PageEvent, parent: PageElement = null) {
|
||||
if (event.type === PageEventType.eventBroadcasterChanged) {
|
||||
this.eventBroadcaster = event.data;
|
||||
}
|
||||
this.handleEvent(event, parent);
|
||||
this.children.forEach(c => c.giveEvent(event, this));
|
||||
this.children.forEach(c => c.broadcastEvent(event, this));
|
||||
}
|
||||
|
||||
protected query(query: string): HTMLElement | null {
|
||||
|
|
|
|||
|
|
@ -6,5 +6,5 @@ export class PageEvent {
|
|||
export enum PageEventType {
|
||||
onLoad,
|
||||
onBodyDimensionsChanged,
|
||||
eventGeneratorChanged
|
||||
eventBroadcasterChanged
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@ export class Page extends PageElement {
|
|||
) {
|
||||
super(children);
|
||||
this.setElement(rootElement);
|
||||
this.giveEvent(
|
||||
{ type: PageEventType.eventGeneratorChanged, data: this },
|
||||
this.broadcastEvent(
|
||||
{ type: PageEventType.eventBroadcasterChanged, data: this },
|
||||
this
|
||||
);
|
||||
rootElement.append(...children.map(e => e.getElement()).filter(e => e));
|
||||
this.giveEvent({ type: PageEventType.onLoad }, this);
|
||||
this.broadcastEvent({ type: PageEventType.onLoad }, this);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue