private void loadDiagram(Field field) { if (field != null) { if (logger.isDebugEnabled()) logger.debug( String.format("draw field %s status:%s", field.name, field.getSelectedStatus())); SvgScene scene = new SvgScene(); scene.setZoom(owner.getZoomRate()); _Object target = field.getTarget(); if (target != null) { target.drawInternal(diagramPanel, scene, new Point(0, 0), getVM().getObjectRepository()); diagramPanel.setScene(scene); Element background = scene.getDocument().getElementById("background"); diagramPanel.addBackgroundPopupMenuListener((EventTarget) background); // use background node to capture mouse move event. otherwise // the // cursor could leave the object if you moving very fast. diagramPanel.addMouseMoveListener((EventTarget) background); } else { System.out.println("selected field is null"); } } }
private Field addChildObjectToTree(_Object obj) { // add to tree // int index = obj.getOwner().getChildIndex(obj); Field f = obj.getOwnerField(); Element background = diagramPanel.getScene().getDocument().getElementById("background"); SVGMatrix mat = ((SVGLocatable) background).getScreenCTM(); Point screenPosition = diagramPanel.getPopupMenuPosition(); SVGOMPoint elePosition = SVGUtils.screenToElement(mat, screenPosition); float startX = elePosition.getX() / (f.svgScale); float startY = elePosition.getY() / (f.svgScale); f.setStartPosition(startX, startY); treeModel.insertNodeInto( new DefaultMutableTreeNode(f), getSelectedTreeNode(), getSelectedTreeNode().getChildCount()); reloadDiagram(); return f; }
private Field getActiveChildField() { return diagramPanel.getpopupTargetField(); }