📄 joinpanel.java
字号:
}
}
}//GEN-LAST:event_playButtonActionPerformed
private void playersTableMouseClicked(java.awt.event.MouseEvent evt)//GEN-FIRST:event_playersTableMouseClicked
{//GEN-HEADEREND:event_playersTableMouseClicked
int row = playersTable.getSelectedRow();
final Player p = this.playersModel.getPlayerAtRow( row);
selectPlayer(p);
}//GEN-LAST:event_playersTableMouseClicked
private void allGamesTableMouseClicked(java.awt.event.MouseEvent evt)//GEN-FIRST:event_allGamesTableMouseClicked
{//GEN-HEADEREND:event_allGamesTableMouseClicked
int row = allGamesTable.getSelectedRow();
final GameWorld gw = getAllGamesModel().getGameAtRow(row);
if ( gw != null)
{
assert LOG.debug("game selected: " + gw.getName());
selectGameWorld( gw );
}
}//GEN-LAST:event_allGamesTableMouseClicked
private void loginButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_loginButtonActionPerformed
{//GEN-HEADEREND:event_loginButtonActionPerformed
final String login = loginTextField.getText();
final String password = PasswordUtil.encrypt(loginPasswordField.getText());
final LoginService<JAWPGameService> logSrv = getUserService().initLogin(login);
login( password, logSrv);
}//GEN-LAST:event_loginButtonActionPerformed
private void login(final String password, final LoginService<JAWPGameService> logSrv )
{
try
{
final SessionService<JAWPGameService> session =
logSrv.login(PasswordUtil.encryptMix(password , logSrv.getServerSeed() ));
if ( session != null)
{
setSessionService( session);
goToGamesTab();
}
else
{
GUIHelper.showError( this, MessageConst.LOGIN_FAILED, null);
//System.out.println("login failed");
}
}
catch (final LoginException le)
{
LOG.error( le, le);
GUIHelper.showError( this, MessageConst.LOGIN_FAILED, le);
}
}
private void selectGameWorld ( final GameWorld gw)
{
this.gameWorld = gw;
this.playersTable.setModel( getPlayersModel());
this.selectedPlayer = null;
updateButtons();
}
private void selectPlayer(final Player p)
{
this.selectedPlayer = p;
updateButtons();
}
private void updateButtons()
{
this.playButton.setEnabled( this.selectedPlayer != null && this.gameWorld != null);
this.joinGameButton.setEnabled( this.selectedPlayer == null && this.gameWorld != null);
this.quitGameButton.setEnabled( this.selectedPlayer != null && this.gameWorld != null);
}
private void goToGamesTab()
{
this.allGamesTable.setModel( getAllGamesModel());
this.wizardTabbedPane.setSelectedIndex(2);
}
private void goToLoginTab()
{
this.wizardTabbedPane.setSelectedIndex(1);
this.loginButton.setEnabled(this.isLoginValidated());
this.registerButton.setEnabled( this.isRegisterValidated());
}
public final PlayersTableModel getPlayersModel()
{
if ( this.gameWorld == null)
{
return new PlayersTableModel();
}
final Collection<Player> players = getSessionService().getUserPlayersForGame(this.gameWorld.getKey());
assert LOG.debug( "found players:" + players.size());
this.playersModel = new PlayersTableModel( players);
return this.playersModel;
}
public final GamesTableModel getAllGamesModel()
{
if (getSessionService() == null)
{
return new GamesTableModel();
}
if ( this.allGames == null)
{
final Collection<GameWorld> games = getSessionService().getGames();
assert LOG.debug( "number of games: " + games.size());
this.allGames = new GamesTableModel( games);
}
return this.allGames;
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel allGamesPanel;
private javax.swing.JTable allGamesTable;
private javax.swing.JPanel connectionPanel;
private javax.swing.JPanel gamesPanel;
private javax.swing.JTextField hostTextField;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JButton joinGameButton;
private javax.swing.JButton loginButton;
private javax.swing.JPanel loginPanel;
private javax.swing.JPasswordField loginPasswordField;
private javax.swing.JTextField loginTextField;
private javax.swing.JButton playButton;
private javax.swing.JPanel playersPanel;
private javax.swing.JTable playersTable;
private javax.swing.JTextField portTextField;
private javax.swing.JButton quitGameButton;
private javax.swing.JPasswordField regConfirmPasswordField;
private javax.swing.JTextField regLoginTextField;
private javax.swing.JPasswordField regPasswordPasswordField;
private javax.swing.JButton registerButton;
private javax.swing.JTextField totalPlayersTextField;
private javax.swing.JTabbedPane wizardTabbedPane;
// End of variables declaration//GEN-END:variables
private static class PlayersTableModel extends AbstractTableModel
{
/**
*
*/
private static final long serialVersionUID = 1L;
private ArrayList<Player> players;
public PlayersTableModel( final Collection<Player> players)
{
this.players = new ArrayList<Player>( players);
}
public PlayersTableModel()
{
this.players = new ArrayList<Player>( 0);
}
public int getColumnCount()
{
return 1;
}
public int getRowCount()
{
return this.players.size();
}
public Object getValueAt(final int row, final int column)
{
final Player p = getPlayerAtRow( row);
return p.getName();
}
public Player getPlayerAtRow(final int rowIndex)
{
if ( rowIndex < 0)
{
return null;
}
else
{
return this.players.get( rowIndex);
}
}
public final Collection<Player> getPlayers()
{
return this.players;
}
public String getColumnName(final int column)
{
return "player name";
}
}
private static class GamesTableModel extends AbstractTableModel
{
/**
*
*/
private static final long serialVersionUID = 1L;
private ArrayList<GameWorld> gameWorlds;
public GamesTableModel( )
{
this.gameWorlds = new ArrayList<GameWorld>();
}
public GamesTableModel( final Collection<GameWorld> gws)
{
assert LOG.debug("model created for:" + gws.size());
this.gameWorlds = new ArrayList<GameWorld>(gws.size());
this.gameWorlds.addAll( gws );
}
public final int getColumnCount()
{
return 1;
}
public final int getRowCount()
{
//assert LOG.debug("row count is:" + this.gameWorlds.size());
return this.gameWorlds.size();
}
public final Object getValueAt(final int row, final int column)
{
final GameWorld gw = getGameAtRow(row);
//assert LOG.debug("game name:" + gw.getName());
return gw.getName();
}
public final GameWorld getGameAtRow(final int row)
{
return this.gameWorlds.get( row);
}
public final String getColumnName(final int column)
{
return "game world name";
}
}
public JAWPGameService getGameService()
{
return gameService;
}
public void setGameService(final JAWPGameService gameService)
{
this.gameService = gameService;
}
/**
* checks whether login fields contain value
*/
private boolean isLoginValidated()
{
return this.loginTextField.getText().length() > 1
&& this.loginPasswordField.getText().length() > 1;
}
/**
* checks whether login fields contain value
*/
private boolean isRegisterValidated()
{
return this.regLoginTextField.getText().length() > 1
&& this.regPasswordPasswordField.getText().length() > 1
&& this.regConfirmPasswordField.getText().length() > 1 &&
this.regPasswordPasswordField.getText().equals( this.regConfirmPasswordField.getText() );
}
private void storeConnectionData(final String host, final int port)
{
this.preferences.setHost( host );
this.preferences.setPort( port );
PreferencesManager.getInstance().storeClientPreferences( this.preferences);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -