001package com.ganteater.ae.desktop.editor;
002
003import java.awt.Point;
004
005import javax.swing.JDialog;
006import javax.swing.SwingUtilities;
007
008public abstract class HelperDialog extends JDialog {
009
010        private static final long serialVersionUID = 1L;
011        private CodeHelper codeHelper;
012
013        public HelperDialog(CodeHelper codeHelper) {
014                this.codeHelper = codeHelper;
015        }
016
017        public void showDialog() {
018                TaskEditor editorPanel = getCodeHelper().getRecipePanel();
019                Point magicCaretPosition = editorPanel.getMagicCaretPosition();
020                magicCaretPosition = magicCaretPosition == null ? new Point() : magicCaretPosition;
021                TextEditor editor = getCodeHelper().getEditor();
022                Point locationOnScreen = editor.getLocationOnScreen();
023                setLocation(locationOnScreen.x + magicCaretPosition.x,
024                                locationOnScreen.y + magicCaretPosition.y + editorPanel.getEditor().getFont().getSize() + 4);
025                pack();
026
027                setVisible(true);
028
029                SwingUtilities.invokeLater(() -> {
030                        requestFocusInWindow();
031                });
032        }
033
034        public CodeHelper getCodeHelper() {
035                return codeHelper;
036        }
037
038}