@Override
  public String isPageComplete() {
    if (txtUsername.isGhosted()) return "Username not set";

    cs.username = txtUsername.getText();
    cs.password = new String(txtPassword.getPassword());
    cs.product = prodKeys.getProduct();
    cs.setCDKey(prodKeys.getCDKey());
    cs.setCDKey2(prodKeys.getCDKey2());

    // Validate the configuration
    String error = cs.isValid();
    if (error != null) return error;

    // Config was valid
    cs.save();
    return null;
  }
  @Override
  public void createComponent(ConfigPanel cp) {
    cp.add(
        new JLabel(
            "<html>"
                + "<h1>"
                + header
                + "</h1>"
                + "<hr/><br/>"
                + "Enter the login details about your Battle.net account.<br/>"
                + "If the Battle.net account does not already exist, it will be created<br/>"
                + "for you automatically when you log in to Battle.net.<br/>"
                + "<br/></html>"));

    txtUsername = cp.makeGhost("Account", "BNU-Camel");
    txtPassword = cp.makePass("Password", null);
    prodKeys = new ProductAndCDKeys(cs, cp);

    if (cs.username != null) txtUsername.setText(cs.username);
    if (cs.password != null) txtPassword.setText(cs.password);
  }