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}