|
@@ -5,6 +5,18 @@ import { Observer } from "rxjs/Observer";
|
|
|
|
|
|
import { EventsManager } from "../base/events/event-manager";
|
|
import { EventsManager } from "../base/events/event-manager";
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ *
|
|
|
|
+ * ██████╗ █████╗ ███████╗███████╗██╗ ██╗███████╗████████╗██╗ ██╗██╗███████╗██╗ ██╗
|
|
|
|
+ * ██╔══██╗██╔══██╗██╔════╝██╔════╝██║ ██║██╔════╝╚══██╔══╝██║ ██║██║██╔════╝██║ ██║
|
|
|
|
+ * ██████╔╝███████║███████╗█████╗ ██║ ██║███████╗ ██║ ██║ ██║██║█████╗ ██║ █╗ ██║
|
|
|
|
+ * ██╔══██╗██╔══██║╚════██║██╔══╝ ██║ ██║╚════██║ ██║ ╚██╗ ██╔╝██║██╔══╝ ██║███╗██║
|
|
|
|
+ * ██████╔╝██║ ██║███████║███████╗███████╗██║███████║ ██║ ╚████╔╝ ██║███████╗╚███╔███╔╝
|
|
|
|
+ * ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚══════╝ ╚══╝╚══╝
|
|
|
|
+ *
|
|
|
|
+ * Clase que reúne todas la capacidades para mostrar e interactuar con una vista de lista.
|
|
|
|
+ *
|
|
|
|
+ */
|
|
export abstract class BaseListView<T> extends BaseView<T>{
|
|
export abstract class BaseListView<T> extends BaseView<T>{
|
|
|
|
|
|
items: T[];
|
|
items: T[];
|
|
@@ -29,9 +41,14 @@ export abstract class BaseListView<T> extends BaseView<T>{
|
|
this.initialize();
|
|
this.initialize();
|
|
}
|
|
}
|
|
|
|
|
|
- //-------------------------------------------------------------------------------
|
|
|
|
- // BEGIN GETTERS AND SETTERS |
|
|
|
|
- //-------------------------------------------------------------------------------
|
|
|
|
|
|
+ // ------------------------------------------------------------
|
|
|
|
+ // ██████╗ ███████╗████████╗████████╗███████╗██████╗ ███████╗
|
|
|
|
+ // ██╔════╝ ██╔════╝╚══██╔══╝╚══██╔══╝██╔════╝██╔══██╗██╔════╝
|
|
|
|
+ // ██║ ███╗█████╗ ██║ ██║ █████╗ ██████╔╝███████╗
|
|
|
|
+ // ██║ ██║██╔══╝ ██║ ██║ ██╔══╝ ██╔══██╗╚════██║
|
|
|
|
+ // ╚██████╔╝███████╗ ██║ ██║ ███████╗██║ ██║███████║
|
|
|
|
+ // ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝
|
|
|
|
+ // ------------------------------------------------------------
|
|
|
|
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
@@ -39,66 +56,85 @@ export abstract class BaseListView<T> extends BaseView<T>{
|
|
getItems(): T[] {
|
|
getItems(): T[] {
|
|
return this.items;
|
|
return this.items;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
- * @param items
|
|
|
|
*/
|
|
*/
|
|
- setItems(items: T[]): void {
|
|
|
|
- this.items = items;
|
|
|
|
- this.setItemsShown(this.getItems().slice(this.getRange().start, this.getRange().end));
|
|
|
|
|
|
+ getItemsShown(): T[] {
|
|
|
|
+ return this.itemsShown;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
*/
|
|
*/
|
|
- getItemsShown(): T[] {
|
|
|
|
- return this.itemsShown;
|
|
|
|
|
|
+ getItemsMatched(): T[] {
|
|
|
|
+ return this.itemsMatched;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
- * @param itemsShown
|
|
|
|
*/
|
|
*/
|
|
- setItemsShown(itemsShown: T[]): void {
|
|
|
|
- this.itemsShown = itemsShown;
|
|
|
|
- }
|
|
|
|
|
|
+ getSelectedItem(): T {
|
|
|
|
+ return this.selectedItem;
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
*/
|
|
*/
|
|
- getItemsMatched(): T[] {
|
|
|
|
- return this.itemsMatched;
|
|
|
|
|
|
+ getFilters(): Array<[string, string, any]> {
|
|
|
|
+ return this.filters;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
- * @param itemsMatched
|
|
|
|
*/
|
|
*/
|
|
- setItemsMatched(itemsMatched: T[]): void {
|
|
|
|
- this.itemsMatched = itemsMatched;
|
|
|
|
|
|
+ getRange(): { start: number, end: number } {
|
|
|
|
+ return this.range;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ // -----------------------------------------------------------
|
|
|
|
+ // ███████╗███████╗████████╗████████╗███████╗██████╗ ███████╗
|
|
|
|
+ // ██╔════╝██╔════╝╚══██╔══╝╚══██╔══╝██╔════╝██╔══██╗██╔════╝
|
|
|
|
+ // ███████╗█████╗ ██║ ██║ █████╗ ██████╔╝███████╗
|
|
|
|
+ // ╚════██║██╔══╝ ██║ ██║ ██╔══╝ ██╔══██╗╚════██║
|
|
|
|
+ // ███████║███████╗ ██║ ██║ ███████╗██║ ██║███████║
|
|
|
|
+ // ╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝
|
|
|
|
+ // -----------------------------------------------------------
|
|
|
|
+
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
- * @param item
|
|
|
|
|
|
+ * @param items
|
|
*/
|
|
*/
|
|
- setSelectedItem(item: T): void {
|
|
|
|
- this.selectedItem = item;
|
|
|
|
|
|
+ setItems(items: T[]): void {
|
|
|
|
+ this.items = items;
|
|
|
|
+ this.setItemsShown(this.getItems().slice(this.getRange().start, this.getRange().end));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
|
|
+ * @param itemsShown
|
|
*/
|
|
*/
|
|
- getSelectedItem(): T {
|
|
|
|
- return this.selectedItem;
|
|
|
|
|
|
+ setItemsShown(itemsShown: T[]): void {
|
|
|
|
+ this.itemsShown = itemsShown;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *
|
|
|
|
+ * @param itemsMatched
|
|
|
|
+ */
|
|
|
|
+ setItemsMatched(itemsMatched: T[]): void {
|
|
|
|
+ this.itemsMatched = itemsMatched;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
|
|
+ * @param item
|
|
*/
|
|
*/
|
|
- getFilters(): Array<[string, string, any]> {
|
|
|
|
- return this.filters;
|
|
|
|
|
|
+ setSelectedItem(item: T): void {
|
|
|
|
+ this.selectedItem = item;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -126,13 +162,6 @@ export abstract class BaseListView<T> extends BaseView<T>{
|
|
this.search = search;
|
|
this.search = search;
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- *
|
|
|
|
- */
|
|
|
|
- getRange(): { start: number, end: number } {
|
|
|
|
- return this.range;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
* @param range
|
|
* @param range
|
|
@@ -141,8 +170,15 @@ export abstract class BaseListView<T> extends BaseView<T>{
|
|
this.range = range;
|
|
this.range = range;
|
|
}
|
|
}
|
|
|
|
|
|
- // ------------------------------- SPECIAL GETTERS -------------------------------
|
|
|
|
-
|
|
|
|
|
|
+ // -------------------------------------------------------------------------------------------------------------------
|
|
|
|
+ // ███████╗██████╗ ███████╗ ██████╗██╗ █████╗ ██╗ ██████╗ ███████╗████████╗████████╗███████╗██████╗ ███████╗
|
|
|
|
+ // ██╔════╝██╔══██╗██╔════╝██╔════╝██║██╔══██╗██║ ██╔════╝ ██╔════╝╚══██╔══╝╚══██╔══╝██╔════╝██╔══██╗██╔════╝
|
|
|
|
+ // ███████╗██████╔╝█████╗ ██║ ██║███████║██║ ██║ ███╗█████╗ ██║ ██║ █████╗ ██████╔╝███████╗
|
|
|
|
+ // ╚════██║██╔═══╝ ██╔══╝ ██║ ██║██╔══██║██║ ██║ ██║██╔══╝ ██║ ██║ ██╔══╝ ██╔══██╗╚════██║
|
|
|
|
+ // ███████║██║ ███████╗╚██████╗██║██║ ██║███████╗ ╚██████╔╝███████╗ ██║ ██║ ███████╗██║ ██║███████║
|
|
|
|
+ // ╚══════╝╚═╝ ╚══════╝ ╚═════╝╚═╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝
|
|
|
|
+ // -------------------------------------------------------------------------------------------------------------------
|
|
|
|
+
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
*/
|
|
*/
|
|
@@ -211,8 +247,15 @@ export abstract class BaseListView<T> extends BaseView<T>{
|
|
return this.getItemsMatched().indexOf(this.getSelectedItem());
|
|
return this.getItemsMatched().indexOf(this.getSelectedItem());
|
|
}
|
|
}
|
|
|
|
|
|
- // ---------------------------- SPECIAL SETTERS -----------------------------
|
|
|
|
-
|
|
|
|
|
|
+ // ------------------------------------------------------------------------------------------------------------------
|
|
|
|
+ // ███████╗██████╗ ███████╗ ██████╗██╗ █████╗ ██╗ ███████╗███████╗████████╗████████╗███████╗██████╗ ███████╗
|
|
|
|
+ // ██╔════╝██╔══██╗██╔════╝██╔════╝██║██╔══██╗██║ ██╔════╝██╔════╝╚══██╔══╝╚══██╔══╝██╔════╝██╔══██╗██╔════╝
|
|
|
|
+ // ███████╗██████╔╝█████╗ ██║ ██║███████║██║ ███████╗█████╗ ██║ ██║ █████╗ ██████╔╝███████╗
|
|
|
|
+ // ╚════██║██╔═══╝ ██╔══╝ ██║ ██║██╔══██║██║ ╚════██║██╔══╝ ██║ ██║ ██╔══╝ ██╔══██╗╚════██║
|
|
|
|
+ // ███████║██║ ███████╗╚██████╗██║██║ ██║███████╗ ███████║███████╗ ██║ ██║ ███████╗██║ ██║███████║
|
|
|
|
+ // ╚══════╝╚═╝ ╚══════╝ ╚═════╝╚═╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝
|
|
|
|
+ // ------------------------------------------------------------------------------------------------------------------
|
|
|
|
+
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
* @param start
|
|
* @param start
|
|
@@ -229,9 +272,14 @@ export abstract class BaseListView<T> extends BaseView<T>{
|
|
this.setRange({ start: this.getRange().start, end: end });
|
|
this.setRange({ start: this.getRange().start, end: end });
|
|
}
|
|
}
|
|
|
|
|
|
- //---------------------------------------------------------------------------
|
|
|
|
- // BEGIN SERVICES |
|
|
|
|
- //---------------------------------------------------------------------------
|
|
|
|
|
|
+ //---------------------------------------------------------------
|
|
|
|
+ // ███████╗███████╗██████╗ ██╗ ██╗██╗ ██████╗███████╗███████╗
|
|
|
|
+ // ██╔════╝██╔════╝██╔══██╗██║ ██║██║██╔════╝██╔════╝██╔════╝
|
|
|
|
+ // ███████╗█████╗ ██████╔╝██║ ██║██║██║ █████╗ ███████╗
|
|
|
|
+ // ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║██║ ██╔══╝ ╚════██║
|
|
|
|
+ // ███████║███████╗██║ ██║ ╚████╔╝ ██║╚██████╗███████╗███████║
|
|
|
|
+ // ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═════╝╚══════╝╚══════╝
|
|
|
|
+ //---------------------------------------------------------------
|
|
|
|
|
|
/**
|
|
/**
|
|
* Inicializa la lista.
|
|
* Inicializa la lista.
|