forked from External/mage
154 lines
6.5 KiB
Java
154 lines
6.5 KiB
Java
|
|
package mage.client.dialog;
|
|
|
|
import mage.cards.decks.importer.DeckImporter;
|
|
import mage.client.MageFrame;
|
|
import mage.client.SessionHandler;
|
|
import mage.players.PlayerType;
|
|
import mage.remote.Session;
|
|
import org.apache.log4j.Logger;
|
|
|
|
import javax.swing.*;
|
|
import java.util.UUID;
|
|
|
|
/**
|
|
*
|
|
* @author BetaSteward_at_googlemail.com
|
|
*/
|
|
public class JoinTableDialog extends MageDialog {
|
|
|
|
private static final Logger logger = Logger.getLogger(JoinTableDialog.class);
|
|
|
|
private UUID tableId;
|
|
private UUID roomId;
|
|
private boolean joined = false;
|
|
private boolean isTournament;
|
|
|
|
/** Creates new form JoinTableDialog */
|
|
public JoinTableDialog() {
|
|
initComponents();
|
|
newPlayerPanel.showLevel(false);
|
|
txtPassword.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD_JOIN, ""));
|
|
}
|
|
|
|
public void showDialog(UUID roomId, UUID tableId, boolean isTournament, boolean isLimited) {
|
|
this.roomId = roomId;
|
|
this.tableId = tableId;
|
|
this.isTournament = isTournament;
|
|
this.newPlayerPanel.setPlayerName(SessionHandler.getUserName());
|
|
this.newPlayerPanel.showDeckElements(!isLimited);
|
|
this.setModal(true);
|
|
this.setLocation(100, 100);
|
|
this.setVisible(true);
|
|
}
|
|
|
|
|
|
/** 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() {
|
|
|
|
btnCancel = new javax.swing.JButton();
|
|
btnOK = new javax.swing.JButton();
|
|
newPlayerPanel = new mage.client.table.NewPlayerPanel();
|
|
lblPassword = new javax.swing.JLabel();
|
|
txtPassword = new javax.swing.JTextField();
|
|
|
|
setTitle("Join Table");
|
|
|
|
btnCancel.setText("Cancel");
|
|
btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt));
|
|
|
|
btnOK.setText("OK");
|
|
btnOK.addActionListener(evt -> btnOKActionPerformed(evt));
|
|
|
|
lblPassword.setText("Password:");
|
|
|
|
txtPassword.setText("password");
|
|
|
|
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)
|
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
|
.addGap(0, 0, Short.MAX_VALUE)
|
|
.addComponent(btnOK)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(btnCancel))
|
|
.addComponent(newPlayerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 414, Short.MAX_VALUE)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addComponent(lblPassword)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addGap(0, 0, Short.MAX_VALUE)))
|
|
.addContainerGap())
|
|
);
|
|
layout.setVerticalGroup(
|
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
|
.addContainerGap()
|
|
.addComponent(newPlayerPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(lblPassword)
|
|
.addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(btnCancel)
|
|
.addComponent(btnOK))
|
|
.addContainerGap())
|
|
);
|
|
|
|
pack();
|
|
}// </editor-fold>//GEN-END:initComponents
|
|
|
|
private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelActionPerformed
|
|
this.joined = false;
|
|
this.hideDialog();
|
|
}//GEN-LAST:event_btnCancelActionPerformed
|
|
|
|
private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOKActionPerformed
|
|
Session session = SessionHandler.getSession();
|
|
try {
|
|
PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD_JOIN, txtPassword.getText());
|
|
if (isTournament) {
|
|
joined = session.joinTournamentTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), PlayerType.HUMAN, 1, DeckImporter.importDeckFromFile(this.newPlayerPanel.getDeckFile()), this.txtPassword.getText());
|
|
} else {
|
|
joined = session.joinTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), PlayerType.HUMAN, 1, DeckImporter.importDeckFromFile(this.newPlayerPanel.getDeckFile()), this.txtPassword.getText());
|
|
}
|
|
|
|
} catch (Exception ex) {
|
|
handleError(ex);
|
|
}
|
|
this.hideDialog();
|
|
}//GEN-LAST:event_btnOKActionPerformed
|
|
|
|
/**
|
|
* @return the joined
|
|
*/
|
|
public boolean isJoined() {
|
|
return joined;
|
|
}
|
|
|
|
private void handleError(Exception ex) {
|
|
logger.fatal("Error loading deck", ex);
|
|
JOptionPane.showMessageDialog(MageFrame.getDesktop(), "Error loading deck.", "Error", JOptionPane.ERROR_MESSAGE);
|
|
}
|
|
|
|
|
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
|
private javax.swing.JButton btnCancel;
|
|
private javax.swing.JButton btnOK;
|
|
private javax.swing.JLabel lblPassword;
|
|
private mage.client.table.NewPlayerPanel newPlayerPanel;
|
|
private javax.swing.JTextField txtPassword;
|
|
// End of variables declaration//GEN-END:variables
|
|
|
|
}
|