package mage.client.dialog; import mage.client.MageFrame; import mage.utils.MageVersion; import javax.swing.*; import java.awt.event.KeyEvent; /** * @author JayDi85 */ public class AboutDialog extends MageDialog { private static String devsList = "BetaSteward, Noxx, Eugen.Rivniy, North, LevelX2, " + "Jeff, Plopman, dustinconrad, emerald000, fireshoes, lunaskyrise, " + "mnapoleon, jgod, LoneFox, drmDev, spjspj, TheElk801, L_J, JayDi85, " + "jmharmon, Ketsuban, hitch17"; public AboutDialog() { initComponents(); this.modal = false; panelDevs.setText(devsList + " and hundreds of other developers from https://github.com/magefree/mage/graphs/contributors"); } public void showDialog(MageVersion version) { this.lblVersion.setText(version.toString()); this.setLocation(100, 100); // windows settings MageFrame.getDesktop().remove(this); if (this.isModal()) { MageFrame.getDesktop().add(this, JLayeredPane.MODAL_LAYER); } else { MageFrame.getDesktop().add(this, JLayeredPane.PALETTE_LAYER); } this.makeWindowCentered(); // Close on "ESC" registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); this.setVisible(true); } private void onCancel() { this.hideDialog(); } /** * 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") // //GEN-BEGIN:initComponents private void initComponents() { btnOk = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); lblVersion = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); btnWhatsNew = new javax.swing.JButton(); scrollDevs = new javax.swing.JScrollPane(); panelDevs = new javax.swing.JTextPane(); labelDevs = new javax.swing.JLabel(); setMaximizable(true); setTitle("About XMage"); btnOk.setText("Close"); btnOk.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnOkActionPerformed(evt); } }); jLabel1.setText("XMage client"); lblVersion.setText("0.0.0"); jLabel2.setText("Courtesy: BetaSteward@googlemail.com. Site: http://xmage.de/"); btnWhatsNew.setText("What's new"); btnWhatsNew.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnWhatsNewActionPerformed(evt); } }); scrollDevs.setBorder(null); panelDevs.setEditable(false); scrollDevs.setViewportView(panelDevs); labelDevs.setText("Developers:"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(scrollDevs) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(btnWhatsNew, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnOk, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(lblVersion)) .addComponent(jLabel2) .addComponent(labelDevs)) .addGap(0, 80, Short.MAX_VALUE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(lblVersion)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(labelDevs) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(scrollDevs, javax.swing.GroupLayout.DEFAULT_SIZE, 161, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btnOk, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnWhatsNew, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); pack(); }// //GEN-END:initComponents private void btnOkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOkActionPerformed onCancel(); }//GEN-LAST:event_btnOkActionPerformed private void btnWhatsNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnWhatsNewActionPerformed MageFrame.getInstance().showWhatsNewDialog(true); }//GEN-LAST:event_btnWhatsNewActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnOk; private javax.swing.JButton btnWhatsNew; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel labelDevs; private javax.swing.JLabel lblVersion; private javax.swing.JTextPane panelDevs; private javax.swing.JScrollPane scrollDevs; // End of variables declaration//GEN-END:variables }