Merge branch 'master' of https://github.com/magefree/mage
|
|
@ -230,9 +230,10 @@ public class ChatPanel extends javax.swing.JPanel {
|
|||
if (username != null && !username.isEmpty()) {
|
||||
text.append(getColoredText(userColor, username + userSeparator));
|
||||
}
|
||||
text.append(getColoredText(textColor, ManaSymbols.replaceSymbolsWithHTML(message, ManaSymbols.Type.PAY) + "<br/>"));
|
||||
|
||||
text.append(getColoredText(textColor, ManaSymbols.replaceSymbolsWithHTML(message, ManaSymbols.Type.PAY)));
|
||||
this.txtConversation.append(text.toString());
|
||||
this.txtConversation.requestFocusInWindow();
|
||||
this.txtMessage.requestFocusInWindow();
|
||||
}
|
||||
|
||||
private String getColoredText(String color, String text) {
|
||||
|
|
@ -279,10 +280,11 @@ public class ChatPanel extends javax.swing.JPanel {
|
|||
public void useExtendedView(VIEW_MODE extendedViewMode) {
|
||||
this.extendedViewMode = extendedViewMode;
|
||||
this.txtConversation.setExtBackgroundColor(new Color(0, 0, 0, 100));
|
||||
this.txtConversation.setBackground(new Color(0, 0, 0, 0));
|
||||
this.txtConversation.setForeground(new Color(255, 255, 255));
|
||||
this.jScrollPaneTxt.setOpaque(false);
|
||||
this.jScrollPaneTxt.getViewport().setOpaque(false);
|
||||
// this.txtConversation.setBackground(new Color(0, 0, 0, 0));
|
||||
// this.txtConversation.setForeground(new Color(255, 255, 255));
|
||||
this.txtConversation.setSelectionColor(Color.LIGHT_GRAY);
|
||||
this.jScrollPaneTxt.setOpaque(!chatType.equals(ChatType.TABLES));
|
||||
this.jScrollPaneTxt.getViewport().setOpaque(!chatType.equals(ChatType.TABLES));
|
||||
}
|
||||
|
||||
public void setSplitDividerLocation(int location) {
|
||||
|
|
@ -308,8 +310,11 @@ public class ChatPanel extends javax.swing.JPanel {
|
|||
this.players = roomUserInfo.getUsersView().toArray(new UsersView[0]);
|
||||
JTableHeader th = jTablePlayers.getTableHeader();
|
||||
TableColumnModel tcm = th.getColumnModel();
|
||||
tcm.getColumn(0).setHeaderValue(new StringBuilder("Players").append(" (").append(this.players.length).append(")").toString());
|
||||
tcm.getColumn(2).setHeaderValue(new StringBuilder("Games").append(" (").append(roomUserInfo.getNumberActiveGames()).append(")").toString());
|
||||
tcm.getColumn(0).setHeaderValue("Players (" + this.players.length + ")");
|
||||
tcm.getColumn(2).setHeaderValue(
|
||||
"Games " + roomUserInfo.getNumberActiveGames() +
|
||||
(roomUserInfo.getNumberActiveGames() != roomUserInfo.getNumberGameThreads() ? " (T:" + roomUserInfo.getNumberGameThreads():" (") +
|
||||
" limit: " + roomUserInfo.getNumberMaxGames() + ")");
|
||||
th.repaint();
|
||||
this.fireTableDataChanged();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,16 @@
|
|||
package mage.client.components;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Graphics;
|
||||
import static javafx.scene.paint.Color.color;
|
||||
import javax.swing.JEditorPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextPane;
|
||||
import javax.swing.text.AttributeSet;
|
||||
import javax.swing.text.SimpleAttributeSet;
|
||||
import javax.swing.text.StyleConstants;
|
||||
import javax.swing.text.StyleContext;
|
||||
import javax.swing.text.html.HTMLDocument;
|
||||
import javax.swing.text.html.HTMLEditorKit;
|
||||
|
||||
|
|
@ -10,14 +19,14 @@ import javax.swing.text.html.HTMLEditorKit;
|
|||
*
|
||||
* @author nantuko
|
||||
*/
|
||||
public class ColorPane extends JTextPane {
|
||||
public class ColorPane extends JEditorPane {
|
||||
|
||||
HTMLEditorKit kit = new HTMLEditorKit();
|
||||
HTMLDocument doc = new HTMLDocument();
|
||||
HTMLDocument doc = new HTMLDocument();
|
||||
|
||||
public ColorPane() {
|
||||
this.setEditorKit(kit);
|
||||
this.setDocument(doc);
|
||||
this.setDocument(doc);
|
||||
}
|
||||
/**
|
||||
* This method solves the known issue with Nimbus LAF background transparency and background color.
|
||||
|
|
@ -36,26 +45,14 @@ public class ColorPane extends JTextPane {
|
|||
super.setText(string); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
public void append(String s) {
|
||||
public void append(String text) {
|
||||
try {
|
||||
setEditable(true);
|
||||
kit.insertHTML(doc, doc.getLength(), s, 0, 0, null);
|
||||
kit.insertHTML(doc, doc.getLength(), text, 0, 0, null);
|
||||
setEditable(false);
|
||||
int len = getDocument().getLength();
|
||||
setCaretPosition(len);
|
||||
setEditable(false);
|
||||
|
||||
//
|
||||
//
|
||||
// StyleContext sc = StyleContext.getDefaultStyleContext();
|
||||
// AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, color);
|
||||
//
|
||||
// int len = getDocument().getLength();
|
||||
//
|
||||
// setCaretPosition(len);
|
||||
// setCharacterAttributes(aset, false);
|
||||
// replaceSelection(s);
|
||||
//
|
||||
//
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ public class JoinTableDialog extends MageDialog {
|
|||
this.tableId = tableId;
|
||||
this.isTournament = isTournament;
|
||||
this.newPlayerPanel.setPlayerName(MageFrame.getSession().getUserName());
|
||||
this.newPlayerPanel.showDeckElements(isLimited);
|
||||
this.newPlayerPanel.showDeckElements(!isLimited);
|
||||
this.setModal(true);
|
||||
this.setLocation(100, 100);
|
||||
this.setVisible(true);
|
||||
|
|
|
|||
|
|
@ -212,21 +212,26 @@
|
|||
<Component class="javax.swing.JLabel" name="lbTimeLimit">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Time Limit:"/>
|
||||
<Property name="toolTipText" type="java.lang.String" value="The time a player has for the whole match. If a player runs out of time during a game, he loses the complete match. "/>
|
||||
</Properties>
|
||||
<BindingProperties>
|
||||
<BindingProperty name="labelFor" source="cbTimeLimit" target="lbTimeLimit" targetPath="labelFor" updateStrategy="0" immediately="false"/>
|
||||
</BindingProperties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JComboBox" name="cbTimeLimit">
|
||||
<Properties>
|
||||
<Property name="toolTipText" type="java.lang.String" value="The time a player has for the whole match. If a player runs out of time during a game, he loses the complete match. "/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="lblPassword">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Password:"/>
|
||||
<Property name="toolTipText" type="java.lang.String" value="Players have to enter the password to be able to join this table."/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JTextField" name="txtPassword">
|
||||
<Properties>
|
||||
<Property name="toolTipText" type="java.lang.String" value="Players have to enter this password to be able to enter the created table."/>
|
||||
<Property name="toolTipText" type="java.lang.String" value="Players have to enter the password to be able to join this table."/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="lblTournamentType">
|
||||
|
|
@ -284,6 +289,9 @@
|
|||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JSpinner" name="spnNumWins">
|
||||
<Properties>
|
||||
<Property name="toolTipText" type="java.lang.String" value="To win a match a player has to win this number of games."/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="spnNumWinsnumPlayersChanged"/>
|
||||
</Events>
|
||||
|
|
@ -311,9 +319,13 @@
|
|||
<Component class="javax.swing.JLabel" name="lblNumRounds">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Number of Swiss Rounds:"/>
|
||||
<Property name="toolTipText" type="java.lang.String" value="<html>The number of rounds the swiss tournament has in total.<br>
The tournaments ends after that number of rounds or<br> 
if there are less than two players left in the tournament."/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JSpinner" name="spnNumRounds">
|
||||
<Properties>
|
||||
<Property name="toolTipText" type="java.lang.String" value="<html>The number of rounds the swiss tournament has in total.<br>
The tournaments ends after that number of rounds or<br> 
if there are less than two players left in the tournament."/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="spnNumRoundsnumPlayersChanged"/>
|
||||
</Events>
|
||||
|
|
@ -403,6 +415,7 @@
|
|||
<Component class="javax.swing.JCheckBox" name="cbAllowSpectators">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Allow spectators"/>
|
||||
<Property name="toolTipText" type="java.lang.String" value="Allow other players to watch the games of this table."/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="lblPlayer1">
|
||||
|
|
|
|||
|
|
@ -170,13 +170,17 @@ public class NewTournamentDialog extends MageDialog {
|
|||
lblName.setText("Name:");
|
||||
|
||||
lbTimeLimit.setText("Time Limit:");
|
||||
lbTimeLimit.setToolTipText("The time a player has for the whole match. If a player runs out of time during a game, he loses the complete match. ");
|
||||
|
||||
org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, cbTimeLimit, org.jdesktop.beansbinding.ObjectProperty.create(), lbTimeLimit, org.jdesktop.beansbinding.BeanProperty.create("labelFor"));
|
||||
bindingGroup.addBinding(binding);
|
||||
|
||||
lblPassword.setText("Password:");
|
||||
cbTimeLimit.setToolTipText("The time a player has for the whole match. If a player runs out of time during a game, he loses the complete match. ");
|
||||
|
||||
txtPassword.setToolTipText("Players have to enter this password to be able to enter the created table.");
|
||||
lblPassword.setText("Password:");
|
||||
lblPassword.setToolTipText("Players have to enter the password to be able to join this table.");
|
||||
|
||||
txtPassword.setToolTipText("Players have to enter the password to be able to join this table.");
|
||||
|
||||
lblTournamentType.setText("Tournament Type:");
|
||||
|
||||
|
|
@ -205,6 +209,7 @@ public class NewTournamentDialog extends MageDialog {
|
|||
|
||||
lblNumWins.setText("Wins:");
|
||||
|
||||
spnNumWins.setToolTipText("To win a match a player has to win this number of games.");
|
||||
spnNumWins.addChangeListener(new javax.swing.event.ChangeListener() {
|
||||
public void stateChanged(javax.swing.event.ChangeEvent evt) {
|
||||
spnNumWinsnumPlayersChanged(evt);
|
||||
|
|
@ -221,7 +226,9 @@ public class NewTournamentDialog extends MageDialog {
|
|||
});
|
||||
|
||||
lblNumRounds.setText("Number of Swiss Rounds:");
|
||||
lblNumRounds.setToolTipText("<html>The number of rounds the swiss tournament has in total.<br>\nThe tournaments ends after that number of rounds or<br> \nif there are less than two players left in the tournament.");
|
||||
|
||||
spnNumRounds.setToolTipText("<html>The number of rounds the swiss tournament has in total.<br>\nThe tournaments ends after that number of rounds or<br> \nif there are less than two players left in the tournament.");
|
||||
spnNumRounds.addChangeListener(new javax.swing.event.ChangeListener() {
|
||||
public void stateChanged(javax.swing.event.ChangeEvent evt) {
|
||||
spnNumRoundsnumPlayersChanged(evt);
|
||||
|
|
@ -272,6 +279,7 @@ public class NewTournamentDialog extends MageDialog {
|
|||
);
|
||||
|
||||
cbAllowSpectators.setText("Allow spectators");
|
||||
cbAllowSpectators.setToolTipText("Allow other players to watch the games of this table.");
|
||||
|
||||
lblPlayer1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
|
||||
lblPlayer1.setText("Player 1 (You)");
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ import java.util.*;
|
|||
import java.util.List;
|
||||
import java.util.concurrent.CancellationException;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import mage.constants.PlayerAction;
|
||||
|
||||
/**
|
||||
|
|
@ -213,14 +214,14 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
logger.fatal("popupContainer error:", ex);
|
||||
}
|
||||
jPanel2.remove(bigCard);
|
||||
this.bigCard = null;
|
||||
this.bigCard = null;
|
||||
}
|
||||
|
||||
private void saveDividerLocations() {
|
||||
// save panel sizes and divider locations.
|
||||
Rectangle rec = MageFrame.getDesktop().getBounds();
|
||||
StringBuilder sb = new StringBuilder(Double.toString(rec.getWidth())).append("x").append(Double.toString(rec.getHeight()));
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_MAGE_PANEL_LAST_SIZE, sb.toString());
|
||||
String sb = Double.toString(rec.getWidth()) + "x" + Double.toString(rec.getHeight());
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_MAGE_PANEL_LAST_SIZE, sb);
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_GAMEPANEL_DIVIDER_LOCATION_0, Integer.toString(this.jSplitPane0.getDividerLocation()));
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_GAMEPANEL_DIVIDER_LOCATION_1, Integer.toString(this.jSplitPane1.getDividerLocation()));
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_GAMEPANEL_DIVIDER_LOCATION_2, Integer.toString(this.jSplitPane2.getDividerLocation()));
|
||||
|
|
@ -230,9 +231,9 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
Rectangle rec = MageFrame.getDesktop().getBounds();
|
||||
if (rec != null) {
|
||||
String size = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_MAGE_PANEL_LAST_SIZE, null);
|
||||
StringBuilder sb = new StringBuilder(Double.toString(rec.getWidth())).append("x").append(Double.toString(rec.getHeight()));
|
||||
String sb = Double.toString(rec.getWidth()) + "x" + Double.toString(rec.getHeight());
|
||||
// use divider positions only if screen size is the same as it was the time the settings were saved
|
||||
if (size != null && size.equals(sb.toString())) {
|
||||
if (size != null && size.equals(sb)) {
|
||||
|
||||
String location = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_GAMEPANEL_DIVIDER_LOCATION_0, null);
|
||||
if (location != null && jSplitPane0 != null) {
|
||||
|
|
@ -260,8 +261,8 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
bigCard.setMaximumSize(bbDimension);
|
||||
bigCard.setMinimumSize(bbDimension);
|
||||
bigCard.setPreferredSize(bbDimension);
|
||||
pnlGameInfo.revalidate();
|
||||
pnlGameInfo.repaint();
|
||||
pnlShortCuts.revalidate();
|
||||
pnlShortCuts.repaint();
|
||||
//this.handContainer.sizeHand(0.8, smallMode);
|
||||
for (PlayAreaPanel p: players.values()) {
|
||||
p.sizePlayer(smallMode);
|
||||
|
|
@ -275,8 +276,8 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
bigCard.setMaximumSize(bbDimension);
|
||||
bigCard.setMinimumSize(bbDimension);
|
||||
bigCard.setPreferredSize(bbDimension);
|
||||
pnlGameInfo.revalidate();
|
||||
pnlGameInfo.repaint();
|
||||
pnlShortCuts.revalidate();
|
||||
pnlShortCuts.repaint();
|
||||
this.handContainer.sizeHand(1, smallMode);
|
||||
for (PlayAreaPanel p: players.values()) {
|
||||
p.sizePlayer(smallMode);
|
||||
|
|
@ -300,11 +301,19 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
this.feedbackPanel.init(gameId);
|
||||
this.feedbackPanel.clear();
|
||||
this.abilityPicker.init(session, gameId);
|
||||
|
||||
this.btnConcede.setVisible(true);
|
||||
this.btnEndTurn.setVisible(true);
|
||||
this.btnSwitchHands.setVisible(false);
|
||||
this.pnlReplay.setVisible(false);
|
||||
this.btnStopWatching.setVisible(false);
|
||||
this.btnSwitchHands.setVisible(false);
|
||||
this.btnCancelSkip.setVisible(true);
|
||||
|
||||
this.btnSkipToNextTurn.setVisible(true);
|
||||
this.btnSkipToEndTurn.setVisible(true);
|
||||
this.btnSkipToNextMain.setVisible(true);
|
||||
this.btnSkipToYourTurn.setVisible(true);
|
||||
|
||||
this.pnlReplay.setVisible(false);
|
||||
|
||||
this.gameChatPanel.clear();
|
||||
this.gameChatPanel.connect(session.getGameChatId(gameId));
|
||||
if (!session.joinGame(gameId)) {
|
||||
|
|
@ -320,10 +329,18 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
MageFrame.addGame(gameId, this);
|
||||
this.feedbackPanel.init(gameId);
|
||||
this.feedbackPanel.clear();
|
||||
|
||||
this.btnConcede.setVisible(false);
|
||||
this.btnEndTurn.setVisible(false);
|
||||
this.btnSwitchHands.setVisible(false);
|
||||
this.btnStopWatching.setVisible(true);
|
||||
this.btnSwitchHands.setVisible(false);
|
||||
this.btnCancelSkip.setVisible(false);
|
||||
|
||||
this.btnSkipToNextTurn.setVisible(false);
|
||||
this.btnSkipToEndTurn.setVisible(false);
|
||||
this.btnSkipToNextMain.setVisible(false);
|
||||
this.btnSkipToYourTurn.setVisible(false);
|
||||
|
||||
|
||||
this.pnlReplay.setVisible(false);
|
||||
this.gameChatPanel.clear();
|
||||
this.gameChatPanel.connect(session.getGameChatId(gameId));
|
||||
|
|
@ -343,7 +360,7 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
this.feedbackPanel.init(gameId);
|
||||
this.feedbackPanel.clear();
|
||||
this.btnConcede.setVisible(false);
|
||||
this.btnEndTurn.setVisible(false);
|
||||
this.btnSkipToNextTurn.setVisible(false);
|
||||
this.btnSwitchHands.setVisible(false);
|
||||
this.btnStopWatching.setVisible(false);
|
||||
this.pnlReplay.setVisible(true);
|
||||
|
|
@ -489,7 +506,7 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
if (previous != visible) {
|
||||
btnSwitchHands.setVisible(visible);
|
||||
if (visible) {
|
||||
JOptionPane.showMessageDialog(null, "You control other player's turn. \nUse \"Switch Hand\" on the bottom to switch between cards in different hands.");
|
||||
JOptionPane.showMessageDialog(null, "You control other player's turn. \nUse \"Switch Hand\" button to switch between cards in different hands.");
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(null, "You lost control on other player's turn.");
|
||||
}
|
||||
|
|
@ -809,7 +826,7 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
jSplitPane0 = new javax.swing.JSplitPane();
|
||||
jPanel2 = new javax.swing.JPanel();
|
||||
jPanel3 = new javax.swing.JPanel();
|
||||
pnlGameInfo = new javax.swing.JPanel();
|
||||
pnlShortCuts = new javax.swing.JPanel();
|
||||
lblPhase = new javax.swing.JLabel();
|
||||
txtPhase = new javax.swing.JLabel();
|
||||
lblStep = new javax.swing.JLabel();
|
||||
|
|
@ -821,10 +838,18 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
txtPriority = new javax.swing.JLabel();
|
||||
lblPriority = new javax.swing.JLabel();
|
||||
feedbackPanel = new mage.client.game.FeedbackPanel();
|
||||
|
||||
btnCancelSkip = new javax.swing.JButton(); // F3
|
||||
btnSkipToNextTurn = new javax.swing.JButton(); // F4
|
||||
btnSkipToEndTurn = new javax.swing.JButton(); // F5
|
||||
btnSkipToNextMain = new javax.swing.JButton(); // F7
|
||||
btnSkipToYourTurn = new javax.swing.JButton(); // F9
|
||||
|
||||
btnConcede = new javax.swing.JButton();
|
||||
btnEndTurn = new javax.swing.JButton();
|
||||
btnSwitchHands = new javax.swing.JButton();
|
||||
|
||||
btnStopWatching = new javax.swing.JButton();
|
||||
|
||||
bigCard = new mage.client.cards.BigCard();
|
||||
stack = new mage.client.cards.Cards();
|
||||
pnlReplay = new javax.swing.JPanel();
|
||||
|
|
@ -861,8 +886,8 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
|
||||
restoreDividerLocations();
|
||||
|
||||
pnlGameInfo.setOpaque(false);
|
||||
|
||||
pnlShortCuts.setOpaque(false);
|
||||
pnlShortCuts.setPreferredSize(new Dimension(400, 60));
|
||||
lblPhase.setLabelFor(txtPhase);
|
||||
lblPhase.setText("Phase:");
|
||||
|
||||
|
|
@ -898,33 +923,50 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
lblPriority.setLabelFor(txtPriority);
|
||||
lblPriority.setText("Priority Player:");
|
||||
|
||||
feedbackPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
|
||||
feedbackPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(150, 50, 50),2));
|
||||
feedbackPanel.setMaximumSize(new java.awt.Dimension(208, 121));
|
||||
feedbackPanel.setMinimumSize(new java.awt.Dimension(208, 121));
|
||||
|
||||
bigCard.setBorder(new LineBorder(Color.black, 1, true));
|
||||
|
||||
btnConcede.setText("Concede");
|
||||
btnConcede.setToolTipText("Concede the current game");
|
||||
btnConcede.setFocusable(false);
|
||||
btnConcede.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent evt) {
|
||||
btnConcedeActionPerformed(null);
|
||||
}
|
||||
});
|
||||
|
||||
btnEndTurn.setText("End Turn (F4)");
|
||||
btnEndTurn.setToolTipText("End This Turn");
|
||||
btnEndTurn.setFocusable(false);
|
||||
btnEndTurn.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent evt) {
|
||||
btnEndTurnActionPerformed(null);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
int c = JComponent.WHEN_IN_FOCUSED_WINDOW;
|
||||
|
||||
KeyStroke ks3 = KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0);
|
||||
this.getInputMap(c).put(ks3, "F3_PRESS");
|
||||
this.getActionMap().put("F3_PRESS", new AbstractAction() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
restorePriorityActionPerformed(actionEvent);
|
||||
}
|
||||
});
|
||||
|
||||
btnCancelSkip.setContentAreaFilled(false);
|
||||
btnCancelSkip.setBorder(new EmptyBorder(0,0,0,0));
|
||||
btnCancelSkip.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getCancelSkipButtonImage()));
|
||||
btnCancelSkip.setToolTipText("Cancel all skip actions (F3).");
|
||||
btnCancelSkip.setFocusable(false);
|
||||
btnCancelSkip.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent evt) {
|
||||
if (evt.getButton() == MouseEvent.BUTTON1) {
|
||||
restorePriorityActionPerformed(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
btnSkipToNextTurn.setContentAreaFilled(false);
|
||||
btnSkipToNextTurn.setBorder(new EmptyBorder(0,0,0,0));
|
||||
btnSkipToNextTurn.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getSkipNextTurnButtonImage()));
|
||||
btnSkipToNextTurn.setToolTipText("Skip to next turn (F4).");
|
||||
btnSkipToNextTurn.setFocusable(false);
|
||||
btnSkipToNextTurn.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent evt) {
|
||||
if (evt.getButton() == MouseEvent.BUTTON1) {
|
||||
btnEndTurnActionPerformed(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_F4, 0);
|
||||
this.getInputMap(c).put(ks, "F4_PRESS");
|
||||
|
|
@ -935,6 +977,20 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
}
|
||||
});
|
||||
|
||||
btnSkipToEndTurn.setContentAreaFilled(false);
|
||||
btnSkipToEndTurn.setBorder(new EmptyBorder(0,0,0,0));
|
||||
btnSkipToEndTurn.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getSkipEndTurnButtonImage()));
|
||||
btnSkipToEndTurn.setToolTipText("Skip to (opponents/next) end of turn step (F5) - adjust using preferences.");
|
||||
btnSkipToEndTurn.setFocusable(false);
|
||||
btnSkipToEndTurn.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent evt) {
|
||||
if (evt.getButton() == MouseEvent.BUTTON1) {
|
||||
btnUntilEndOfTurnActionPerformed(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
ks = KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0);
|
||||
this.getInputMap(c).put(ks, "F5_PRESS");
|
||||
this.getActionMap().put("F5_PRESS", new AbstractAction() {
|
||||
|
|
@ -944,6 +1000,20 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
}
|
||||
});
|
||||
|
||||
btnSkipToNextMain.setContentAreaFilled(false);
|
||||
btnSkipToNextMain.setBorder(new EmptyBorder(0,0,0,0));
|
||||
btnSkipToNextMain.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getSkipMainButtonImage()));
|
||||
btnSkipToNextMain.setToolTipText("Skip to (your) next main phase (F7) - adjust using preferences.");
|
||||
btnSkipToNextMain.setFocusable(false);
|
||||
btnSkipToNextMain.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent evt) {
|
||||
if (evt.getButton() == MouseEvent.BUTTON1) {
|
||||
btnUntilNextMainPhaseActionPerformed(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
ks = KeyStroke.getKeyStroke(KeyEvent.VK_F7, 0);
|
||||
this.getInputMap(c).put(ks, "F7_PRESS");
|
||||
this.getActionMap().put("F7_PRESS", new AbstractAction() {
|
||||
|
|
@ -953,6 +1023,20 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
}
|
||||
});
|
||||
|
||||
btnSkipToYourTurn.setContentAreaFilled(false);
|
||||
btnSkipToYourTurn.setBorder(new EmptyBorder(0,0,0,0));
|
||||
btnSkipToYourTurn.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getSkipYourNextTurnButtonImage()));
|
||||
btnSkipToYourTurn.setToolTipText("Skip to your next turn (F9).");
|
||||
btnSkipToYourTurn.setFocusable(false);
|
||||
btnSkipToYourTurn.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent evt) {
|
||||
if (evt.getButton() == MouseEvent.BUTTON1) {
|
||||
btnPassPriorityUntilNextYourTurnActionPerformed(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
KeyStroke ks9 = KeyStroke.getKeyStroke(KeyEvent.VK_F9, 0);
|
||||
this.getInputMap(c).put(ks9, "F9_PRESS");
|
||||
this.getActionMap().put("F9_PRESS", new AbstractAction() {
|
||||
|
|
@ -961,6 +1045,21 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
btnPassPriorityUntilNextYourTurnActionPerformed(actionEvent);
|
||||
}
|
||||
});
|
||||
|
||||
btnConcede.setContentAreaFilled(false);
|
||||
btnConcede.setBorder(new EmptyBorder(0,0,0,0));
|
||||
btnConcede.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getConcedeButtonImage()));
|
||||
btnConcede.setToolTipText("Concede the current game.");
|
||||
btnConcede.setFocusable(false);
|
||||
btnConcede.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent evt) {
|
||||
if (evt.getButton() == MouseEvent.BUTTON1) {
|
||||
btnConcedeActionPerformed(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
KeyStroke ks2 = KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0);
|
||||
this.getInputMap(c).put(ks2, "F2_PRESS");
|
||||
|
|
@ -973,15 +1072,6 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
}
|
||||
});
|
||||
|
||||
KeyStroke ks3 = KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0);
|
||||
this.getInputMap(c).put(ks3, "F3_PRESS");
|
||||
this.getActionMap().put("F3_PRESS", new AbstractAction() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
restorePriorityActionPerformed(actionEvent);
|
||||
}
|
||||
});
|
||||
|
||||
KeyStroke ksAltE = KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.ALT_MASK);
|
||||
this.getInputMap(c).put(ksAltE, "ENLARGE");
|
||||
this.getActionMap().put("ENLARGE", new AbstractAction() {
|
||||
|
|
@ -1047,20 +1137,31 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
btnSwitchHands.setText("Switch Hands");
|
||||
btnSwitchHands.setContentAreaFilled(false);
|
||||
btnSwitchHands.setBorder(new EmptyBorder(0,0,0,0));
|
||||
btnSwitchHands.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getSwitchHandsButtonImage()));
|
||||
btnSwitchHands.setFocusable(false);
|
||||
btnSwitchHands.setToolTipText("Switch between your hand cards and hand cards of controlled players.");
|
||||
btnSwitchHands.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent evt) {
|
||||
btnSwitchHandActionPerformed(null);
|
||||
if (evt.getButton() == MouseEvent.BUTTON1) {
|
||||
btnSwitchHandActionPerformed(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
btnStopWatching.setText("Stop Watching");
|
||||
btnStopWatching.addActionListener(new java.awt.event.ActionListener() {
|
||||
btnStopWatching.setContentAreaFilled(false);
|
||||
btnStopWatching.setBorder(new EmptyBorder(0,0,0,0));
|
||||
btnStopWatching.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getStopWatchButtonImage()));
|
||||
btnStopWatching.setFocusable(false);
|
||||
btnSwitchHands.setToolTipText("Stop watching this game.");
|
||||
btnStopWatching.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
btnStopWatchingActionPerformed(evt);
|
||||
public void mouseClicked(MouseEvent evt) {
|
||||
if (evt.getButton() == MouseEvent.BUTTON1) {
|
||||
btnStopWatchingActionPerformed(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -1133,31 +1234,32 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
);
|
||||
|
||||
// Game info panel (buttons on the right panel)
|
||||
javax.swing.GroupLayout gl_pnlGameInfo = new javax.swing.GroupLayout(pnlGameInfo);
|
||||
pnlGameInfo.setLayout(gl_pnlGameInfo);
|
||||
gl_pnlGameInfo.setHorizontalGroup(
|
||||
gl_pnlGameInfo.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(gl_pnlGameInfo.createSequentialGroup()
|
||||
.addGap(10, 10, 10)
|
||||
.addComponent(btnConcede)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(btnEndTurn)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
javax.swing.GroupLayout gl_pnlShortCuts = new javax.swing.GroupLayout(pnlShortCuts);
|
||||
pnlShortCuts.setLayout(gl_pnlShortCuts);
|
||||
gl_pnlShortCuts.setHorizontalGroup(gl_pnlShortCuts.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addGroup(gl_pnlShortCuts.createSequentialGroup()
|
||||
.addComponent(btnSkipToNextTurn)
|
||||
.addComponent(btnSkipToEndTurn)
|
||||
.addComponent(btnSkipToNextMain)
|
||||
.addComponent(btnSkipToYourTurn)
|
||||
)
|
||||
.addGroup(gl_pnlShortCuts.createSequentialGroup()
|
||||
.addComponent(btnSwitchHands)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(btnCancelSkip)
|
||||
.addComponent(btnConcede)
|
||||
.addComponent(btnStopWatching)
|
||||
.addContainerGap(62, Short.MAX_VALUE))
|
||||
)
|
||||
//.addComponent(bigCard, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
|
||||
//.addComponent(feedbackPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
|
||||
//.addComponent(stack, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
|
||||
.addGroup(gl_pnlGameInfo.createSequentialGroup()
|
||||
|
||||
.addGroup(gl_pnlShortCuts.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(pnlReplay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addContainerGap(51, Short.MAX_VALUE))
|
||||
);
|
||||
gl_pnlGameInfo.setVerticalGroup(
|
||||
gl_pnlGameInfo.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(gl_pnlGameInfo.createSequentialGroup()
|
||||
gl_pnlShortCuts.setVerticalGroup(gl_pnlShortCuts.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(gl_pnlShortCuts.createSequentialGroup()
|
||||
//.addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
//.addGap(1, 1, 1)
|
||||
//.addComponent(feedbackPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
|
|
@ -1165,11 +1267,20 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 164, Short.MAX_VALUE)
|
||||
.addComponent(pnlReplay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(gl_pnlGameInfo.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(btnConcede)
|
||||
.addComponent(btnEndTurn)
|
||||
|
||||
.addGroup(gl_pnlShortCuts.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(btnSkipToNextTurn)
|
||||
.addComponent(btnSkipToEndTurn)
|
||||
.addComponent(btnSkipToNextMain)
|
||||
.addComponent(btnSkipToYourTurn)
|
||||
)
|
||||
.addGroup(gl_pnlShortCuts.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(btnSwitchHands)
|
||||
.addComponent(btnStopWatching)))
|
||||
.addComponent(btnCancelSkip)
|
||||
.addComponent(btnConcede)
|
||||
.addComponent(btnStopWatching)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
pnlBattlefield.setLayout(new java.awt.GridBagLayout());
|
||||
|
|
@ -1178,7 +1289,7 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
jPhases.setBackground(new Color(0, 0, 0, 0));
|
||||
jPhases.setLayout(null);
|
||||
jPhases.setPreferredSize(new Dimension(X_PHASE_WIDTH, 450));
|
||||
|
||||
|
||||
MouseAdapter phasesMouseAdapter = new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent evt) {
|
||||
|
|
@ -1229,16 +1340,17 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
gl_jPanel3.setHorizontalGroup(
|
||||
gl_jPanel3.createParallelGroup(Alignment.LEADING)
|
||||
.addGroup(gl_jPanel3.createSequentialGroup()
|
||||
//.addComponent(pnlGameInfo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
|
||||
//.addGap(0)
|
||||
// .addGap(0)
|
||||
.addGroup(gl_jPanel3.createParallelGroup(Alignment.LEADING)
|
||||
.addGroup(gl_jPanel3.createSequentialGroup()
|
||||
.addGroup(gl_jPanel3.createParallelGroup(Alignment.LEADING)
|
||||
.addComponent(helper, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(handContainer, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(helper, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(handContainer, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
)
|
||||
.addGroup(gl_jPanel3.createParallelGroup(Alignment.LEADING)
|
||||
.addComponent(pnlShortCuts, 400, 400, 400)
|
||||
.addComponent(stack, 400, 400, 400)
|
||||
)
|
||||
.addComponent(stack, 400, 400, 400)
|
||||
|
||||
)
|
||||
.addGap(0)
|
||||
//.addComponent(jPhases, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
|
|
@ -1257,7 +1369,8 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
//.addPreferredGap(ComponentPlacement.RELATED)
|
||||
.addGroup(gl_jPanel3.createParallelGroup(Alignment.LEADING)
|
||||
.addGroup(gl_jPanel3.createSequentialGroup()
|
||||
.addGap(75)
|
||||
.addComponent(pnlShortCuts, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(0)
|
||||
.addComponent(stack, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
|
||||
)
|
||||
.addGroup(gl_jPanel3.createSequentialGroup()
|
||||
|
|
@ -1284,14 +1397,6 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
gbl.setConstraints( bigCard, gbc );
|
||||
jPanel2.add( bigCard );
|
||||
|
||||
GridBagConstraints gbc2 = new GridBagConstraints();
|
||||
gbc2.fill = GridBagConstraints.NONE;
|
||||
gbc2.gridx = 0; gbc2.gridy = GridBagConstraints.RELATIVE;
|
||||
gbc2.gridwidth = 1; gbc2.gridheight = 1; //size 1/5
|
||||
gbc2.weightx = 0.0; gbc2.weighty = 0.0;
|
||||
gbl.setConstraints( pnlGameInfo, gbc2 );
|
||||
jPanel2.add( pnlGameInfo );
|
||||
|
||||
jPanel2.setOpaque(false);
|
||||
|
||||
// game pane and chat/log pane
|
||||
|
|
@ -1315,15 +1420,30 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
for (MouseListener ml :this.getMouseListeners()) {
|
||||
this.removeMouseListener(ml);
|
||||
}
|
||||
for (MouseListener ml :this.btnCancelSkip.getMouseListeners()) {
|
||||
this.btnCancelSkip.removeMouseListener(ml);
|
||||
}
|
||||
for (MouseListener ml :this.btnConcede.getMouseListeners()) {
|
||||
this.btnConcede.removeMouseListener(ml);
|
||||
}
|
||||
for (MouseListener ml :this.btnEndTurn.getMouseListeners()) {
|
||||
this.btnEndTurn.removeMouseListener(ml);
|
||||
for (MouseListener ml :this.btnSkipToYourTurn.getMouseListeners()) {
|
||||
this.btnSkipToYourTurn.removeMouseListener(ml);
|
||||
}
|
||||
for (MouseListener ml :this.btnSkipToEndTurn.getMouseListeners()) {
|
||||
this.btnSkipToEndTurn.removeMouseListener(ml);
|
||||
}
|
||||
for (MouseListener ml :this.btnSkipToNextMain.getMouseListeners()) {
|
||||
this.btnSkipToNextMain.removeMouseListener(ml);
|
||||
}
|
||||
for (MouseListener ml :this.btnSkipToNextTurn.getMouseListeners()) {
|
||||
this.btnSkipToNextTurn.removeMouseListener(ml);
|
||||
}
|
||||
for (MouseListener ml :this.btnSwitchHands.getMouseListeners()) {
|
||||
this.btnSwitchHands.removeMouseListener(ml);
|
||||
}
|
||||
for (MouseListener ml :this.btnStopWatching.getMouseListeners()) {
|
||||
this.btnStopWatching.removeMouseListener(ml);
|
||||
}
|
||||
for (MouseListener ml :this.jPhases.getMouseListeners()) {
|
||||
this.jPhases.removeMouseListener(ml);
|
||||
}
|
||||
|
|
@ -1336,9 +1456,6 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
for (ActionListener al :this.btnPlay.getActionListeners()) {
|
||||
this.btnPlay.removeActionListener(al);
|
||||
}
|
||||
for (ActionListener al :this.btnStopWatching.getActionListeners()) {
|
||||
this.btnStopWatching.removeActionListener(al);
|
||||
}
|
||||
for (ActionListener al :this.btnStopReplay.getActionListeners()) {
|
||||
this.btnStopReplay.removeActionListener(al);
|
||||
}
|
||||
|
|
@ -1378,25 +1495,25 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
}
|
||||
|
||||
private void btnEndTurnActionPerformed(java.awt.event.ActionEvent evt) {
|
||||
if (feedbackPanel != null && FeedbackMode.SELECT.equals(feedbackPanel.getMode())) {
|
||||
if (feedbackPanel != null) {
|
||||
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_TURN, gameId);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnUntilEndOfTurnActionPerformed(java.awt.event.ActionEvent evt) {
|
||||
if (feedbackPanel != null && FeedbackMode.SELECT.equals(feedbackPanel.getMode())) {
|
||||
if (feedbackPanel != null) {
|
||||
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_TURN_END_STEP, gameId);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnUntilNextMainPhaseActionPerformed(java.awt.event.ActionEvent evt) {
|
||||
if (feedbackPanel != null && FeedbackMode.SELECT.equals(feedbackPanel.getMode())) {
|
||||
if (feedbackPanel != null) {
|
||||
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_MAIN_PHASE, gameId);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnPassPriorityUntilNextYourTurnActionPerformed(java.awt.event.ActionEvent evt) {
|
||||
if (feedbackPanel != null && FeedbackMode.SELECT.equals(feedbackPanel.getMode())) {
|
||||
if (feedbackPanel != null) {
|
||||
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_MY_NEXT_TURN, gameId);
|
||||
}
|
||||
}
|
||||
|
|
@ -1511,15 +1628,25 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
|
||||
private mage.client.components.ability.AbilityPicker abilityPicker;
|
||||
private mage.client.cards.BigCard bigCard;
|
||||
|
||||
// private JPanel cancelSkipPanel;
|
||||
private javax.swing.JButton btnCancelSkip;
|
||||
private javax.swing.JButton btnSkipToNextTurn; // F4
|
||||
private javax.swing.JButton btnSkipToEndTurn; // F5
|
||||
private javax.swing.JButton btnSkipToNextMain; // F7
|
||||
private javax.swing.JButton btnSkipToYourTurn; // F9
|
||||
|
||||
private javax.swing.JButton btnConcede;
|
||||
private javax.swing.JButton btnEndTurn;
|
||||
private javax.swing.JButton btnSwitchHands;
|
||||
|
||||
private javax.swing.JButton btnNextPlay;
|
||||
private javax.swing.JButton btnPlay;
|
||||
private javax.swing.JButton btnPreviousPlay;
|
||||
private javax.swing.JButton btnSkipForward;
|
||||
private javax.swing.JButton btnStopReplay;
|
||||
|
||||
private javax.swing.JButton btnStopWatching;
|
||||
|
||||
private mage.client.chat.ChatPanel gameChatPanel;
|
||||
private mage.client.game.FeedbackPanel feedbackPanel;
|
||||
private mage.client.chat.ChatPanel userChatPanel;
|
||||
|
|
@ -1533,7 +1660,7 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
private javax.swing.JLabel lblStep;
|
||||
private javax.swing.JLabel lblTurn;
|
||||
private javax.swing.JPanel pnlBattlefield;
|
||||
private javax.swing.JPanel pnlGameInfo;
|
||||
private javax.swing.JPanel pnlShortCuts;
|
||||
private javax.swing.JPanel pnlReplay;
|
||||
private javax.swing.JLabel txtActivePlayer;
|
||||
private javax.swing.JLabel txtPhase;
|
||||
|
|
|
|||
|
|
@ -83,7 +83,6 @@ import mage.remote.Session;
|
|||
import mage.view.MatchView;
|
||||
import mage.view.RoomUsersView;
|
||||
import mage.view.TableView;
|
||||
import mage.view.UsersView;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
|
|
@ -252,8 +251,8 @@ public class TablesPanel extends javax.swing.JPanel {
|
|||
private void saveDividerLocations() {
|
||||
// save panel sizes and divider locations.
|
||||
Rectangle rec = MageFrame.getDesktop().getBounds();
|
||||
StringBuilder sb = new StringBuilder(Double.toString(rec.getWidth())).append("x").append(Double.toString(rec.getHeight()));
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_MAGE_PANEL_LAST_SIZE, sb.toString());
|
||||
String sb = Double.toString(rec.getWidth()) + "x" + Double.toString(rec.getHeight());
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_MAGE_PANEL_LAST_SIZE, sb);
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_TABLES_DIVIDER_LOCATION_1, Integer.toString(this.jSplitPane1.getDividerLocation()));
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_TABLES_DIVIDER_LOCATION_2, Integer.toString(this.jSplitPane2.getDividerLocation()));
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_TABLES_DIVIDER_LOCATION_3, Integer.toString(chatPanel.getSplitDividerLocation()));
|
||||
|
|
@ -263,9 +262,9 @@ public class TablesPanel extends javax.swing.JPanel {
|
|||
Rectangle rec = MageFrame.getDesktop().getBounds();
|
||||
if (rec != null) {
|
||||
String size = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_MAGE_PANEL_LAST_SIZE, null);
|
||||
StringBuilder sb = new StringBuilder(Double.toString(rec.getWidth())).append("x").append(Double.toString(rec.getHeight()));
|
||||
String sb = Double.toString(rec.getWidth()) + "x" + Double.toString(rec.getHeight());
|
||||
// use divider positions only if screen size is the same as it was the time the settings were saved
|
||||
if (size != null && size.equals(sb.toString())) {
|
||||
if (size != null && size.equals(sb)) {
|
||||
String location = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_TABLES_DIVIDER_LOCATION_1, null);
|
||||
if (location != null && jSplitPane1 != null) {
|
||||
jSplitPane1.setDividerLocation(Integer.parseInt(location));
|
||||
|
|
|
|||
|
|
@ -213,18 +213,19 @@ public class TournamentPanel extends javax.swing.JPanel {
|
|||
}
|
||||
switch (tournament.getTournamentState()) {
|
||||
case "Constructing":
|
||||
String constructionTime = "";
|
||||
String timeLeft = "";
|
||||
if (tournament.getStepStartTime() != null) {
|
||||
constructionTime = Format.getDuration(tournament.getConstructionTime() - (tournament.getServerTime().getTime() - tournament.getStepStartTime().getTime())/1000);
|
||||
timeLeft = Format.getDuration(tournament.getConstructionTime() - (tournament.getServerTime().getTime() - tournament.getStepStartTime().getTime())/1000);
|
||||
}
|
||||
txtTournamentState.setText(new StringBuilder(tournament.getTournamentState()).append(" (").append(constructionTime).append(")").toString());
|
||||
txtTournamentState.setText(new StringBuilder(tournament.getTournamentState()).append(" (").append(timeLeft).append(")").toString());
|
||||
break;
|
||||
case "Dueling":
|
||||
String duelingTime = "";
|
||||
case "Drafting":
|
||||
String usedTime = "";
|
||||
if (tournament.getStepStartTime() != null) {
|
||||
duelingTime = Format.getDuration((tournament.getServerTime().getTime() - tournament.getStepStartTime().getTime())/1000);
|
||||
usedTime = Format.getDuration((tournament.getServerTime().getTime() - tournament.getStepStartTime().getTime())/1000);
|
||||
}
|
||||
txtTournamentState.setText(new StringBuilder(tournament.getTournamentState()).append(" (").append(duelingTime).append(")").toString());
|
||||
txtTournamentState.setText(tournament.getTournamentState() + " (" + usedTime + ") " + tournament.getRunningInfo());
|
||||
break;
|
||||
default:
|
||||
txtTournamentState.setText(tournament.getTournamentState());
|
||||
|
|
|
|||
|
|
@ -342,6 +342,7 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
|
|||
typeButton.setLocation(2, 2);
|
||||
typeButton.setSize(25, 25);
|
||||
|
||||
|
||||
iconPanel.setVisible(true);
|
||||
typeButton.setIcon(new ImageIcon(bufferedImage));
|
||||
if (toolTipText != null) {
|
||||
|
|
|
|||
|
|
@ -30,5 +30,15 @@ public interface ImageManager {
|
|||
Image getDlgNextButtonImage();
|
||||
Image getDlgActiveNextButtonImage();
|
||||
|
||||
Image getSwitchHandsButtonImage();
|
||||
Image getStopWatchButtonImage();
|
||||
Image getConcedeButtonImage();
|
||||
Image getCancelSkipButtonImage();
|
||||
Image getSkipNextTurnButtonImage();
|
||||
Image getSkipEndTurnButtonImage();
|
||||
Image getSkipMainButtonImage();
|
||||
Image getSkipYourNextTurnButtonImage();
|
||||
|
||||
|
||||
Image getPhaseImage(String phase);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -237,9 +237,73 @@ public class ImageManagerImpl implements ImageManager {
|
|||
return imageDlgActiveNextButton;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Image getConcedeButtonImage() {
|
||||
if (imageConcedeButton == null) {
|
||||
imageConcedeButton = getBufferedImageFromResource("/buttons/concede.png");
|
||||
}
|
||||
return imageConcedeButton;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Image getSwitchHandsButtonImage() {
|
||||
if (imageSwitchHandsButton == null) {
|
||||
imageSwitchHandsButton = getBufferedImageFromResource("/buttons/switch_hands.png");
|
||||
}
|
||||
return imageSwitchHandsButton;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Image getStopWatchButtonImage() {
|
||||
if (imageStopWatchingButton == null) {
|
||||
imageStopWatchingButton = getBufferedImageFromResource("/buttons/stop_watching.png");
|
||||
}
|
||||
return imageStopWatchingButton;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Image getCancelSkipButtonImage() {
|
||||
if (imageCancelSkipButton == null) {
|
||||
imageCancelSkipButton = getBufferedImageFromResource("/buttons/cancel_skip.png");
|
||||
}
|
||||
return imageCancelSkipButton;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Image getSkipNextTurnButtonImage() {
|
||||
if (imageSkipNextTurnButton == null) {
|
||||
imageSkipNextTurnButton = getBufferedImageFromResource("/buttons/skip_turn.png");
|
||||
}
|
||||
return imageSkipNextTurnButton;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Image getSkipEndTurnButtonImage() {
|
||||
if (imageSkipToEndTurnButton == null) {
|
||||
imageSkipToEndTurnButton = getBufferedImageFromResource("/buttons/skip_to_end.png");
|
||||
}
|
||||
return imageSkipToEndTurnButton;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Image getSkipMainButtonImage() {
|
||||
if (imageSkipToMainButton == null) {
|
||||
imageSkipToMainButton = getBufferedImageFromResource("/buttons/skip_to_main.png");
|
||||
}
|
||||
return imageSkipToMainButton;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Image getSkipYourNextTurnButtonImage() {
|
||||
if (imageSkipYourNextTurnButton == null) {
|
||||
imageSkipYourNextTurnButton = getBufferedImageFromResource("/buttons/skip_all.png");
|
||||
}
|
||||
return imageSkipYourNextTurnButton;
|
||||
}
|
||||
|
||||
protected static Image getImageFromResourceTransparent(String path, Color mask, Rectangle rec) {
|
||||
BufferedImage image = null;
|
||||
Image imageCardTransparent = null;
|
||||
BufferedImage image;
|
||||
Image imageCardTransparent;
|
||||
Image resized = null;
|
||||
|
||||
URL imageURL = ImageManager.class.getResource(path);
|
||||
|
|
@ -317,5 +381,14 @@ public class ImageManagerImpl implements ImageManager {
|
|||
private static BufferedImage imageDlgNextButton;
|
||||
private static BufferedImage imageDlgActiveNextButton;
|
||||
|
||||
private static BufferedImage imageCancelSkipButton;
|
||||
private static BufferedImage imageSwitchHandsButton;
|
||||
private static BufferedImage imageStopWatchingButton;
|
||||
private static BufferedImage imageConcedeButton;
|
||||
private static BufferedImage imageSkipNextTurnButton;
|
||||
private static BufferedImage imageSkipToEndTurnButton;
|
||||
private static BufferedImage imageSkipToMainButton;
|
||||
private static BufferedImage imageSkipYourNextTurnButton;
|
||||
|
||||
private static Map<String, Image> phasesImages;
|
||||
}
|
||||
|
|
|
|||
BIN
Mage.Client/src/main/resources/buttons/cancel_skip.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
Mage.Client/src/main/resources/buttons/concede.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Mage.Client/src/main/resources/buttons/skip_all.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
Mage.Client/src/main/resources/buttons/skip_to_end.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
Mage.Client/src/main/resources/buttons/skip_to_main.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
Mage.Client/src/main/resources/buttons/skip_turn.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
Mage.Client/src/main/resources/buttons/stop_watching.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
Mage.Client/src/main/resources/buttons/switch_hands.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |