Changeset 1069 for trunk/autoquest-htmlmonitor/src/main/java/de/ugoe/cs/autoquest/htmlmonitor/HtmlMonitorServlet.java
- Timestamp:
- 02/14/13 15:20:07 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/autoquest-htmlmonitor/src/main/java/de/ugoe/cs/autoquest/htmlmonitor/HtmlMonitorServlet.java
r1022 r1069 78 78 * the message listener to forward received messages to. 79 79 */ 80 private HtmlGUIElementManager guiElementManager = new HtmlGUIElementManager(); 81 82 /** 83 * the message listener to forward received messages to. 84 */ 80 85 private transient HtmlMonitorMessageListener messageListener; 81 86 … … 199 204 } 200 205 else { 201 Html PageElement guiStructure = extractHtmlPageElements(message, clientInfos);206 HtmlGUIElement guiStructure = extractHtmlPageElements(message, clientInfos); 202 207 HtmlEvent[] events = extractHtmlEvents(message, clientInfos); 203 208 … … 275 280 events = new ArrayList<HtmlEvent>(); 276 281 277 Html PageElementserver = getServerElement(clientInfos);278 Html PageElement page= getPageElementRepresentingWebPage(clientInfos, server);282 HtmlServer server = getServerElement(clientInfos); 283 HtmlDocument document = getPageElementRepresentingWebPage(clientInfos, server); 279 284 280 285 for (int i = 0; i < eventArray.size(); i++) { … … 285 290 else { 286 291 Long time = assertValue(((JSONObject) eventObj), "time", Long.class); 287 String path = assertValue(((JSONObject) eventObj), "path", String.class);292 String domPath = assertValue(((JSONObject) eventObj), "path", String.class); 288 293 String eventType = 289 294 assertValue(((JSONObject) eventObj), "eventType", String.class); … … 302 307 Console.printerrln(eventType + " event has no valid timestamp"); 303 308 } 304 else if ( path == null) {305 Console.printerrln(eventType + " event has no valid path");309 else if (domPath == null) { 310 Console.printerrln(eventType + " event has no valid DOM path"); 306 311 } 307 312 else if ((coordinates != null) && (coordinates.length != 2)) { … … 311 316 (eventType, coordinates, key, scrollPosition, selectedValue)) 312 317 { 313 path = page.getPath() + path; 314 events.add(new HtmlEvent(clientInfos, time, path, eventType, 315 coordinates, key, scrollPosition, selectedValue)); 318 HtmlPageElement target = 319 guiElementManager.getPageElement(document, domPath); 320 321 if (target != null) { 322 events.add(new HtmlEvent(clientInfos, time, target, eventType, 323 coordinates, key, scrollPosition, 324 selectedValue)); 325 } 326 else { 327 events.add(new HtmlEvent(clientInfos, time, document, domPath, 328 eventType, coordinates, key, scrollPosition, 329 selectedValue)); 330 } 316 331 } 317 332 else { … … 342 357 * representation of the server of the HTML page that was observed 343 358 */ 344 private Html PageElementextractHtmlPageElements(JSONObject object,345 359 private HtmlServer extractHtmlPageElements(JSONObject object, 360 HtmlClientInfos clientInfos) 346 361 { 347 Html PageElementserver = getServerElement(clientInfos);348 Html PageElement page= getPageElementRepresentingWebPage(clientInfos, server);362 HtmlServer server = getServerElement(clientInfos); 363 HtmlDocument document = getPageElementRepresentingWebPage(clientInfos, server); 349 364 350 365 JSONObject jsonPageElement = assertValue(object, "guiModel", JSONObject.class); 351 page.addChild(convert(jsonPageElement, page.getPath()));366 document.addChild(convert(jsonPageElement, document, null)); 352 367 353 368 return server; … … 364 379 * @return as described 365 380 */ 366 private HtmlPageElement getServerElement(HtmlClientInfos clientInfos) { 367 String id = clientInfos.getUrl().getHost(); 381 private HtmlServer getServerElement(HtmlClientInfos clientInfos) { 382 String host = clientInfos.getUrl().getHost(); 383 int port = 80; 384 368 385 if (clientInfos.getUrl().getPort() > -1) { 369 id += ":" +clientInfos.getUrl().getPort();370 } 371 372 return new HtmlPageElement(null, "server", id, 0);386 port = clientInfos.getUrl().getPort(); 387 } 388 389 return guiElementManager.createHtmlServer(host, port); 373 390 } 374 391 … … 384 401 * @return as described 385 402 */ 386 private Html PageElement getPageElementRepresentingWebPage(HtmlClientInfos clientInfos,387 HtmlPageElementserver)403 private HtmlDocument getPageElementRepresentingWebPage(HtmlClientInfos clientInfos, 404 HtmlServer server) 388 405 { 389 String id = clientInfos.getUrl().getPath(); 406 String path = clientInfos.getUrl().getPath(); 407 String query = null; 390 408 391 409 if (clientInfos.getUrl().getQuery() != null) { 392 id += "?" + clientInfos.getUrl().getQuery();393 } 394 395 Html PageElement page =396 new HtmlPageElement(server.getPath(), "document", id, clientInfos.getTitle(), 0);397 398 server.addChild( page);399 400 return page;410 query = "?" + clientInfos.getUrl().getQuery(); 411 } 412 413 HtmlDocument document = guiElementManager.createHtmlDocument 414 (server, path, query, clientInfos.getTitle()); 415 416 server.addChild(document); 417 418 return document; 401 419 } 402 420 … … 408 426 * 409 427 * @param jsonPageElement the JSON object to be converted 410 * @param parentPath the path through the DOM of the parent HTML page element of the 411 * converted one 428 * @param document the document to which the page element belongs 429 * @param parent the parent page element of the converted element, of null, if none 430 * is present. In this case the document is considered the parent 431 * element. 412 432 * 413 433 * @return as described. 414 434 */ 415 private HtmlPageElement convert(JSONObject jsonPageElement, String parentPath) { 435 private HtmlPageElement convert(JSONObject jsonPageElement, 436 HtmlDocument document, 437 HtmlPageElement parent) 438 { 416 439 HtmlPageElement result = null; 417 440 418 441 if (jsonPageElement != null) { 419 442 String tagName = assertValue(jsonPageElement, "tagName", String.class); 420 String id = assertValue(jsonPageElement, "id", String.class);443 String htmlid = assertValue(jsonPageElement, "htmlId", String.class); 421 444 Integer index = assertValue(jsonPageElement, "index", Integer.class); 422 445 423 result = new HtmlPageElement(parentPath, tagName, id, index); 446 result = guiElementManager.createHtmlPageElement 447 (document, parent, tagName, htmlid, index); 424 448 425 449 JSONArray childElements = assertValue(jsonPageElement, "children", JSONArray.class); … … 435 459 } 436 460 else { 437 result.addChild(convert((JSONObject) jsonChild, result.getPath()));461 result.addChild(convert((JSONObject) jsonChild, document, result)); 438 462 } 439 463 }
Note: See TracChangeset
for help on using the changeset viewer.