$_action = "main"; } else { $_action = $_REQUEST["action"]; } try { /* handle POST (if any) */ if ($_SERVER["REQUEST_METHOD"] == "POST") { GUI::handlePOST(); } /* handle action */ switch ($_action) { case "main": GUI::printMessage("%s", GUI::createMainScreen()); break; case "layer": $layerProperties = DML::getLayerProperties($_REQUEST["layerName"]); if (empty($layerProperties->layer)) { $layerProperties = new LayarResponse(); $layerProperties->layer = $_REQUEST["layerName"]; DML::saveLayerProperties($_REQUEST["layerName"], $layerProperties); } GUI::printMessage("%s", GUI::createLayerScreen($_REQUEST["layerName"])); break; case "poi": $poi = DML::getPOI($_REQUEST["layerName"], $_REQUEST["poiID"]); if (empty($poi)) { throw new Exception(sprintf("POI not found: %s:%s", $_REQUEST["layerName"], $_REQUEST["poiID"])); } GUI::printMessage("%s", GUI::createPOIScreen($_REQUEST["layerName"], $poi)); break; case "newPOI":
/** * Create a screen for viewing/editing a layer * * @param string $layerName * * @return string */ public static function createLayerScreen($layerName) { $layerDefinition = DML::getLayerDefinition($layerName); if ($layerDefinition == NULL) { throw new Exception(sprintf("Unknown layer: %s\n", $layerName)); } $result = ""; $result .= sprintf("<p>Layer name: %s</p>\n", $layerName); $result .= sprintf("<p>POI connector: %s</p>\n", $layerDefinition->connector); $result .= sprintf("<p>Connector options:\n"); if (!empty($layerDefinition->connectorOptions)) { $result .= "<ul>\n"; foreach ($layerDefinition->connectorOptions as $optionName => $optionValue) { $result .= sprintf("<li>%s: %s</li>\n", $optionName, $optionValue); } $result .= "</ul>\n"; } else { $result .= "none\n"; } $result .= "</p>\n"; $result .= sprintf("<form accept-charset=\"utf-8\" action=\"?action=layer&layerName=%s\" method=\"POST\">\n", $layerName); $layerProperties = DML::getLayerProperties($layerName); $result .= sprintf("<table class=\"layer\">\n"); $result .= sprintf("<tr><td>Response message</td><td><input type=\"text\" name=\"showMessage\" value=\"%s\"></td></tr>\n", $layerProperties->showMessage); $result .= sprintf("<tr><td>Refresh interval</td><td><input type=\"text\" name=\"refreshInterval\" value=\"%s\"></td></tr>\n", $layerProperties->refreshInterval); $result .= sprintf("<tr><td>Refresh distance</td><td><input type=\"text\" name=\"refreshDistance\" value=\"%s\"></td></tr>\n", $layerProperties->refreshDistance); $result .= sprintf("<tr><td>Full refresh</td><td>%s</td></tr>\n", self::createCheckbox("fullRefresh", $layerProperties->fullRefresh)); $result .= sprintf("<tr><td>Default BIW Style</td><td><input type=\"text\" name=\"biwStyle\" value=\"%s\"></td></tr>\n", $layerProperties->biwStyle); foreach ($layerProperties->actions as $key => $action) { $result .= sprintf("<tr><td>Action<br><button type=\"button\" onclick=\"GUI.removeLayerAction(%s)\">Remove</button></td><td>%s</td></tr>\n", $key, self::createActionSubtable($key, $action, TRUE)); } $result .= sprintf("<tr><td colspan=\"2\"><button type=\"button\" onclick=\"GUI.addLayerAction(this)\">New action</button></td></tr>\n"); $index = 0; foreach ($layerProperties->animations as $event => $animations) { foreach ($animations as $animation) { $result .= sprintf("<tr><td>Animation<br><button type=\"button\" onclick=\"GUI.removeLayerAnimation(%s)\">Remove</button></td><td>%s</td></tr>\n", $index, self::createAnimationSubtable($index, $event, $animation)); $index++; } } $result .= sprintf("<tr><td colspan=\"2\"><button type=\"button\" onclick=\"GUI.addLayerAnimation(this)\">New animation</button></td></tr>\n"); $result .= sprintf("<caption><button type=\"submit\">Save</button></caption>\n"); $result .= sprintf("</table>\n"); $result .= sprintf("</form>\n"); $result .= sprintf("<form accept-charset=\"utf-8\" action=\"?action=newPOI&layerName=%s\" method=\"POST\">\n", urlencode($layerName)); $result .= '<input type="hidden" name="dimension" value="2">'; $result .= '<input type="hidden" name="layerName" value="' . urlencode($layerName) . '">'; $result .= '<button type="submit">Create POI</button>'; $result .= '</form><br/>'; // $result .= sprintf("<p><a href=\"?action=newPOI&layerName=%s\">New POI</a></p>\n", urlencode($layerName)); $result .= self::createPOITable($layerName); return $result; }