/* * Copyright (C) 2015 Shashank Tulsyan <shashaank at neembuu.com> * * 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/>. */ package neembuu.uploader; import java.awt.Desktop; import java.net.URI; import java.util.logging.Level; import neembuu.uploader.utils.NULogger; /** * * @author dsivaji */ public class AboutNeembuuUploader extends javax.swing.JDialog { //Singleton private static AboutNeembuuUploader INSTANCE = new AboutNeembuuUploader(NeembuuUploader.getInstance(),true); /** * * @return Singleton Instance of AboutNeembuuUploader */ public static AboutNeembuuUploader getInstance() { // NULogger.getLogger().info("Opening About window"); return INSTANCE; } /** * Creates new form AboutNeembuuUploader */ public AboutNeembuuUploader(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); //here we will use the UI aboutVersionLabel.setText("<html><b>v" + NeembuuUploader.getVersionNumberForUI() + "</b></html>"); } private AboutNeembuuUploader() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } /** * 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() { aboutPanel = new javax.swing.JPanel(); aboutProductPanel = new javax.swing.JPanel(); aboutLogo = new javax.swing.JLabel(); aboutLabel = new javax.swing.JLabel(); aboutVersionLabel = new javax.swing.JLabel(); licenseLabel = new javax.swing.JLabel(); authorLabel = new javax.swing.JLabel(); descLabel = new javax.swing.JLabel(); siteLabel = new javax.swing.JLabel(); aboutTabbedPane = new javax.swing.JTabbedPane(); jPanel1 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); developersTable = new javax.swing.JTable(); jPanel2 = new javax.swing.JPanel(); jScrollPane2 = new javax.swing.JScrollPane(); translatorsTable = new javax.swing.JTable(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); aboutProductPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Neembuu Uploader")); aboutLogo.setToolTipText("Open Source File Splitter and Joiner"); aboutLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/neembuuuploader/resources/AboutLogo.png"))); // NOI18N aboutVersionLabel.setText("..."); licenseLabel.setText("License: GPLv3.0"); authorLabel.setText("<html>The project is maintained by volunteers of the NU project. Please find us at <a href='http://neembuu.com/uploader/forums'>http://neembuu.com/uploader/forums</a></html>"); descLabel.setText("<html><b>Neembuu Uploader</b> is reviewed as the simplest and fastest file uploader program..<br />You can request new features, report bugs or broken plugin at Neembuu Uploader site..<br /><br /><i> P.S. We are in need of developers and translators..</i></html>"); siteLabel.setText("<html><a href='http://neembuu.com/uploader'>http://neembuu.com/uploader</a></html>"); siteLabel.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); siteLabel.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { siteLabelMouseClicked(evt); } }); javax.swing.GroupLayout aboutProductPanelLayout = new javax.swing.GroupLayout(aboutProductPanel); aboutProductPanel.setLayout(aboutProductPanelLayout); aboutProductPanelLayout.setHorizontalGroup( aboutProductPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(aboutProductPanelLayout.createSequentialGroup() .addGroup(aboutProductPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(aboutLogo) .addGroup(aboutProductPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(aboutProductPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(descLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .addGroup(aboutProductPanelLayout.createSequentialGroup() .addComponent(aboutLabel) .addGap(18, 18, 18) .addComponent(aboutVersionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addComponent(licenseLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(authorLabel) .addComponent(siteLabel)))) .addContainerGap()) ); aboutProductPanelLayout.setVerticalGroup( aboutProductPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(aboutProductPanelLayout.createSequentialGroup() .addGroup(aboutProductPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(aboutProductPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(aboutVersionLabel) .addComponent(aboutLabel)) .addComponent(aboutLogo)) .addGap(8, 8, 8) .addComponent(licenseLabel) .addGap(8, 8, 8) .addComponent(authorLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(8, 8, 8) .addComponent(descLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(8, 8, 8) .addComponent(siteLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(12, 12, 12)) ); developersTable.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {"Davide Pastore", "Plugins and many features"}, {"Dinesh Sivaji", "Plugins for lots of sites"}, {"Jeyanthan Inbasekaran", "Community Documentation"}, {"MNidhal", "Plugins"}, {"Paralytic", "Plugins"}, {"Shashaank Tulsyan", "Code Reviewing, Translation Framework"}, {"Vigneshwaran Raveendran", "Framework, User Interface"} }, new String [] { "Developer", "Role" } ) { Class[] types = new Class [] { java.lang.String.class, java.lang.String.class }; boolean[] canEdit = new boolean [] { false, false }; public Class getColumnClass(int columnIndex) { return types [columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); developersTable.getTableHeader().setReorderingAllowed(false); jScrollPane1.setViewportView(developersTable); developersTable.getColumnModel().getColumn(0).setPreferredWidth(200); developersTable.getColumnModel().getColumn(0).setMaxWidth(250); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 760, Short.MAX_VALUE) .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addGap(5, 5, 5) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(5, 5, 5)) ); aboutTabbedPane.addTab("<html><b>Development Team</b></html>", jPanel1); translatorsTable.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {"Brazilian Portugese", "Maykon da Silva Siqueira"}, {"Catalan", "Jordi Castells"}, {"Chinese (Simplified)", "Raullen Qi Chai"}, {"Chinese (Traditional)", "吳宇軒 (Nathan Wu)"}, {"French", "Stéphane Rajalu"}, {"German", "Florian Haag"}, {"Greek", "Vasilis Lessis"}, {"Hebrew", "Noam Y. Gherson, Itamar Shoham"}, {"Hindi", "Shashaank Tulsyan, Vaishnavi Vasanth"}, {"Hungarian", "Krisztian Mukli"}, {"Italian", "Salvo Cortesiano"}, {"Malay", "Natesan Vellaichamy"}, {"Russian", "Ruslan Matsiev"}, {"Sourashtra", "Balaji Chithu Sivanath"}, {"Spanish", "Jordi Castells"}, {"Tamil", "Vigneshwaran Raveendran"}, {"Turkish", "Atif Zafrak"}, {"Vietnamese", "Nguyen Kien"} }, new String [] { "Language", "Translators" } ) { Class[] types = new Class [] { java.lang.String.class, java.lang.String.class }; boolean[] canEdit = new boolean [] { false, false }; public Class getColumnClass(int columnIndex) { return types [columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); jScrollPane2.setViewportView(translatorsTable); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 760, Short.MAX_VALUE) .addContainerGap()) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE) .addContainerGap()) ); aboutTabbedPane.addTab("<html><b>Translation Team</b></html>", jPanel2); javax.swing.GroupLayout aboutPanelLayout = new javax.swing.GroupLayout(aboutPanel); aboutPanel.setLayout(aboutPanelLayout); aboutPanelLayout.setHorizontalGroup( aboutPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(aboutPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(aboutPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(aboutProductPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(aboutTabbedPane, javax.swing.GroupLayout.Alignment.LEADING)) .addContainerGap()) ); aboutPanelLayout.setVerticalGroup( aboutPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(aboutPanelLayout.createSequentialGroup() .addContainerGap() .addComponent(aboutProductPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(8, 8, 8) .addComponent(aboutTabbedPane, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(79, Short.MAX_VALUE)) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(aboutPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(0, 0, 0)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(aboutPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(0, 0, 0)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void siteLabelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_siteLabelMouseClicked if (!Desktop.isDesktopSupported()) { return; } try { NULogger.getLogger().log(Level.INFO, "{0}Opening Neembuu Site..", getClass().getName()); Desktop.getDesktop().browse(new URI("http://neembuuuploader.sourceforge.net/")); } catch (Exception ex) { } }//GEN-LAST:event_siteLabelMouseClicked /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { new AboutNeembuuUploader().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel aboutLabel; private javax.swing.JLabel aboutLogo; javax.swing.JPanel aboutPanel; private javax.swing.JPanel aboutProductPanel; private javax.swing.JTabbedPane aboutTabbedPane; private javax.swing.JLabel aboutVersionLabel; private javax.swing.JLabel authorLabel; private javax.swing.JLabel descLabel; private javax.swing.JTable developersTable; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JLabel licenseLabel; private javax.swing.JLabel siteLabel; private javax.swing.JTable translatorsTable; // End of variables declaration//GEN-END:variables }