@Override public void dispose() { saveLocation(getBounds()); super.dispose(); Disposer.dispose(myScreen); WelcomeFrame.resetInstance(); }
public FlatWelcomeFrame() { final JRootPane rootPane = getRootPane(); myScreen = new FlatWelcomeScreen(); final IdeGlassPaneImpl glassPane = new IdeGlassPaneImpl(rootPane) { @Override public void addNotify() { super.addNotify(); rootPane.remove(getProxyComponent()); //noinspection SSBasedInspection SwingUtilities.invokeLater( new Runnable() { public void run() { JBProtocolCommand.handleCurrentCommand(); } }); } }; setGlassPane(glassPane); glassPane.setVisible(false); // setUndecorated(true); setContentPane(myScreen.getWelcomePanel()); setTitle("Welcome to " + ApplicationNamesInfo.getInstance().getFullProductName()); AppUIUtil.updateWindowIcon(this); final int width = RecentProjectsManager.getInstance().getRecentProjectsActions(false).length == 0 ? 666 : 777; setSize(JBUI.size(width, 460)); setResizable(false); // int x = bounds.x + (bounds.width - getWidth()) / 2; // int y = bounds.y + (bounds.height - getHeight()) / 2; Point location = DimensionService.getInstance().getLocation(WelcomeFrame.DIMENSION_KEY, null); Rectangle screenBounds = ScreenUtil.getScreenRectangle(location != null ? location : new Point(0, 0)); setLocation( new Point( screenBounds.x + (screenBounds.width - getWidth()) / 2, screenBounds.y + (screenBounds.height - getHeight()) / 3)); // setLocation(x, y); ProjectManager.getInstance() .addProjectManagerListener( new ProjectManagerAdapter() { @Override public void projectOpened(Project project) { dispose(); } }); myBalloonLayout = new BalloonLayoutImpl(rootPane, JBUI.insets(8)); WelcomeFrame.setupCloseAction(this); MnemonicHelper.init(this); Disposer.register( ApplicationManager.getApplication(), new Disposable() { @Override public void dispose() { FlatWelcomeFrame.this.dispose(); } }); }