pcgen.gui2.converter.PCGenDataConvert.java Source code

Java tutorial

Introduction

Here is the source code for pcgen.gui2.converter.PCGenDataConvert.java

Source

/*
 * Copyright (c) 2009 Tom Parker <thpr@users.sourceforge.net>
 * 
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 */
package pcgen.gui2.converter;

import java.awt.CardLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

import org.apache.commons.lang3.SystemUtils;

import pcgen.gui2.converter.panel.CampaignPanel;
import pcgen.gui2.converter.panel.ConvertSubPanel;
import pcgen.gui2.converter.panel.GameModePanel;
import pcgen.gui2.converter.panel.RunConvertPanel;
import pcgen.gui2.converter.panel.SourceSelectionPanel;
import pcgen.gui2.converter.panel.StartupPanel;
import pcgen.gui2.converter.panel.SummaryPanel;
import pcgen.gui2.converter.panel.WriteDirectoryPanel;
import pcgen.gui2.tools.Utility;
import pcgen.persistence.CampaignFileLoader;
import pcgen.persistence.GameModeFileLoader;
import pcgen.system.ConfigurationSettings;
import pcgen.system.Main;
import pcgen.system.PCGenPropBundle;
import pcgen.system.PropertyContextFactory;
import pcgen.util.Logging;

public final class PCGenDataConvert extends JFrame {
    private static final long serialVersionUID = 3921586726890440663L;

    private final JPanel contentPanel = new JPanel(new CardLayout());

    private static PropertyContextFactory configFactory;

    private PCGenDataConvert() {
        super("PCGenDataConvert");
    }

    private static PCGenDataConvert getConverter() {
        PCGenDataConvert frame = new PCGenDataConvert();
        frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        List<ConvertSubPanel> panels = new ArrayList<>();
        GameModeFileLoader gameModeFileLoader = new GameModeFileLoader();
        CampaignFileLoader campaignFileLoader = new CampaignFileLoader();
        panels.add(new StartupPanel(gameModeFileLoader, campaignFileLoader));

        final ConvertPanel installPanel = new ConvertPanel(panels);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent wEvent) {
                installPanel.checkExit();
            }
        });

        panels.add(new SourceSelectionPanel());
        panels.add(new GameModePanel(campaignFileLoader));
        panels.add(new CampaignPanel());

        panels.add(new WriteDirectoryPanel());

        panels.add(new SummaryPanel());

        panels.add(new RunConvertPanel(installPanel.getStatusField()));

        frame.getContentPane().add(installPanel);
        frame.pack();
        Utility.centerComponent(frame, false);
        return frame;
    }

    public static void main(String[] args) {
        Logging.log(Level.INFO, "Starting PCGen Data Converter v" + PCGenPropBundle.getVersionNumber()); //$NON-NLS-1$
        configFactory = new PropertyContextFactory(SystemUtils.USER_DIR);
        configFactory.registerAndLoadPropertyContext(ConfigurationSettings.getInstance());
        Main.loadProperties(true);
        getConverter().setVisible(true);
    }

    static void savePrefs() {
        configFactory.savePropertyContexts();
        PropertyContextFactory.getDefaultFactory().savePropertyContexts();
    }
}