123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import { IListable } from '../interfaces/listable-interface';
- export abstract class DefaultListable<T> implements IListable<T> {
- private isForSearch: boolean;
- private isForDelete: boolean;
- private _elements: Array<T>;
- private _selectedIndex: number;
- constructor(
- ) {
- this.isForSearch = false;
- this.isForDelete = false;
- this._elements = [];
- this._selectedIndex = -1;
- }
- /**
- *
- */
- set elements(_elements: Array<T>) {
- this._elements = _elements;
- }
- /**
- *
- */
- set selectedIndex(_selectedIndex: number) {
- this._selectedIndex = _selectedIndex;
- }
- /**
- *
- */
- get elements() {
- return this._elements;
- }
- /**
- *
- */
- get selectedIndex(): number {
- return this._selectedIndex;
- }
- /**
- *
- */
- add(T: any): void {
- this._elements.push(T);
- }
- /**
- *
- */
- remove(T: any): void {
- let index = this.elements.indexOf(T);
- this._elements.slice(index, 1);
- }
- /**
- *
- */
- get(T: any): T {
- let index = this.elements.indexOf(T);
- return this._elements[index];
- }
- /**
- *
- */
- list(): Array<T> {
- return this._elements;
- }
- /**
- *
- */
- search(by: string): Array<T> {
- return null;
- }
- /**
- *
- */
- toggleSearch(): void {
- this.isForSearch = !this.isForSearch;
- }
- /**
- *
- */
- toggleDelete(index: number): void {
- this.selectedIndex = index;
- if (this.selectedIndex != -1) {
- this.isForDelete = true;
- } else {
- this.isForDelete = !this.isForDelete;
- }
- }
- /**
- *
- */
- isSearching(): boolean {
- return this.isForSearch;
- }
- /**
- *
- */
- isDeleting(): boolean {
- return this.isForDelete;
- }
- }
|