com.opendoorlogistics.studio.dialogs.AboutBoxDialog.java Source code

Java tutorial

Introduction

Here is the source code for com.opendoorlogistics.studio.dialogs.AboutBoxDialog.java

Source

/*******************************************************************************
 * Copyright (c) 2014 Open Door Logistics (www.opendoorlogistics.com)
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Lesser Public License v3
 * which accompanies this distribution, and is available at http://www.gnu.org/licenses/lgpl.txt
 ******************************************************************************/
package com.opendoorlogistics.studio.dialogs;

import java.awt.Dimension;
import java.io.InputStream;
import java.io.StringWriter;

import javax.swing.JFrame;

import org.apache.commons.io.Charsets;
import org.apache.commons.io.IOUtils;

import com.opendoorlogistics.core.AppConstants;
import com.opendoorlogistics.core.utils.ui.TextInformationDialog;

final public class AboutBoxDialog extends TextInformationDialog {

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        try {
            AboutBoxDialog dialog = new AboutBoxDialog(null, true);
            dialog.setVisible(true);
        } catch (Throwable e) {
            //   e.printStackTrace();
        }
    }

    /**
     * Create the dialog.
     */
    public AboutBoxDialog(JFrame parent, boolean showLicenses) {
        this(parent, "About " + AppConstants.ORG_NAME, info(showLicenses));
    }

    public AboutBoxDialog(JFrame parent, String title, String text) {
        super(parent, title, text, true, false, true);
        setPreferredSize(new Dimension(600, 300));
        pack();
    }

    private static String info(boolean showLicenses) {

        // Use own class loader to prevent problems when jar loaded by reflection
        InputStream is = AboutBoxDialog.class
                .getResourceAsStream(showLicenses ? "/resources/Licences.html" : "/resources/About.html");
        StringWriter writer = new StringWriter();
        try {
            IOUtils.copy(is, writer, Charsets.UTF_8);
            is.close();
        } catch (Throwable e) {
        }

        String s = writer.toString();

        s = replaceVersionNumberTags(s);
        return s;
    }

    public static String replaceVersionNumberTags(String s) {
        long maxMemoryMb = Runtime.getRuntime().maxMemory() / (1024 * 1024);
        s = s.replace("VERSION_NUMBER", AppConstants.getAppVersion().toString());
        s = s.replace("JAVA_VERSION", System.getProperty("java.version") + ", max memory " + maxMemoryMb + " MB");
        return s;
    }

}