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

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

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

    // Config was valid
    return null;
  public void createComponent(ConfigPanel cp) {
        new JLabel(
                + "<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);