--- /dev/null
+package com.billkuker.rocketry.motorsim.visual.workbench;\r
+\r
+import java.awt.BorderLayout;\r
+import java.awt.Color;\r
+import java.awt.Desktop;\r
+import java.awt.event.MouseEvent;\r
+import java.awt.event.MouseListener;\r
+import java.io.BufferedReader;\r
+import java.io.IOException;\r
+import java.io.InputStreamReader;\r
+import java.net.URI;\r
+import java.net.URISyntaxException;\r
+\r
+import javax.swing.JDialog;\r
+import javax.swing.JFrame;\r
+import javax.swing.JLabel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextArea;\r
+import javax.swing.SwingUtilities;\r
+\r
+public class About extends JDialog {\r
+ private static final long serialVersionUID = 1L;\r
+ private final JFrame f;\r
+\r
+ private final static URI webpage;\r
+ static {\r
+ try {\r
+ webpage = new URI(\r
+ "http://content.billkuker.com/projects/rocketry/software");\r
+ } catch (URISyntaxException e) {\r
+ throw new Error(e);\r
+ }\r
+ }\r
+\r
+ public About(final JFrame f) {\r
+ super(f, "About " + MotorWorkbench.name, true);\r
+ this.f = f;\r
+ setSize(400, 250);\r
+\r
+ setIconImage(f.getIconImage());\r
+\r
+ setLayout(new BorderLayout());\r
+ add(new JLabel("<html>" + MotorWorkbench.name\r
+ + " ©2010 Bill Kuker</html>"), BorderLayout.NORTH);\r
+ JTextArea text;\r
+ add(new JScrollPane(text = new JTextArea()), BorderLayout.CENTER);\r
+ text.setEditable(false);\r
+ StringBuffer lic = new StringBuffer();\r
+ BufferedReader in = new BufferedReader(new InputStreamReader(getClass()\r
+ .getResourceAsStream("license.txt")));\r
+ String line;\r
+ try {\r
+ while ((line = in.readLine()) != null) {\r
+ lic.append(line);\r
+ lic.append("\n");\r
+ }\r
+ } catch (IOException e1) {\r
+ // TODO Auto-generated catch block\r
+ e1.printStackTrace();\r
+ }\r
+ text.setText(lic.toString());\r
+ JLabel link = new JLabel(\r
+ "<html><u>Visit MotorSim on the Web</u></html>");\r
+ link.setForeground(Color.BLUE);\r
+ add(link, BorderLayout.SOUTH);\r
+ link.addMouseListener(new MouseListener() {\r
+\r
+ @Override\r
+ public void mouseReleased(MouseEvent e) {\r
+ }\r
+\r
+ @Override\r
+ public void mousePressed(MouseEvent e) {\r
+ }\r
+\r
+ @Override\r
+ public void mouseExited(MouseEvent e) {\r
+ }\r
+\r
+ @Override\r
+ public void mouseEntered(MouseEvent e) {\r
+ }\r
+\r
+ @Override\r
+ public void mouseClicked(MouseEvent e) {\r
+ if (Desktop.isDesktopSupported()) {\r
+ Desktop desktop = Desktop.getDesktop();\r
+ try {\r
+ desktop.browse(webpage);\r
+ } catch (IOException x) {\r
+\r
+ }\r
+ } else {\r
+\r
+ }\r
+\r
+ }\r
+ });\r
+ }\r
+\r
+ @Override\r
+ public void setVisible(boolean v) {\r
+ int x = f.getLocation().x + f.getWidth() / 2 - getWidth() / 2;\r
+ int y = f.getLocation().y + f.getHeight() / 2 - getHeight() / 2;\r
+ setLocation(x, y);\r
+ super.setVisible(v);\r
+ }\r
+\r
+ public static void main(String args[]) {\r
+ JFrame f = new JFrame();\r
+ f.setSize(1024, 768);\r
+ f.setVisible(true);\r
+ final About s = new About(f);\r
+ SwingUtilities.invokeLater(new Runnable() {\r
+\r
+ @Override\r
+ public void run() {\r
+ s.setVisible(true);\r
+\r
+ }\r
+ });\r
+\r
+ }\r
+}\r
--- /dev/null
+THIS SOFTWARE IS INTENDED ONLY FOR THE\r
+SIMULATION OF SOLID ROCKET MOTORS AS A\r
+SUBSTITUTE FOR THE CONSTRUCTION AND\r
+TESTING OF SOLID ROCKET MOTORS. THIS\r
+SOFTWARE IS NEITHER INTENDED NOR LICENSED\r
+AS AN AID IN EITHER THE DESIGN OR\r
+CONSTRUCTION OF SOLID ROCKET MOTORS.\r
+\r
+You acknowledge that this software is not\r
+designed, licensed or intended for use in\r
+the design, construction, operation or\r
+maintenance of any rocket motor or motor\r
+component.\r
+\r
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT\r
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY\r
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING,\r
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r
+OF MERCHANTABILITY AND FITNESS FOR A\r
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\r
+EVENT SHALL THE COPYRIGHT OWNER OR\r
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\r
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\r
+OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
+GOODS OR SERVICES; LOSS OF USE, DATA, OR\r
+PROFITS; OR BUSINESS INTERRUPTION)\r
+HOWEVER CAUSED AND ON ANY THEORY OF\r
+LIABILITY, WHETHER IN CONTRACT, STRICT\r
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE\r
+OR OTHERWISE) ARISING IN ANY WAY OUT OF\r
+THE USE OF THIS SOFTWARE, EVEN IF ADVISED\r
+OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file