private void showPopupText(SiteAnnotation a, int xPressed, int yPressed, int xCallOut, int yCallOut) {
		int wWindow = getView().getWidth();
		int hWindow = getView().getHeight();
		int x = xPressed;
		int y = yPressed;
		int w = a.getWidth() > 0 ? a.getWidth() : wWindow >> 1;
		int h = a.getHeight() > 0 ? a.getHeight() : hWindow >> 1;
		if (xPressed > wWindow >> 1) {
			x -= 10 + w;
		}
		else {
			x += 10;
		}
		if (yPressed > hWindow >> 1) {
			y -= 10 + h;
		}
		else {
			y += 10;
		}
		if (getCallOutWindow() == null) {
			PopupWindow window = new PopupWindow(a.getText(), x, y, w, h, xCallOut, yCallOut);
			window.addCloseButton(new Runnable() {
				public void run() {
					hidePopupText();
				}
			});
			if (page.isEditable()) {
				window.addEditButton(new Runnable() {
					public void run() {
						editSelectedAnnotation();
					}
				});
			}
			else {
				window.addEditButton(null);
			}
			window.setPage(page);
			setCallOutWindow(window);
		}
		else {
			PopupWindow window = (PopupWindow) getCallOutWindow();
			if (page.isEditable()) {
				window.addEditButton(new Runnable() {
					public void run() {
						editSelectedAnnotation();
					}
				});
			}
			else {
				window.addEditButton(null);
			}
			window.setContentType("text/html");
			window.setBase(page.getURL());
		}
		showPopupText(a.getText(), a.getBackgroundRgb(), x, y, w, h, xCallOut, yCallOut);
	}