/* * SK's Minecraft Launcher * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors * Please see LICENSE.txt for license information. */ package com.skcraft.launcher.creator.dialog; import com.skcraft.launcher.creator.Creator; import com.skcraft.launcher.creator.model.creator.RecentEntry; import com.skcraft.launcher.creator.swing.BorderCellRenderer; import com.skcraft.launcher.swing.SwingHelper; import lombok.Getter; import net.miginfocom.swing.MigLayout; import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; public class WelcomeDialog extends JFrame { @Getter private final JButton newButton = new JButton("New Workspace...", SwingHelper.createIcon(Creator.class, "new.png")); @Getter private final JButton openButton = new JButton("Open Workspace...", SwingHelper.createIcon(Creator.class, "open_folder.png")); @Getter private final JButton helpButton = new JButton("Help"); @Getter private final JButton aboutButton = new JButton("About"); @Getter private final JButton quitButton = new JButton("Quit"); @Getter private final JList<RecentEntry> recentList = new JList<>(); public WelcomeDialog() { super("Modpack Creator"); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); initComponents(); setResizable(false); pack(); setLocationRelativeTo(null); SwingHelper.setFrameIcon(this, Creator.class, "icon.png"); } private void initComponents() { recentList.setCellRenderer(new BorderCellRenderer(BorderFactory.createEmptyBorder(5, 5, 5, 5))); JPanel container = new JPanel(); container.setLayout(new MigLayout("insets 50 20")); container.add(new JLabel(SwingHelper.createIcon(Creator.class, "welcome_logo.png")), "wrap, gap 20 20, gapbottom 30"); container.add(newButton, "grow, gap 50 50, wrap"); container.add(openButton, "grow, gap 50 50, wrap"); JScrollPane recentScrollPane = new JScrollPane(recentList); recentScrollPane.setBorder(BorderFactory.createMatteBorder(0, 1, 0, 0, Color.LIGHT_GRAY)); recentScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); container.add(recentScrollPane, "dock east, w 280, h 390"); JPanel buttons = new JPanel(); buttons.setLayout(new MigLayout("insets 20", "[][]push[]")); buttons.add(helpButton); buttons.add(aboutButton); buttons.add(quitButton); container.add(buttons, "dock south"); add(container, BorderLayout.CENTER); getRootPane().registerKeyboardAction(e -> quitButton.doClick(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); } }