Files
Artemis/ui/SpaceWeatherSunImagers.qml
2024-06-27 01:08:43 +02:00

83 lines
3.0 KiB
QML

import QtQuick
import QtQuick.Window
import QtQuick.Controls
import QtQuick.Controls.Material
import QtQuick.Layouts
Page {
id: spaceWeatherSunImagers
anchors.fill: parent
objectName: "spaceWeatherSunImagers"
property var poseidon_json
function loadDrapReport(poseidon_data) {
poseidon_json = poseidon_data
loadImage(poseidon_json['URL'][comboBoxImageProduct.currentValue.value])
}
function loadImage(url) {
checkUrlExists(url, function(exists) {
if (exists) {
imageBox.source = url
} else {
imageBox.source = "qrc:///images/artemis_not_available.svg"
}
})
}
function checkUrlExists(url, callback) {
var xhr = new XMLHttpRequest()
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
callback(xhr.status === 200)
}
}
xhr.open("HEAD", url, true)
xhr.send()
}
ColumnLayout {
anchors.fill: parent
anchors.rightMargin: 10
anchors.leftMargin: 10
anchors.bottomMargin: 10
anchors.topMargin: 10
ComboBox {
id: comboBoxImageProduct
textRole: 'text'
Layout.fillWidth: true
model: ListModel {
ListElement { text: "94 Å - Atmospheric Imagery Assembly"; value: "AIA_094" }
ListElement { text: "131 Å - Atmospheric Imagery Assembly"; value: "AIA_131" }
ListElement { text: "171 Å - Atmospheric Imagery Assembly"; value: "AIA_171" }
ListElement { text: "193 Å - Atmospheric Imagery Assembly"; value: "AIA_193" }
ListElement { text: "303 Å - Atmospheric Imagery Assembly"; value: "AIA_304" }
ListElement { text: "335 Å - Atmospheric Imagery Assembly"; value: "AIA_335" }
ListElement { text: "1600 Å - Atmospheric Imagery Assembly"; value: "AIA_1600" }
ListElement { text: "1700 Å - Atmospheric Imagery Assembly"; value: "AIA_1700" }
ListElement { text: "Magnetogram - Helioseismic and Magnetic Imager"; value: "AIA_MAGN" }
ListElement { text: "Intensitygram - Helioseismic and Magnetic Imager"; value: "AIA_INTE" }
ListElement { text: "Dopplergram - Helioseismic and Magnetic Imager"; value: "AIA_DOPP" }
ListElement { text: "LASCO C2 - Large Angle and Spectrometric Coronagraph"; value: "LASCO_C2" }
ListElement { text: "LASCO C3 - Large Angle and Spectrometric Coronagraph"; value: "LASCO_C3" }
ListElement { text: "Thematic Map"; value: "SUVI_THEMATIC" }
}
onActivated: {
loadImage(poseidon_json['URL'][comboBoxImageProduct.currentValue.value])
}
}
Image {
id: imageBox
Layout.fillHeight: true
Layout.fillWidth: true
fillMode: Image.PreserveAspectFit
}
}
}