/* * Copyright © 2014 <code@io7m.com> http://io7m.com * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ package com.io7m.blueberry.documentation; import java.net.URI; import java.net.URISyntaxException; import javax.swing.JFrame; import javax.swing.SwingUtilities; import com.io7m.blueberry.TestReportConfig; import com.io7m.blueberry.gui.GUI; import com.io7m.blueberry.gui.GUIProjectInfo; import com.io7m.blueberry.gui.GUIProjectVersion; import com.io7m.junreachable.UnreachableCodeException; /** * A trivial GUI example. */ public final class GUIExampleMain { private GUIExampleMain() { throw new UnreachableCodeException(); } /** * The main function. * * @param args * Command line arguments. * @throws URISyntaxException * Upon invalid URIs. */ public static void main( final String[] args) throws URISyntaxException { final TestReportConfig xml_config = new TestReportConfig(); final GUIProjectVersion version = new GUIProjectVersion(0, 1, 0, "rc1"); final GUIProjectInfo info = new GUIProjectInfo("blueberry-example", version); info.addPackagePrefix("com.io7m.blueberry"); info.setProjectURI(new URI("http://io7m.com/software/blueberry")); info.setProjectIcon(GUIExampleMain.class.getResource( "/com/io7m/blueberry/gui_example/blueberry48.png").toURI()); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { final GUI g = new GUI(info, xml_config); g.getMainWindow().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }); } }
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright © 2013 <code@io7m.com> http://io7m.com Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --> <r:grammar xmlns:b="http://schemas.io7m.com/blueberry/1.0.0" xmlns:r="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <r:start combine="choice"> <r:choice> <r:ref name="blueberry.report"/> </r:choice> </r:start> <r:define name="blueberry.standard-attributes"> <r:optional> <r:attribute name="xml:base"> <r:text/> </r:attribute> </r:optional> <r:optional> <r:attribute name="xml:lang"> <r:text/> </r:attribute> </r:optional> </r:define> <r:define name="blueberry.space-attribute"> <r:optional> <r:attribute name="xml:space"> <r:choice> <r:value>default</r:value> <r:value>preserve</r:value> </r:choice> </r:attribute> </r:optional> </r:define> <r:define name="blueberry.trace-class"> <r:element name="b:trace-class"> <r:ref name="blueberry.standard-attributes"/> <r:text/> </r:element> </r:define> <r:define name="blueberry.trace-method"> <r:element name="b:trace-method"> <r:ref name="blueberry.standard-attributes"/> <r:text/> </r:element> </r:define> <r:define name="blueberry.trace-file"> <r:element name="b:trace-file"> <r:ref name="blueberry.standard-attributes"/> <r:text/> </r:element> </r:define> <r:define name="blueberry.trace-line"> <r:element name="b:trace-line"> <r:ref name="blueberry.standard-attributes"/> <r:data type="integer"/> </r:element> </r:define> <r:define name="blueberry.trace"> <r:element name="b:trace"> <r:ref name="blueberry.standard-attributes"/> <r:interleave> <r:ref name="blueberry.trace-class"/> <r:ref name="blueberry.trace-method"/> <r:ref name="blueberry.trace-file"/> <r:ref name="blueberry.trace-line"/> </r:interleave> </r:element> </r:define> <r:define name="blueberry.elapsed-nanos"> <r:element name="b:elapsed-nanos"> <r:ref name="blueberry.standard-attributes"/> <r:data type="unsignedLong"/> </r:element> </r:define> <r:define name="blueberry.output-stdout"> <r:element name="b:output-stdout"> <r:ref name="blueberry.standard-attributes"/> <r:ref name="blueberry.space-attribute"/> <r:text/> </r:element> </r:define> <r:define name="blueberry.output-stderr"> <r:element name="b:output-stderr"> <r:ref name="blueberry.standard-attributes"/> <r:ref name="blueberry.space-attribute"/> <r:text/> </r:element> </r:define> <r:define name="blueberry.message"> <r:element name="b:message"> <r:ref name="blueberry.standard-attributes"/> <r:text/> </r:element> </r:define> <r:define name="blueberry.exception"> <r:element name="b:exception"> <r:ref name="blueberry.standard-attributes"/> <r:attribute name="type"> <r:text/> </r:attribute> <r:attribute name="level"> <r:data type="integer"/> </r:attribute> <r:interleave> <r:ref name="blueberry.message"/> <r:zeroOrMore> <r:ref name="blueberry.trace"/> </r:zeroOrMore> </r:interleave> </r:element> </r:define> <r:define name="blueberry.exceptions"> <r:element name="b:exceptions"> <r:ref name="blueberry.standard-attributes"/> <r:zeroOrMore> <r:ref name="blueberry.exception"/> </r:zeroOrMore> </r:element> </r:define> <r:define name="blueberry.test-failed"> <r:element name="b:test-failed"> <r:ref name="blueberry.standard-attributes"/> <r:attribute name="name"> <r:text/> </r:attribute> <r:interleave> <r:ref name="blueberry.elapsed-nanos"/> <r:ref name="blueberry.exceptions"/> <r:ref name="blueberry.output-stdout"/> <r:ref name="blueberry.output-stderr"/> </r:interleave> </r:element> </r:define> <r:define name="blueberry.test-skipped"> <r:element name="b:test-skipped"> <r:ref name="blueberry.standard-attributes"/> <r:attribute name="name"> <r:text/> </r:attribute> <r:interleave> <r:element name="b:reason"> <r:text/> </r:element> <r:ref name="blueberry.output-stdout"/> <r:ref name="blueberry.output-stderr"/> </r:interleave> </r:element> </r:define> <r:define name="blueberry.test-missed"> <r:element name="b:test-missed"> <r:ref name="blueberry.standard-attributes"/> <r:attribute name="name"> <r:text/> </r:attribute> <r:empty/> </r:element> </r:define> <r:define name="blueberry.test-succeeded"> <r:element name="b:test-succeeded"> <r:ref name="blueberry.standard-attributes"/> <r:attribute name="name"> <r:text/> </r:attribute> <r:interleave> <r:ref name="blueberry.elapsed-nanos"/> <r:ref name="blueberry.output-stdout"/> <r:ref name="blueberry.output-stderr"/> </r:interleave> </r:element> </r:define> <r:define name="blueberry.class"> <r:element name="b:class"> <r:ref name="blueberry.standard-attributes"/> <r:attribute name="name"> <r:text/> </r:attribute> <r:zeroOrMore> <r:choice> <r:ref name="blueberry.test-succeeded"/> <r:ref name="blueberry.test-failed"/> <r:ref name="blueberry.test-skipped"/> <r:ref name="blueberry.test-missed"/> </r:choice> </r:zeroOrMore> </r:element> </r:define> <r:define name="blueberry.classes"> <r:element name="b:classes"> <r:ref name="blueberry.standard-attributes"/> <r:zeroOrMore> <r:ref name="blueberry.class"/> </r:zeroOrMore> </r:element> </r:define> <r:define name="blueberry.system-environment-variable"> <r:element name="b:system-environment-variable"> <r:ref name="blueberry.standard-attributes"/> <r:interleave> <r:element name="b:key"> <r:text/> </r:element> <r:element name="b:value"> <r:text/> </r:element> </r:interleave> </r:element> </r:define> <r:define name="blueberry.system-environment"> <r:element name="b:system-environment"> <r:ref name="blueberry.standard-attributes"/> <r:zeroOrMore> <r:ref name="blueberry.system-environment-variable"/> </r:zeroOrMore> </r:element> </r:define> <r:define name="blueberry.system-property"> <r:element name="b:system-property"> <r:ref name="blueberry.standard-attributes"/> <r:interleave> <r:element name="b:key"> <r:text/> </r:element> <r:element name="b:value"> <r:text/> </r:element> </r:interleave> </r:element> </r:define> <r:define name="blueberry.system-properties"> <r:element name="b:system-properties"> <r:ref name="blueberry.standard-attributes"/> <r:zeroOrMore> <r:ref name="blueberry.system-property"/> </r:zeroOrMore> </r:element> </r:define> <r:define name="blueberry.package-info"> <r:element name="b:package-info"> <r:ref name="blueberry.standard-attributes"/> <r:element name="b:name"> <r:text/> </r:element> <r:element name="b:version"> <r:text/> </r:element> </r:element> </r:define> <r:define name="blueberry.report"> <r:element name="b:report"> <r:ref name="blueberry.standard-attributes"/> <r:interleave> <r:ref name="blueberry.package-info"/> <r:ref name="blueberry.classes"/> <r:optional> <r:ref name="blueberry.system-properties"/> </r:optional> <r:optional> <r:ref name="blueberry.system-environment"/> </r:optional> </r:interleave> </r:element> </r:define> </r:grammar>