Integer (int dialogHeight) { int selectionCenter = (mySelectionStartY + mySelectionEndY) / 2; int dialogTop = selectionCenter - dialogHeight / 2; int dialogBottom = selectionCenter + dialogHeight / 2; if (dialogTop >= 0 && dialogBottom <= myEditorComponentHeight) { return dialogTop; } else if (dialogTop < 0) { int extraTopSpace = -dialogTop; if (dialogBottom + extraTopSpace <= myEditorComponentHeight) { return 0; } } else { int extraBottomSpace = dialogBottom - myEditorComponentHeight; if (dialogTop - extraBottomSpace >= 0) { return dialogTop - extraBottomSpace; } } return null; }