/*
* Copyright (c) 2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import ZonesItem from './ZonesItem';
class ZonesViewModel {
getZonesList(): ZonesItem[] {
return defaultList;
}
getZonesByIndex(index: number): ZonesItem {
return defaultList[index];
}
getZonesListId(): number[] {
let zonesListId: number[] = defaultList.map(item => item.id);
return zonesListId;
}
getZonesListThumbnail(): ResourceStr[] {
let zonesListThumbnail: ResourceStr[] = defaultList.map(item => item.thumbnail);
return zonesListThumbnail;
}
}
let zonesViewModel = new ZonesViewModel();
export default zonesViewModel as ZonesViewModel;
const defaultList: ZonesItem[] = [
{
id: 0,
title: $r('app.string.area_name_a'),
subTitle: $r('app.string.area_sub_name_a'),
thumbnail: $r('app.media.ic_thumbnail_a'),
swiperPic: $r('app.media.ic_A'),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_a'),
$r('app.string.introduction_paragraph_second_a')],
subPicTop: $r('app.media.ic_A_photo_top'),
subPicBottom: $r('app.media.ic_A_photo_bottom'),
titleIcon: $r('app.media.ic_title_top_A'),
imageList: [$r('app.media.ic_A_1'), $r('app.media.ic_A_2'), $r('app.media.ic_A_3'), $r('app.media.ic_A_4'),
$r('app.media.ic_A_5')],
buildingInformation: $r('app.string.build_information_a'),
buildingPic: $r("app.media.ic_building_A"),
geographyPic: $r("app.media.ic_geography_dark_A"),
geographyPicLight: $r("app.media.ic_geography_lighter_A"),
backgroundColor: $r('app.color.introduction_page_green'),
starLinePic: [$r("app.media.ic_starLine_A_light"), $r("app.media.ic_starLine_A_dark")]
},
{
id: 1,
title: $r('app.string.area_name_b'),
subTitle: $r('app.string.area_sub_name_b'),
thumbnail: $r('app.media.ic_thumbnail_b'),
swiperPic: $r('app.media.ic_B'),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_b'),
$r('app.string.introduction_paragraph_second_b')],
subPicTop: $r("app.media.ic_B_photo_top"),
subPicBottom: $r("app.media.ic_B_photo_bottom"),
titleIcon: $r('app.media.ic_title_top_B'),
imageList: [$r('app.media.ic_B_1'), $r('app.media.ic_B_2'), $r('app.media.ic_B_3'), $r('app.media.ic_B_4'),
$r('app.media.ic_B_5')],
buildingInformation: $r('app.string.build_information_b'),
buildingPic: $r('app.media.ic_building_G'),
geographyPic: $r("app.media.ic_geography_dark_B"),
geographyPicLight: $r("app.media.ic_geography_lighter_B"),
backgroundColor: $r('app.color.introduction_b_page_blue'),
starLinePic: [$r("app.media.ic_starLine_B_light"), $r("app.media.ic_starLine_B_dark")]
},
{
id: 2,
title: $r('app.string.area_name_c'),
subTitle: $r('app.string.area_sub_name_c'),
thumbnail: $r('app.media.ic_thumbnail_c'),
swiperPic: $r("app.media.ic_C"),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_c'),
$r('app.string.introduction_paragraph_second_c')],
subPicTop: $r("app.media.ic_C_photo_top"),
subPicBottom: $r("app.media.ic_C_photo_bottom"),
titleIcon: $r('app.media.ic_title_top_C'),
imageList: [$r('app.media.ic_C_1'), $r('app.media.ic_C_2'), $r('app.media.ic_C_3'), $r('app.media.ic_C_4'),
$r('app.media.ic_C_5')],
buildingInformation: $r('app.string.build_information_c'),
buildingPic: $r('app.media.ic_building_C'),
geographyPic: $r("app.media.ic_geography_dark_C"),
geographyPicLight: $r("app.media.ic_geography_lighter_C"),
backgroundColor: $r('app.color.introduction_c_page_blue'),
starLinePic: [$r("app.media.ic_starLine_C_light"), $r("app.media.ic_starLine_C_dark")]
},
{
id: 3,
title: $r('app.string.area_name_d'),
subTitle: $r('app.string.area_sub_name_d'),
thumbnail: $r('app.media.ic_thumbnail_d'),
swiperPic: $r("app.media.ic_D"),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_d'),
$r('app.string.introduction_paragraph_second_d')],
subPicTop: $r("app.media.ic_D_photo_top"),
subPicBottom: $r("app.media.ic_D_photo_bottom"),
titleIcon: $r('app.media.ic_title_top_D'),
imageList: [$r('app.media.ic_D_1'), $r('app.media.ic_D_2'), $r('app.media.ic_D_3'), $r('app.media.ic_D_4'),
$r('app.media.ic_D_5')],
buildingInformation: $r('app.string.build_information_d'),
buildingPic: $r('app.media.ic_building_D'),
geographyPic: $r("app.media.ic_geography_dark_D"),
geographyPicLight: $r("app.media.ic_geography_lighter_D"),
backgroundColor: $r('app.color.introduction_d_page_blue'),
starLinePic: [$r("app.media.ic_starLine_D_light"), $r("app.media.ic_starLine_D_dark")]
},
{
id: 4,
title: $r('app.string.area_name_e'),
subTitle: $r('app.string.area_sub_name_e'),
thumbnail: $r('app.media.ic_thumbnail_e'),
swiperPic: $r('app.media.ic_E'),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_e'),
$r('app.string.introduction_paragraph_second_e')],
subPicTop: $r('app.media.ic_E_photo_top'),
subPicBottom: $r('app.media.ic_E_photo_bottom'),
titleIcon: $r('app.media.ic_title_top_E'),
imageList: [$r('app.media.ic_E_1'), $r('app.media.ic_E_2'), $r('app.media.ic_E_3'), $r('app.media.ic_E_4'),
$r('app.media.ic_E_5')],
buildingInformation: $r('app.string.build_information_e'),
buildingPic: $r('app.media.ic_building_E'),
geographyPic: $r("app.media.ic_geography_dark_E"),
geographyPicLight: $r("app.media.ic_geography_lighter_E"),
backgroundColor: $r('app.color.introduction_page_orange_dark'),
starLinePic: [$r('app.media.ic_starLine_E_lighter'), $r('app.media.ic_starLine_E_dark')]
},
{
id: 5,
title: $r('app.string.area_name_f'),
subTitle: $r('app.string.area_sub_name_f'),
thumbnail: $r('app.media.ic_thumbnail_f'),
swiperPic: $r('app.media.ic_F'),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_f'),
$r('app.string.introduction_paragraph_second_f')],
subPicTop: $r('app.media.ic_F_photo_top'),
subPicBottom: $r('app.media.ic_F_photo_bottom'),
titleIcon: $r('app.media.ic_title_top_F'),
imageList: [$r('app.media.ic_F_1'), $r('app.media.ic_F_2'), $r('app.media.ic_F_3'), $r('app.media.ic_F_4'),
$r('app.media.ic_F_5')],
buildingInformation: $r('app.string.build_information_f'),
buildingPic: $r("app.media.ic_building_F"),
geographyPic: $r("app.media.ic_geography_lighter_F"),
geographyPicLight: $r("app.media.ic_geography_lighter_F"),
backgroundColor: $r('app.color.introduction_page_orange_light'),
starLinePic: [$r('app.media.ic_starLine_F_lighter'), $r('app.media.ic_starLine_F_dark')]
},
{
id: 6,
title: $r('app.string.area_name_g'),
subTitle: $r('app.string.area_sub_name_g'),
thumbnail: $r("app.media.ic_thumbnail_g"),
swiperPic: $r('app.media.ic_G'),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_g'),
$r('app.string.introduction_paragraph_second_g')],
subPicTop: $r('app.media.ic_G_photo_top'),
subPicBottom: $r("app.media.ic_G_photo_bottom"),
titleIcon: $r('app.media.ic_title_top_G'),
imageList: [$r('app.media.ic_G_1'), $r('app.media.ic_G_2'), $r('app.media.ic_G_3'), $r('app.media.ic_G_4'),
$r('app.media.ic_G_5')],
buildingInformation: $r('app.string.build_information_g'),
buildingPic: $r('app.media.ic_building_G'),
geographyPic: $r("app.media.ic_geography_dark_G"),
geographyPicLight: $r("app.media.ic_geography_lighter_G"),
backgroundColor: $r('app.color.introduction_page_blue'),
starLinePic: [$r('app.media.ic_starLine_G_light'), $r('app.media.ic_starLine_G_dark')]
},
{
id: 7,
title: $r('app.string.area_name_h'),
subTitle: $r('app.string.area_sub_name_h'),
thumbnail: $r('app.media.ic_thumbnail_h'),
swiperPic: $r('app.media.ic_H'),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_h'),
$r('app.string.introduction_paragraph_second_h')],
subPicTop: $r("app.media.ic_H_photo_top"),
subPicBottom: $r("app.media.ic_H_photo_bottom"),
titleIcon: $r('app.media.ic_title_top_H'),
imageList: [$r('app.media.ic_H_1'), $r('app.media.ic_H_2'), $r('app.media.ic_H_3'), $r('app.media.ic_H_4'),
$r('app.media.ic_H_5')],
buildingInformation: $r('app.string.build_information_h'),
buildingPic: $r('app.media.ic_building_H'),
geographyPic: $r("app.media.ic_geography_dark_H"),
geographyPicLight: $r("app.media.ic_geography_lighter_H"),
backgroundColor: $r('app.color.introduction_page_blue_light'),
starLinePic: [$r('app.media.ic_starLine_H_light'), $r('app.media.ic_starLine_H_dark')]
},
{
id: 8,
title: $r('app.string.area_name_j'),
subTitle: $r('app.string.area_sub_name_j'),
thumbnail: $r('app.media.ic_thumbnail_j'),
swiperPic: $r('app.media.ic_J'),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_j'),
$r('app.string.introduction_paragraph_second_j')],
subPicTop: $r('app.media.ic_J_photo_top'),
subPicBottom: $r('app.media.ic_J_photo_bottom'),
titleIcon: $r('app.media.ic_title_top_J'),
imageList: [$r('app.media.ic_J_1'), $r('app.media.ic_J_2'), $r('app.media.ic_J_3'), $r('app.media.ic_J_4'),
$r('app.media.ic_J_5')],
buildingInformation: $r('app.string.build_information_j'),
buildingPic: $r('app.media.ic_building_J'),
geographyPic: $r("app.media.ic_geography_dark_J"),
geographyPicLight: $r("app.media.ic_geography_lighter_J"),
backgroundColor: $r('app.color.introduction_page_red'),
starLinePic: [$r('app.media.ic_starLine_J_lighter'), $r('app.media.ic_starLine_J_dark')]
},
{
id: 9,
title: $r('app.string.area_name_k'),
subTitle: $r('app.string.area_sub_name_k'),
thumbnail: $r('app.media.ic_thumbnail_k'),
swiperPic: $r('app.media.ic_K'),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_k'),
$r('app.string.introduction_paragraph_second_k')],
subPicTop: $r("app.media.ic_K_photo_top"),
subPicBottom: $r("app.media.ic_K_photo_bottom"),
titleIcon: $r('app.media.ic_title_top_K'),
imageList: [$r('app.media.ic_K_1'), $r('app.media.ic_K_2'), $r('app.media.ic_K_3'), $r('app.media.ic_K_4'),
$r('app.media.ic_K_5')],
buildingInformation: $r('app.string.build_information_k'),
buildingPic: $r('app.media.ic_building_K'),
geographyPic: $r("app.media.ic_geography_dark_K"),
geographyPicLight: $r("app.media.ic_geography_lighter_K"),
backgroundColor: '#769D33',
starLinePic: [$r("app.media.ic_starLine_K_light"), $r("app.media.ic_starLine_K_dark")]
},
{
id: 10,
title: $r('app.string.area_name_l'),
subTitle: $r('app.string.area_sub_name_l'),
thumbnail: $r('app.media.ic_thumbnail_l'),
swiperPic: $r('app.media.ic_L'),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_l'),
$r('app.string.introduction_paragraph_second_l')],
subPicTop: $r("app.media.ic_L_photo_top"),
subPicBottom: $r("app.media.ic_L_photo_bottom"),
titleIcon: $r('app.media.ic_title_top_L'),
imageList: [$r('app.media.ic_L_1'), $r('app.media.ic_L_2'), $r('app.media.ic_L_3'), $r('app.media.ic_L_4'),
$r('app.media.ic_L_5')],
buildingInformation: $r('app.string.build_information_l'),
buildingPic: $r('app.media.ic_building_L'),
geographyPic: $r("app.media.ic_geography_dark_L"),
geographyPicLight: $r("app.media.ic_geography_lighter_L"),
backgroundColor: $r('app.color.introduction_page_red_light'),
starLinePic: [$r("app.media.ic_starLine_L_light"), $r("app.media.ic_starLine_L_dark")]
},
{
id: 11,
title: $r('app.string.area_name_m'),
subTitle: $r('app.string.area_sub_name_m'),
thumbnail: $r('app.media.ic_thumbnail_m'),
swiperPic: $r('app.media.ic_M'),
createTime: $r('app.string.create_year_2015'),
content: [$r('app.string.introduction_paragraph_first_m'),
$r('app.string.introduction_paragraph_second_m')],
subPicTop: $r("app.media.ic_M_photo_top"),
subPicBottom: $r("app.media.ic_M_photo_bottom"),
titleIcon: $r('app.media.ic_title_top_M'),
imageList: [$r('app.media.ic_M_1'), $r('app.media.ic_M_2'), $r('app.media.ic_M_3'), $r('app.media.ic_M_4'),
$r('app.media.ic_M_5')],
buildingInformation: $r('app.string.build_information_m'),
buildingPic: $r('app.media.ic_building_M'),
geographyPic: $r("app.media.ic_geography_dark_M"),
geographyPicLight: $r("app.media.ic_geography_lighter_M"),
backgroundColor: $r('app.color.introduction_page_blue_lighter'),
starLinePic: [$r("app.media.ic_starLine_M_light"), $r("app.media.ic_starLine_M_dark")]
}
]
export class ImageDataSource implements IDataSource {
private dataArray: ResourceStr[] = [];
private listeners: DataChangeListener[] = [];
constructor(element: ResourceStr[]) {
for (let index = 0; index < element.length; index++) {
this.dataArray.push(element[index]);
}
}
public totalCount(): number {
return this.dataArray.length;
}
public getData(index: number): ResourceStr {
return this.dataArray[index];
}
public addData(index: number, data: ResourceStr): void {
this.dataArray.splice(index, 0, data);
this.notifyDataAdd(index);
}
public pushData(data: ResourceStr): void {
this.dataArray.push(data);
this.notifyDataAdd(this.dataArray.length - 1);
}
registerDataChangeListener(listener: DataChangeListener): void {
if (this.listeners.indexOf(listener) < 0) {
this.listeners.push(listener);
}
}
unregisterDataChangeListener(listener: DataChangeListener): void {
const pos = this.listeners.indexOf(listener);
if (pos >= 0) {
this.listeners.splice(pos, 1);
}
}
notifyDataReload(): void {
this.listeners.forEach(listener => {
listener.onDataReloaded();
})
}
notifyDataAdd(index: number): void {
this.listeners.forEach(listener => {
listener.onDataAdd(index);
})
}
notifyDataChange(index: number): void {
this.listeners.forEach(listener => {
listener.onDataChange(index);
})
}
notifyDataDelete(index: number): void {
this.listeners.forEach(listener => {
listener.onDataDelete(index);
})
}
notifyDataMove(from: number, to: number): void {
this.listeners.forEach(listener => {
listener.onDataMove(from, to);
})
}
}