/** * Copyright 2014 * SMEdit https://github.com/StarMade/SMEdit * SMTools https://github.com/StarMade/SMTools * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. **/ package jo.sm.ui; import java.awt.BorderLayout; import java.awt.Desktop; import java.awt.Desktop.Action; import java.awt.Dialog; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; import java.net.URI; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTextArea; import jo.sm.logic.utils.ResourceUtils; @SuppressWarnings("serial") public class DlgAbout extends JDialog { private final JEditorPane mMessage; private JScrollPane mScroller; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JTextArea jTextArea1; public DlgAbout(JFrame base) { super(base); initComponents(); setLocationRelativeTo(base); mMessage = new JEditorPane(); mMessage.setContentType("text/html"); mMessage.setEditable(false); try { mMessage.setText(ResourceUtils.loadSystemResourceString("about.htm", DlgAbout.class)); } catch (IOException e) { e.printStackTrace(); } mScroller = new JScrollPane(mMessage); JButton ok = new JButton("Close"); JButton audio = new JButton("Audiobook"); JButton ebook = new JButton("E-book"); JButton doc = new JButton("java docks"); JPanel client = new JPanel(); getContentPane().add(client); client.setLayout(new BorderLayout()); JPanel buttonBar = new JPanel(); getContentPane().add(buttonBar, BorderLayout.SOUTH); buttonBar.setLayout(new FlowLayout()); buttonBar.add(ok); buttonBar.add(doc); buttonBar.add(audio); buttonBar.add(ebook); // link ok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ev) { doOK(); } }); doc.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ev) { doGoto(BegPanel.DOCUMENTATION); } }); ebook.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ev) { doGoto(BegPanel.THE_RAIDERS_LAMENT); } }); audio.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ev) { doGoto(BegPanel.THE_RAIDERS_LAMENT_AUDIO); } }); Thread t = new Thread() { @Override public void run() { try { Thread.sleep(250); } catch (InterruptedException e) { e.printStackTrace(); } mScroller.getVerticalScrollBar().getModel().setValue(mScroller.getVerticalScrollBar().getModel().getMinimum()); } }; t.start(); } private void initComponents() { jTabbedPane1 = new JTabbedPane(); jPanel1 = new JPanel(); jLabel1 = new JLabel(); jPanel2 = new JPanel(); jScrollPane1 = new JScrollPane(); jTextArea1 = new JTextArea(); jPanel3 = new JPanel(); jLabel2 = new JLabel(); setTitle("About SMEdit"); setResizable(false); addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent evt) { doOK(); } }); jTabbedPane1.setPreferredSize(new Dimension(450, 500)); jPanel1.setPreferredSize(new Dimension(300, 300)); jPanel1.add(jLabel1); jLabel1.getAccessibleContext().setAccessibleName("jLabel1"); jTabbedPane1.addTab(" About ", jPanel1); jPanel2.setLayout(new BorderLayout()); jTextArea1.setColumns(20); jTextArea1.setFont(new java.awt.Font("Monospaced", 0, 12)); jTextArea1.setRows(5); jScrollPane1.setViewportView(jTextArea1); jPanel2.add(jScrollPane1, BorderLayout.CENTER); jTabbedPane1.addTab(" License ", jPanel2); jPanel3.add(jLabel2); jTabbedPane1.addTab(" Authors ", jPanel3); getContentPane().add(jTabbedPane1, BorderLayout.CENTER); pack(); } private void doOK() { setVisible(false); dispose(); } private void doGoto(String url) { if (Desktop.isDesktopSupported()) { Desktop desktop = Desktop.getDesktop(); if (desktop.isSupported(Action.BROWSE)) { try { desktop.browse(URI.create(url)); } catch (IOException e) { // handled below } } } } }