/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.wcs.netbeans.liquiface.ui.about; /* * #%L * Liquiface - GUI for Liquibase * %% * Copyright (C) 2013 Webstar Csoport Kft. * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 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 General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ import java.awt.Cursor; import java.awt.Desktop; import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; import org.openide.util.Exceptions; /** * * @author botond */ public class AboutPanel extends javax.swing.JPanel { private static final String LIQUIFACE_HOME_URL = "http://liquiface.org"; private String version; /** * Creates new form AboutPanel */ public AboutPanel() { initComponents(); homepageLink.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); } private String getVersion() { if (version == null) { version = loadVersionAndHandleException(); } return version; } private String loadVersionAndHandleException() { try { return loadVersion(); } catch (IOException ex) { //this should never happen Logger.getLogger(AboutPanel.class.getName()).log(Level.WARNING, "Version could not be loaded", ex); return ""; } } private String loadVersion() throws IOException { Properties versionProp = new Properties(); InputStream in = getClass().getResourceAsStream("/version.properties"); versionProp.load(in); in.close(); return versionProp.getProperty("version"); } /** * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The * content of this method is always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); homepageLink = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); versionNumber = new javax.swing.JLabel(); jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/liquiface_logo.png"))); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(AboutPanel.class, "AboutPanel.jLabel1.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(AboutPanel.class, "AboutPanel.jLabel2.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(AboutPanel.class, "AboutPanel.jLabel3.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel5, org.openide.util.NbBundle.getMessage(AboutPanel.class, "AboutPanel.jLabel5.text")); // NOI18N homepageLink.setForeground(new java.awt.Color(0, 102, 255)); org.openide.awt.Mnemonics.setLocalizedText(homepageLink, LIQUIFACE_HOME_URL); homepageLink.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { homepageLinkMouseClicked(evt); } }); org.openide.awt.Mnemonics.setLocalizedText(jLabel7, org.openide.util.NbBundle.getMessage(AboutPanel.class, "AboutPanel.jLabel7.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(versionNumber, getVersion()); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel2) .addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel7) .addComponent(versionNumber))) .addComponent(jLabel1) .addGroup(layout.createSequentialGroup() .addComponent(jLabel5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(homepageLink))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(18, 18, 18) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(versionNumber)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel7) .addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel5) .addComponent(homepageLink)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// </editor-fold>//GEN-END:initComponents private void homepageLinkMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_homepageLinkMouseClicked if (Desktop.isDesktopSupported()) { try { URI uri = new URI(LIQUIFACE_HOME_URL); Desktop.getDesktop().browse(uri); } catch (URISyntaxException ex) { Exceptions.printStackTrace(ex); } catch (IOException ex) { Exceptions.printStackTrace(ex); } } }//GEN-LAST:event_homepageLinkMouseClicked // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel homepageLink; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel7; private javax.swing.JLabel versionNumber; // End of variables declaration//GEN-END:variables }