Erstellen von Konfigurationen
Konfigurationen können auf 2 Arten erstellt werden:
- Konfigurator-GUI
- JSON-Datei
Konfigurationen können auf 2 Arten gespeichert werden:
- Datenbank
- JSON-Datei
Der Konfigurator dient als Schnittstelle zwischen JSON, Datenbank und Nutzer.
Konfigurationsmöglichkeiten
Die Spalte "JSON" beschreibt die Bennenung des Schlüssels in der JSON-Datei.
allgemeine Optionen
Option | Typ | Beschreibung | JSON |
---|---|---|---|
Tool-Typ | "CODECHARTS" | "ZOOMMAPS" | der Tool-Typ des Versuches | toolType |
Bild-URL | string | die URL, von der das Versuchsbild heruntergeladen werden soll | imageUrl |
Intro | string | eine Nachricht, die den Teilnehmenden vor Beginn des Versuchs angezeigt wird | intro |
Outro | string | eine Nachricht, die den Teilnehmenden nach Abschluss des Versuchs angezeigt wird | outro |
Tutorial | boolean | ob vor Beginn des Versuchs das Tutorial gezeigt werden soll | tutorial |
CodeCharts Optionen
Option | Typ | Beschreibung | JSON |
---|---|---|---|
String-ID | string | die ID der String-Liste mit der das Raster gefüllt werden soll (für Datenbank) | stringId |
string | string[] | die Liste von Strings, mit der das Raster gefüllt werden soll (wird in GUI über Button neben String-ID gesetzt) (Länge beachten!) | strings |
Rastergröße X | integer | die Anzahl der horizontalen Unterteilungen im anfänglichen Raster | initialSize[0] |
Rastergröße Y | integer | die Anzahl der vertikalen Unterteilungen im anfänglichen Raster | initialSize[1] |
Anzeigezeit Bild | long | Anzeigezeit des Bildes, bevor das Raster angezeigt wird (in Millisekunden) | timings[0] |
Anzeigezeit Raster | long | Anzeigezeit des Rasters, bevor zur Eingabe aufgefordert wird (in Millisekunden) | timings[1] |
Sichtbarkeit Rasterlinien | boolean | ob die Rasterlinien in der Rasteransicht sichtbar sein sollen | showGrid |
relative Größenänderung | boolean | ob sich das Raster aufgrund von Nutzereingaben unterteilt werden soll (siehe horizontale / vertikale Unterteilungen) | relativeSize |
zufällige String-Anordnung | boolean | ob die String-Liste vor Beginn des Versuchs durchmischt werden soll, oder bei jedem Versuch die gleiche Reihenfolge haben soll | randomized |
Durchläufe | integer | Anzahl der Durchläufe die richtig beantwortet werden müssen, damit der Versuch abgeschlossen wird | iterations |
maximale Tiefe | integer | maximale Anzahl von Unterteilungen die durchgeführt werden, falls die relative Größenänderung aktiviert ist | maxDepth |
horizontale Unterteilungen | integer | Anzahl der horizontalen Unterteilungen einer Kachel, falls die relative Größenänderung aktiviert ist | defaultHorizontal |
vertikale Unterteilungen | integer | Anzahl der vertikalen Unterteilungen einer Kachel, falls die relative Größenänderung aktiviert ist | defaultVertical |
wird eine oder beide der Optionen "horizontale Unterteilungen" und "vertikale Unterteilungen" auf einen Wert ≤ 0 gesetzt, wird eine dynamische Größenänderung angewendet. Dabei werden die Kacheln entlang der längeren Seite halbiert.
die letzten 3 Optionen werden nur beachtet, falls die relative Größenänderung aktiviert ist. In der GUI müssen allerdings zum Abspeichern immer Werte eingetragen werden - diese werden jedoch nicht beachtet, sollte die relative Größenänderung nicht aktiviert sein.
beim Erstellen einer JSON-Konfiguration können diese Werte aufnull
gesetzt werden.
⚠️ Länge der CodeCharts String-Liste
Die Wortliste, welche in CodeCharts-Versuchen verwendet wird, sollte eine gewisse Länge nicht unterschreiten, damit während des Versuchs alle Felder mit Worten gefüllt werden können.
Folgende Formel kann zur Berechnung der minimalen Wortanzahl verwendet werden:
// Anzahl der Felder zu Beginn des Versuches
initialeAnzahl = initialHorizontal * initialVertikal
// falls relative Größenänderung deaktiviert ist:
ERGEBNIS = initialeAnzahl + anzahlIterationen
// fertig.
// falls defaultHorizontal oder defaultVertikal ≤ 0:
ERGEBNIS = initialeAnzahl + anzahlIterationen * 2
// fertig.
// sonst:
// Feststellen des Multiplikators pro Iteration
// Multiplizieren der Unterteilungen (horizontal und vertikal) während des Versuches
multiplikator = defaultHorizontal * defaultVertical
ERGEBNIS = initialeAnzahl + anzahlIterationen * multiplikator
// fertig.
Die gleiche Berechnung wird auch in der Toolbox vor Starten des CodeCharts-Testes durchgeführt.
ZoomMaps Optionen
Option | Type | Beschreibung | JSON |
---|---|---|---|
Fragestellung | string | eine Frage zum Bild, welche die Testpersonen dazu anregt, das Bild zu untersuchen | question |
Geschwindigkeit | double | die Geschwindigkeit des Zoomens, d.h. wie weit durch ein Klick / Scroll gezoomt werden soll | speed |
Bild-Breite | double | wie breit das Bild auf dem Bildschirm erscheinen soll (Anzahl Pixel) | imageViewWidth |
Bild-Höhe | double | wie hoch das Bild auf dem Bildschirm erscheinen soll (Anzahl Pixel) | imageViewHeight |
Für die Bild-Dimensionen sollten Werte gewählt werden, bei dem man nicht ohne Zoomen die Frage beantworten kann.
Der Datentyp istdouble
aufgrund dessen, wie JavaFX Dimensionen intern verarbeitet, ist im Endeffekt aber ganzzahlig.
die Option Fragestellung befindet sich in JSON in der allgemeinen Konfiguration, da dies zum Beispiel auch für die nicht-implementierte Funktionaliät des EyeTrackings benötigt werden könnte.
JSON Beispiele
CodeCharts JSON Konfiguration
{
"toolType" : "CODECHARTS",
"trialId" : "trialId",
"configId" : null,
"question" : null,
"intro" : "Willkommen zum Beispiel",
"outro" : "Auf Wiedersehen beim Beispiel",
"imageUrl" : "https://www.example.com/image.png",
"tutorial" : true,
"codeChartsConfiguration" : {
"stringId" : "OBST",
"strings" : [ "Apple", "Apricot", "Avocado", "Banana", "Bilberry", "Blackberry", "Blackcurrant", "Blueberry", "Boysenberry", "Currant", "Cherry", "Cherimoya", "Chico fruit", "Cloudberry", "Coconut", "Cranberry", "Cucumber", "Custard apple", "Damson", "Date", "Dragonfruit", "Durian", "Elderberry", "Feijoa", "Fig", "Goji berry", "Gooseberry", "Grape", "Raisin", "Grapefruit", "Guava", "Honeyberry", "Huckleberry", "Jabuticaba", "Jackfruit", "Jambul", "Jujube", "Juniper berry", "Kiwano", "Kiwifruit", "Kumquat", "Lemon", "Lime", "Loquat", "Longan", "Lychee", "Mango", "Mangosteen", "Marionberry", "Melon", "Cantaloupe", "Honeydew", "Watermelon", "Miracle fruit", "Mulberry", "Nectarine", "Nance", "Olive", "Orange", "Blood orange", "Clementine", "Mandarine", "Tangerine", "Papaya", "Passionfruit", "Peach", "Pear", "Persimmon", "Physalis", "Plantain", "Plum", "Prune", "Pineapple", "Plumcot", "Pomegranate", "Pomelo", "Purple mangosteen", "Quince", "Raspberry", "Salmonberry", "Rambutan", "Redcurrant", "Salal berry", "Salak", "Satsuma", "Soursop", "Star fruit", "Solanum quitoense", "Strawberry", "Tamarillo", "Tamarind", "Ugli fruit", "Yuzu" ],
"initialSize" : [ 3, 5 ],
"timings" : [ 1000, 200 ],
"showGrid" : true,
"relativeSize" : true,
"randomized" : true,
"iterations" : 5,
"maxDepth" : 3,
"defaultHorizontal" : -1,
"defaultVertical" : -1
},
"zoomMapsConfiguration" : null
}
ZoomMaps JSON Konfiguration
{
"toolType" : "ZOOMMAPS",
"trialId" : "trialId",
"configId" : null,
"question" : "Was ist das für ein Beispiel?",
"intro" : "Willkommen zum Beispiel",
"outro" : "Auf Wiedersehen beim Beispiel",
"imageUrl" : "https://www.example.com/image.png",
"tutorial" : true,
"codeChartsConfiguration" : null,
"zoomMapsConfiguration" : {
"speed" : 4.2,
"imageViewWidth" : 300.0,
"imageViewHeight" : 450.0
}
}