class SplineEditor extends JDialog {

    private SplineControlPanel splineControlPanel;

    public SplineEditor(String title) throws HeadlessException {
        super(WindowManager.getDefault().getMainWindow(), title, true);
        add(buildHeader(), BorderLayout.NORTH);
        add(buildControlPanel(), BorderLayout.CENTER);

        setResizable(false);

        pack();

        setLocationRelativeTo(getParent());
    }

    private Component buildHeader() {<FILL_FUNCTION_BODY>}

    private Component buildControlPanel() {
        splineControlPanel = new SplineControlPanel(this);
        return splineControlPanel;
    }

    public Point2D getControl1() {
        SplineDisplay display = splineControlPanel.getDisplay();
        return display.getControl1();
    }

    public void setControl1(Point2D control1) {
        SplineDisplay display = splineControlPanel.getDisplay();
        display.setControl1(control1);
    }

    public Point2D getControl2() {
        SplineDisplay display = splineControlPanel.getDisplay();
        return display.getControl2();
    }

    public void setControl2(Point2D control2) {
        SplineDisplay display = splineControlPanel.getDisplay();
        display.setControl2(control2);
    }
}

        ImageIcon icon = ImageUtilities.loadImageIcon("UIComponents/simulator.png", false);
        JXHeader header = new JXHeader(NbBundle.getMessage(SplineEditor.class, "splineEditor_title"),
            NbBundle.getMessage(SplineEditor.class, "splineEditor_header"),
            icon);
        return header;
    
<methods>public void <init>() ,public void <init>(java.awt.Frame) ,public void <init>(java.awt.Dialog) ,public void <init>(java.awt.Window) ,public void <init>(java.awt.Frame, boolean) ,public void <init>(java.awt.Frame, java.lang.String) ,public void <init>(java.awt.Dialog, boolean) ,public void <init>(java.awt.Dialog, java.lang.String) ,public void <init>(java.awt.Window, java.awt.Dialog.ModalityType) ,public void <init>(java.awt.Window, java.lang.String) ,public void <init>(java.awt.Frame, java.lang.String, boolean) ,public void <init>(java.awt.Dialog, java.lang.String, boolean) ,public void <init>(java.awt.Window, java.lang.String, java.awt.Dialog.ModalityType) ,public void <init>(java.awt.Frame, java.lang.String, boolean, java.awt.GraphicsConfiguration) ,public void <init>(java.awt.Dialog, java.lang.String, boolean, java.awt.GraphicsConfiguration) ,public void <init>(java.awt.Window, java.lang.String, java.awt.Dialog.ModalityType, java.awt.GraphicsConfiguration) ,public javax.accessibility.AccessibleContext getAccessibleContext() ,public java.awt.Container getContentPane() ,public int getDefaultCloseOperation() ,public java.awt.Component getGlassPane() ,public java.awt.Graphics getGraphics() ,public javax.swing.JMenuBar getJMenuBar() ,public javax.swing.JLayeredPane getLayeredPane() ,public javax.swing.JRootPane getRootPane() ,public javax.swing.TransferHandler getTransferHandler() ,public static boolean isDefaultLookAndFeelDecorated() ,public void remove(java.awt.Component) ,public void repaint(long, int, int, int, int) ,public void setContentPane(java.awt.Container) ,public void setDefaultCloseOperation(int) ,public static void setDefaultLookAndFeelDecorated(boolean) ,public void setGlassPane(java.awt.Component) ,public void setJMenuBar(javax.swing.JMenuBar) ,public void setLayeredPane(javax.swing.JLayeredPane) ,public void setLayout(java.awt.LayoutManager) ,public void setTransferHandler(javax.swing.TransferHandler) ,public void update(java.awt.Graphics) <variables>protected javax.accessibility.AccessibleContext accessibleContext,private int defaultCloseOperation,private static final java.lang.Object defaultLookAndFeelDecoratedKey,protected javax.swing.JRootPane rootPane,protected boolean rootPaneCheckingEnabled,private javax.swing.TransferHandler transferHandler