void () { if (myWrapper != null) return; myProcessor = createProcessor(); String dialogGroupKey = myProcessor.getContextUserData(DiffUserDataKeys.DIALOG_GROUP_KEY); if (dialogGroupKey == null) dialogGroupKey = "MergeDialog"; myWrapper = new WindowWrapperBuilder(DiffUtil.getWindowMode(myHints), new MyPanel(myProcessor.getComponent())) .setProject(myProject) .setParent(myHints.getParent()) .setDimensionServiceKey(dialogGroupKey) .setPreferredFocusedComponent(() -> myProcessor.getPreferredFocusedComponent()) .setOnShowCallback(() -> initProcessor(myProcessor)) .setOnCloseHandler(() -> myProcessor.checkCloseAction()) .build(); myWrapper.setImages(DiffUtil.DIFF_FRAME_ICONS.getValue()); Disposer.register(myWrapper, myProcessor); Consumer<WindowWrapper> wrapperHandler = myHints.getWindowConsumer(); if (wrapperHandler != null) wrapperHandler.consume(myWrapper); }