Save LoadProject Trong Runtime

Một phần của tài liệu Xây dựng công cụ cho phép thiết kế ứng dụng SCADA vừa và nhỏ trên nền iOS (Trang 84 - 86)

5.5 Màn Hình Runtime

5.5.9 Save LoadProject Trong Runtime

Save Project:

 Mỗi khi tạo một đối tượng ta đều thực hiện phương thức

:"[runTimeDisplay.displayTags.displayTag addObject:progressCreated]" để cập nhật dữ liệu của mỗi đối tượng lên cây dữ liệu.

Load Project:

Mọi thủ tục load project đều được thực hiện trong phương thức :"-(void) loadProject" tại đây ta phải xoá toàn bộ dữ liệu cũ trên view bằng các phương thức:

 Ngoài ra ta phải kiểm tra và gán Display thuộc kiểu RUNTIMEFORM vào cây dữ liệu.

"[self removeAllDesignObjectAndGesture]; //Remove toàn bộ đối tượng cùng với GestureRecognizer đi kèm trên view

[self initVariable];"

Page 75

Phương thức đầu tiên "[ProjectParser takeDisplayFromProject:mainDelegate.project

displayType:RUNTIMEFORM]" để trả về địa chỉ một đối tượng Display có kiểu display là RUNTIMEFORM gán vào con trỏ runTimeDisplay. Sau đó ta kiểm tra xem địa chỉ trả về có chỉ tới đối tượng nào không nếu không ta phải tạo ra đối tượng Display mới với kiểu display là RUNTIMEFORM để lưu vào cây dữ liệu. Chú ý là từ bây giờ địa chỉ của con trỏ

runTimeDisplay đã được lưu vào dữ liệu trung tâm nên mọi thay đổi của đối tượng được con trỏ runTimeDisplay sẽ được cập nhật trực tiếp lên cây dữ liệu trung tâm.

 Sau khi đã lấy được dữ liệu của đói tượng Display trên cây dữ liêu trung tâm ta tiến hành kiểm tra đối tượng được lưu trử trong mảng DisplayTag là đối tượng thuộc Class nào để lấy các đối tượng đó ra và gán các GestureRecognizer tương ứng.

Phương thức kiểm tra đối tượng:

for (Display *display inmainDelegate.project.displays.display) { if (display.displayType == RUNTIMEFORM) {

for (int j=0; j<display.displayTags.displayTag.count;j++ ) {

NSDictionary *displayTagTemp = [display.displayTags.displayTag

objectAtIndex:j];

if ([displayTagTemp isKindOfClass:[TextField class]]){

runTimeDisplay = [ProjectParser takeDisplayFromProject:mainDelegate.project

displayType:RUNTIMEFORM]; if (runTimeDisplay == nil) {

runTimeDisplay = [[Display alloc] initWithName:@"Run Time" displayType:RUNTIMEFORM period:@"0.5" displayTags:nil]; runTimeDisplay.displayTags = [[DisplayTags alloc] init];

Page 76

Một phần của tài liệu Xây dựng công cụ cho phép thiết kế ứng dụng SCADA vừa và nhỏ trên nền iOS (Trang 84 - 86)

Tải bản đầy đủ (PDF)

(145 trang)