/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
* Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
* This file is available and licensed under the following license:
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of Oracle Corporation nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package forecasting_mobile;
import java.lang.Exception;
import javafx.data.pull.PullParser;
import javafx.data.xml.QName;
import javafx.io.http.HttpRequest;
import javafx.scene.CustomNode;
import javafx.scene.Group;
import javafx.scene.Node;
public class Weather extends CustomNode {
public var city:String = "USNY0996";
public var tempToday: Integer=0;
public var codeToday: String;
public var cityID: Integer = 0;
var url = "http:;
var p: PullParser;
var h: HttpRequest;
public var tempforecast_next_high:Integer[];
public var tempforecast_next_low:Integer[];
public var tempforecast_code:String[];
public var tempforecast_day: String[];
public var tempforecast_condition: String[];
public var tempforecast_today: Integer;
public var tempforecast_today_condition: String;
public function getDataFromWS() {
if (url.length() > 0) {
h = HttpRequest {
location: url
onException: function(exception: Exception) {
exception.printStackTrace();
}
onInput: function(input) {
p = PullParser {
input: input
onEvent: function(event) {
if ((event.type == PullParser.START_ELEMENT)
and (event.qname.prefix == "yweather")) {
if (event.qname.name == "condition") {
tempToday =
Integer.parseInt(event.getAttributeValue(QName{name: "temp"
}));
codeToday = event.getAttributeValue(QName{name: "code" });
tempforecast_today_condition =
event.getAttributeValue(QName{name:"text"})
}
if (event.qname.name == "forecast") {
insert event.getAttributeValue(QName{name:"day"})
into tempforecast_day;
insert Integer.parseInt
(event.getAttributeValue(QName{name: "high"
})) into tempforecast_next_high;
insert Integer.parseInt(event.getAttributeValue(QName{name: "low"
})) into tempforecast_next_low;
insert event.getAttributeValue(QName{name:"code"})
into tempforecast_code;
insert event.getAttributeValue(QName{name:"text"})
into tempforecast_condition;
}
}
}
};
p.parse();
p.input.close();
}
onDone: function() {
}
};
h.start();
}
}
public override function create():
Node {
return Group {
content: [
]
};
}
}