home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2001 October / PCpro_2001_10.ISO / xml / xmlpro / data1.cab / Program_Executable_FILES / xmlpro.jar / Register.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-09-15  |  5.4 KB  |  189 lines

  1. import Acme.Crypto.CryptoUtils;
  2. import Acme.Crypto.Hash;
  3. import Acme.Crypto.ShaHash;
  4. import java.awt.BorderLayout;
  5. import java.awt.Color;
  6. import java.awt.Component;
  7. import java.awt.Container;
  8. import java.awt.Dialog;
  9. import java.awt.Dimension;
  10. import java.awt.Toolkit;
  11. import java.awt.Window;
  12. import java.awt.event.ActionEvent;
  13. import java.awt.event.ActionListener;
  14. import java.io.FileInputStream;
  15. import java.io.FileNotFoundException;
  16. import java.io.FileOutputStream;
  17. import java.io.IOException;
  18. import java.util.EventObject;
  19. import java.util.Hashtable;
  20. import java.util.Properties;
  21. import javax.swing.JButton;
  22. import javax.swing.JDialog;
  23. import javax.swing.JFrame;
  24. import javax.swing.JLabel;
  25. import javax.swing.JPanel;
  26. import javax.swing.JTextField;
  27. import jclass.bwt.JCAlignerLayout;
  28.  
  29. public class Register extends JDialog implements ActionListener {
  30.    static String hashModifier = "ver1";
  31.    static String fileName = "xmlpro.prp";
  32.    static String timeName = "runtime.prp";
  33.    static String regName;
  34.    static String regCode;
  35.    static String regComp;
  36.    long regTime;
  37.    JTextField nameEntry;
  38.    JTextField codeEntry;
  39.    JTextField compEntry;
  40.    boolean cancelled = false;
  41.    JButton cancel;
  42.    // $FF: renamed from: ok javax.swing.JButton
  43.    JButton field_0;
  44.    JFrame frm;
  45.  
  46.    Register(JFrame var1) {
  47.       super(var1, "Register XML Pro", true);
  48.       this.frm = var1;
  49.       ((Component)this).setBackground(Color.lightGray);
  50.       ((Component)this).setSize(300, 175);
  51.       this.centerOnScreen();
  52.       ((Dialog)this).setResizable(false);
  53.       StubPanel var2 = new StubPanel();
  54.       JPanel var3 = new JPanel();
  55.       JPanel var4 = new JPanel();
  56.       ((JDialog)this).getContentPane().setLayout(new BorderLayout());
  57.       ((JDialog)this).getContentPane().add("Center", var2);
  58.       ((Container)var3).setLayout(new JCAlignerLayout());
  59.       ((Container)var3).add(new JLabel("Name", 2));
  60.       this.nameEntry = new JTextField(20);
  61.       ((Container)var3).add(this.nameEntry);
  62.       ((Container)var3).add(new JLabel("Company", 2));
  63.       this.compEntry = new JTextField(20);
  64.       ((Container)var3).add(this.compEntry);
  65.       ((Container)var3).add(new JLabel("Registration Code", 2));
  66.       this.codeEntry = new JTextField(12);
  67.       ((Container)var3).add(this.codeEntry);
  68.       ((Container)var2).setLayout(new BorderLayout());
  69.       ((Container)var2).add("Center", var3);
  70.       ((Container)var4).add(this.field_0 = new JButton("  OK  "));
  71.       ((Container)var4).add(this.cancel = new JButton("Cancel"));
  72.       ((Container)var2).add("South", var4);
  73.       this.field_0.addActionListener(this);
  74.       this.cancel.addActionListener(this);
  75.       this.nameEntry.requestFocus();
  76.    }
  77.  
  78.    public void actionPerformed(ActionEvent var1) {
  79.       if (((EventObject)var1).getSource() == this.cancel) {
  80.          this.cancelled = true;
  81.          ((Window)this).dispose();
  82.       } else {
  83.          regName = this.nameEntry.getText();
  84.          regCode = this.codeEntry.getText();
  85.          regComp = this.compEntry.getText();
  86.          Properties var2 = new Properties();
  87.          if (regName.length() > 0 && regCode.length() > 0) {
  88.             String var4 = generateCode(regName);
  89.             if (var4.equals(regCode)) {
  90.                ((Hashtable)var2).put("regname", regName);
  91.                ((Hashtable)var2).put("regcode", regCode);
  92.                ((Hashtable)var2).put("regcomp", regComp);
  93.  
  94.                try {
  95.                   FileOutputStream var3 = new FileOutputStream(fileName);
  96.                   var2.save(var3, "RegInfo");
  97.                   var3.close();
  98.                } catch (Exception var6) {
  99.                   MesgBox var5 = new MesgBox(this.frm, Strings.ErrorWritingRegInfo);
  100.                   ((Dialog)var5).show();
  101.                }
  102.  
  103.                ((Window)this).dispose();
  104.             } else {
  105.                MesgBox var7 = new MesgBox(this.frm, "Invalid Registration Code");
  106.                ((Dialog)var7).show();
  107.             }
  108.          }
  109.  
  110.       }
  111.    }
  112.  
  113.    protected void centerOnScreen() {
  114.       Dimension var1 = Toolkit.getDefaultToolkit().getScreenSize();
  115.       Dimension var2 = ((Component)this).getSize();
  116.       ((Component)this).setLocation((var1.width - var2.width) / 2, (var1.height - var2.height) / 2);
  117.    }
  118.  
  119.    static boolean checkRegistered() {
  120.       Properties var0 = new Properties();
  121.  
  122.       try {
  123.          FileInputStream var1 = new FileInputStream(fileName);
  124.          var0.load(var1);
  125.          regName = var0.getProperty("regname");
  126.          regComp = var0.getProperty("regcomp");
  127.          regCode = var0.getProperty("regcode");
  128.          var1.close();
  129.       } catch (FileNotFoundException var3) {
  130.          return false;
  131.       } catch (IOException var4) {
  132.          return false;
  133.       }
  134.  
  135.       if (regName.equals("")) {
  136.          return false;
  137.       } else {
  138.          String var2 = generateCode(regName);
  139.          return !regCode.equals("") && regCode.equals(var2);
  140.       }
  141.    }
  142.  
  143.    static boolean checkTimeout(XMLPro var0) {
  144.       long var1 = System.currentTimeMillis() / 1000L;
  145.  
  146.       long var3;
  147.       try {
  148.          Properties var11 = new Properties();
  149.          FileInputStream var13 = new FileInputStream(timeName);
  150.          var11.load(var13);
  151.          var3 = new Long(var11.getProperty("regtime"));
  152.          var13.close();
  153.       } catch (FileNotFoundException var9) {
  154.          Properties var5 = new Properties();
  155.          ((Hashtable)var5).put("regtime", (new Long(var1)).toString());
  156.  
  157.          try {
  158.             FileOutputStream var6 = new FileOutputStream(timeName);
  159.             var5.save(var6, "TimeInfo");
  160.             var6.close();
  161.             return true;
  162.          } catch (Exception var8) {
  163.             MesgBox var7 = new MesgBox(var0, Strings.ErrorWritingRegInfo);
  164.             ((Dialog)var7).show();
  165.             return false;
  166.          }
  167.       } catch (IOException var10) {
  168.          return false;
  169.       }
  170.  
  171.       long var12 = 2592000L;
  172.       if (var1 - var3 > var12) {
  173.          MesgBox var14 = new MesgBox(var0, "Evaluation License Has Expired");
  174.          ((Dialog)var14).show();
  175.          return false;
  176.       } else {
  177.          return true;
  178.       }
  179.    }
  180.  
  181.    static String generateCode(String var0) {
  182.       String var1 = var0 + hashModifier;
  183.       ShaHash var2 = new ShaHash();
  184.       ((Hash)var2).addASCII(var1);
  185.       byte[] var3 = ((Hash)var2).get();
  186.       return CryptoUtils.toStringBlock(var3).substring(1, 13).toUpperCase();
  187.    }
  188. }
  189.