This class implements the "/listings" service of the HTTP protocol.
It returns a structure with the version information, a list of the Apps and Widgets, and a list of the documentation.
All URLs are relative to the Servlet's Context.
Apps and Widgets can have multiple configurations separated by semicolons for name, description, icon, args.
Args is the main driver for the multiple configurations. Each one must have a unique name to track and save it's state.
Here is a sample of the structure it returns:
{
"version": {
"licenseUrl": "/SIMRacingApps/LICENSE.TXT",
"minor": "0",
"license": "Apache License, Version 2.0, January 2004",
"copyright": "Copyright (C) 2015 - 2024 Jeffrey Gilliam",
"major": "1",
"noticeUrl": "/SIMRacingApps/NOTICE.TXT",
"build": "BETA-2015.06.29",
"copyrightUrl": "/SIMRacingApps/COPYRIGHT.TXT",
"built-by": "Jeffrey Gilliam",
"releasenotes": "/SIMRacingApps/documentation/SIMRacingApps_ReleaseNotes.txt",
"userpath": "C:\Users\Jeff\SIMRacingApps",
"translations": {
"COPYRIGHT": "Copyright",
"LICENSE": "License",
"NOTICE": "NOTICE",
"RELEASENOTES": "Release Notes",
"VERSION": "Version",
"favorites": "Favorites",
"apps": "Apps",
"widgets": "Widgets",
"documentation":"Documentation",
"installbefore":"To install or update an App, Widget or Patch, choose a File to upload, then click 'Upload.' Files will be uploaded into your user directory",
"installafter": "which is searched first by the server."
}
},
"headers": [
"apps",
"widgets",
"documentation"
],
"apps": [
{
"name": "CrewChief",
"description": "Crew Chief",
"doc": "JavaScriptDoc/CrewChief.html",
"width": "800",
"height": "480",
"url": "apps/CrewChief?",
"icon": "apps/CrewChief/icon.png",
"args": "PitCommandsSIMController=false;PitCommandsSIMController=true"
},
{
"name": "Dash-Gauges-Spek",
"description": "Dash-Gauges-Spek",
"doc": "JavaScriptDoc/Dash-Gauges-Spek.html",
"width": "1280",
"height": "768",
"url": "apps/Dash-Gauges-Spek?",
"icon": "apps/Dash-Gauges-Spek/icon.png",
"args": ""
}
],
"widgets": [
{
"name": "AnalogGauge/Spek/FuelLevel",
"description": "Analog Gauge / Spek / Fuel Level",
"doc": "JavaScriptDoc/sra-analog-gauge-spek-fuel-level.html",
"width": "480",
"height": "480",
"url": "apps/WidgetLoader?widget=AnalogGauge/Spek/FuelLevel&",
"icon": "widgets/AnalogGauge/Spek/FuelLevel/icon.png",
"args": ""
},
{
"name": "AnalogGauge/Spek/FuelPressure",
"description": "Analog Gauge / Spek / Fuel Pressure",
"doc": "JavaScriptDoc/sra-analog-gauge-spek-fuel-pressure.html",
"width": "480",
"height": "480",
"url": "apps/WidgetLoader?widget=AnalogGauge/Spek/FuelPressure&",
"icon": "widgets/AnalogGauge/Spek/FuelPressure/icon.png",
"args": ""
}
],
"documentation": [
{
"name": "SIMRacingApps - Apps, Widgets, and JavaScript API Reference",
"description": "SIMRacingApps - Apps, Widgets, and JavaScript API Reference",
"doc": "JavaScriptDoc/index.html",
"url": "JavaScriptDoc/index.html",
"width": 1000,
"height": 700,
"icon": "documentation/javascriptdoc.png",
"args": ""
},
{
"name": "SIMRacingApps - Java API Reference",
"description": "SIMRacingApps - Java API Reference",
"doc": "JavaDoc/index.html",
"url": "JavaDoc/index.html",
"width": 1000,
"height": 700,
"icon": "documentation/javadoc.png",
"args": ""
}
]
}