· 9 years ago · Oct 18, 2016, 12:26 PM
1import { Injectable } from '@angular/core';
2import { Storage, SqlStorage } from 'ionic-angular';
3
4export class Item {
5 id: number;
6 name: string;
7 imgUrl: string;
8 category: string;
9 constructor(id: number, name: string, imgUrl: string, category: string) {
10 this.id = id;
11 this.name = name;
12 this.imgUrl = imgUrl;
13 this.category = category;
14 }
15}
16
17@Injectable()
18export class ThingyService {
19 storage: Storage = null;
20 scenesItems: Object[];
21
22 constructor() {
23 this.storage = new Storage(SqlStorage, { name: 'myWorld7.db' });
24
25 this.storage.query(
26 "CREATE TABLE IF NOT EXISTS items ( " +
27 "id INTEGER PRIMARY KEY AUTOINCREMENT," +
28 "name TEXT, " +
29 "imgUrl TEXT, " +
30 "category TEXT)");
31 }
32
33 public getItems() {
34 let sql = "SELECT * FROM items";
35 return this.storage.query(sql);
36 }
37
38 public addItemToDatabase(name: string, imgUrl: string, category: string) {
39 let sql = "INSERT INTO items (name, imgUrl, category) " +
40 "VALUES ('" + name + "', '" + imgUrl + "', '" + category + "')";
41 this.storage.query(sql);
42 }
43
44 public preloadData(): void {
45 this.addItemToDatabase("Room1", "img/backgrounds/e1.jpg", "background");
46 this.addItemToDatabase("Room2", "img/backgrounds/e2.jpg", "background");
47 this.addItemToDatabase("Room3", "img/backgrounds/e3.jpg", "background");
48 this.addItemToDatabase("Room4", "img/backgrounds/e4.jpg", "background");
49 this.addItemToDatabase("DarkGirl", "img/persons/dark_girl.png", "person");
50 this.addItemToDatabase("Grandfather", "img/persons/grandfather.png", "person");
51 this.addItemToDatabase("Grandmother", "img/persons/grandmother.png", "person");
52 this.addItemToDatabase("Baby", "img/persons/p1.png", "person");
53 this.addItemToDatabase("BoyGingerHair", "img/persons/p2.png", "person");
54 this.addItemToDatabase("BoyBlackHair", "img/persons/p3.png", "person");
55 this.addItemToDatabase("GirlDarkHair", "img/persons/p4.png", "person");
56 this.addItemToDatabase("Angry", "img/items/angry.png", "mood");
57 this.addItemToDatabase("Confused", "img/items/confused.png", "mood");
58 this.addItemToDatabase("Crying", "img/items/crying.png", "mood");
59 this.addItemToDatabase("Happy", "img/items/happy.png", "mood");
60 this.addItemToDatabase("Sad", "img/items/sad.png", "mood");
61 this.addItemToDatabase("Sad2", "img/items/sad_2.png", "mood");
62 this.addItemToDatabase("Shy", "img/items/shy.png", "mood");
63 this.addItemToDatabase("Surprised", "img/items/surprised.png", "mood");
64 console.log("preload data completed");
65 }
66
67 public refresh() {
68 let sql = "SELECT i.imgUrl AS Image, i.category AS Category, s.userId AS UserID, s.bgUrl AS BackgroundURL, p.id AS Id, p.sceneId AS SceneID, p.itemId AS ItemID, p.x AS X, p.y AS Y " +
69 "FROM scenes AS s " +
70 "JOIN itemsPosition AS p ON s.id = p.sceneId " +
71 "JOIN items AS i ON p.itemId = i.id ;";
72
73 this.storage.query(sql).then((data) => {
74 this.scenesItems = [];
75 if (data.res.rows.length > 0) {
76 for (var i = 0; i < data.res.rows.length; i++) {
77 this.scenesItems.push({
78 id: data.res.rows.item(i).Id,
79 imgUrl: data.res.rows.item(i).Image,
80 category: data.res.rows.item(i).Category,
81 userId: data.res.rows.item(i).UserID,
82 bgUrl: data.res.rows.item(i).BackgroundURL,
83 sceneId: data.res.rows.item(i).SceneID,
84 itemId: data.res.rows.item(i).ItemID,
85 x: data.res.rows.item(i).X,
86 y: data.res.rows.item(i).Y
87 })
88 }
89 }
90 console.log("refresh function");
91 }, (error) => {
92 });
93 }
94}