diff --git a/Mage.Client/src/main/java/mage/client/components/MageTextArea.java b/Mage.Client/src/main/java/mage/client/components/MageTextArea.java index bafceff087b..61e9543703e 100644 --- a/Mage.Client/src/main/java/mage/client/components/MageTextArea.java +++ b/Mage.Client/src/main/java/mage/client/components/MageTextArea.java @@ -1,6 +1,5 @@ package mage.client.components; -import mage.view.CardView; import org.mage.card.arcane.ManaSymbols; import org.mage.card.arcane.UI; @@ -20,19 +19,17 @@ public class MageTextArea extends JEditorPane { setEditable(false); setBackground(new Color(0, 0, 0, 0)); // transparent background setFocusable(false); - setBorder(BorderFactory.createLineBorder(Color.red)); + //setBorder(BorderFactory.createLineBorder(Color.red)); //setSelectionColor(new Color(0, 0, 0, 0)); } public void setText(String text) { - setText(text, null); + setText(text, 16); } - public void setText(String text, CardView source) { + public void setText(String text, int fontSize) { if (text == null) return; - int fontSize = 16; - String fontFamily = "arial"; final StringBuffer buffer = new StringBuffer(512); diff --git a/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java b/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java index 4558d201eb9..d320fe19e26 100644 --- a/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java @@ -82,6 +82,7 @@ public class FeedbackPanel extends javax.swing.JPanel { public void getFeedback(FeedbackMode mode, String message, boolean special, Map options) { logger.info("text: " + message); this.lblMessage.setText(message); + this.helper.setMessage(message); this.selected = false; this.mode = mode; switch (this.mode) { diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java index 0139b733733..eff1b36e994 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java @@ -89,7 +89,7 @@ public class GamePanel extends javax.swing.JPanel { private String chosenHandKey = "You"; private boolean smallMode = false; - private int cachedStackSize; + private HelperPanel helper; /** Creates new form GamePanel */ public GamePanel() { @@ -213,6 +213,9 @@ public class GamePanel extends javax.swing.JPanel { DialogManager.getManager().setScreenWidth(rect.width); DialogManager.getManager().setScreenHeight(rect.height); DialogManager.getManager().setBounds(0, 0, rect.width, rect.height); + + //helper.setPreferredSize(new Dimension(rect.width, 80)); + //helper.setMaximumSize(new Dimension(rect.width, 80)); } public synchronized void showGame(UUID gameId, UUID playerId) { @@ -721,6 +724,7 @@ public class GamePanel extends javax.swing.JPanel { }); stack.setPreferredSize(new java.awt.Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight + 25)); + stack.setBackground(new Color(0,0,0,0)); btnStopReplay.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/control_stop.png"))); // NOI18N btnStopReplay.addActionListener(new java.awt.event.ActionListener() { @@ -794,7 +798,7 @@ public class GamePanel extends javax.swing.JPanel { .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(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() .addContainerGap() @@ -804,17 +808,17 @@ public class GamePanel extends javax.swing.JPanel { gl_pnlGameInfo.setVerticalGroup( gl_pnlGameInfo.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(gl_pnlGameInfo.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) - .addComponent(stack, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .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(btnSwitchHands) - .addComponent(btnStopWatching))) + .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) + .addComponent(stack, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .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(btnSwitchHands) + .addComponent(btnStopWatching))) ); pnlBattlefield.setLayout(new java.awt.GridBagLayout()); @@ -867,8 +871,8 @@ public class GamePanel extends javax.swing.JPanel { //jPhases.add(endButtonTip); pnlReplay.setOpaque(false); - HelperPanel helper = new HelperPanel(); - helper.setPreferredSize(new Dimension(100, 30)); + helper = new HelperPanel(); + helper.setPreferredSize(new Dimension(100, 80)); helper.addEndTurnListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { @@ -891,12 +895,12 @@ public class GamePanel extends javax.swing.JPanel { .addComponent(pnlGameInfo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addGap(0) .addGroup(gl_jPanel3.createParallelGroup(Alignment.LEADING) - .addComponent(handContainer, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPhases, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(helper, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(gl_jPanel3.createSequentialGroup() - .addComponent(pnlBattlefield, GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE) - ))) + .addComponent(handContainer, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + //.addComponent(jPhases, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(helper, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(gl_jPanel3.createSequentialGroup() + .addComponent(pnlBattlefield, GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE) + ))) ); gl_jPanel3.setVerticalGroup( gl_jPanel3.createParallelGroup(Alignment.TRAILING) @@ -905,7 +909,8 @@ public class GamePanel extends javax.swing.JPanel { .addPreferredGap(ComponentPlacement.RELATED) .addComponent(helper, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(handContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addComponent(jPhases, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + //.addComponent(jPhases, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + ) .addComponent(pnlGameInfo, GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE) ); jPanel3.setLayout(gl_jPanel3); diff --git a/Mage.Client/src/main/java/mage/client/game/HandPanel.java b/Mage.Client/src/main/java/mage/client/game/HandPanel.java index ce2c1d67ea1..83908298b07 100644 --- a/Mage.Client/src/main/java/mage/client/game/HandPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/HandPanel.java @@ -1,16 +1,5 @@ package mage.client.game; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.GridBagLayout; -import java.util.UUID; - -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.border.Border; -import javax.swing.border.EmptyBorder; - import mage.Constants; import mage.client.MageFrame; import mage.client.cards.BigCard; @@ -18,6 +7,12 @@ import mage.client.dialog.PreferencesDialog; import mage.client.util.Config; import mage.view.SimpleCardsView; +import javax.swing.*; +import javax.swing.border.Border; +import javax.swing.border.EmptyBorder; +import java.awt.*; +import java.util.UUID; + public class HandPanel extends JPanel { private static final int CARD_WIDTH = 75; @@ -78,11 +73,11 @@ public class HandPanel extends JPanel { public void sizeHand(double factor, boolean smallMode) { this.smallMode = smallMode; - int width = (int)(factor * CARD_WIDTH); - int bigWidth = (int)(Config.handScalingFactor * CARD_WIDTH); - handCardDimension = new Dimension(width, (int)(width * ASPECT_RATIO)); - handCardDimensionBig = new Dimension(bigWidth, (int)(bigWidth * ASPECT_RATIO)); - hand.setCardDimension(getHandCardDimension()); + int width = (int) (factor * CARD_WIDTH); + int bigWidth = (int) (Config.handScalingFactor * CARD_WIDTH); + handCardDimension = new Dimension(width, (int) (width * ASPECT_RATIO)); + handCardDimensionBig = new Dimension(bigWidth, (int) (bigWidth * ASPECT_RATIO)); + hand.setCardDimension(getHandCardDimension()); hand.sizeCards(getHandCardDimension()); } diff --git a/Mage.Client/src/main/java/mage/client/game/HelperPanel.java b/Mage.Client/src/main/java/mage/client/game/HelperPanel.java index 77a6c5f1b6a..66fd3ee55ce 100644 --- a/Mage.Client/src/main/java/mage/client/game/HelperPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/HelperPanel.java @@ -28,6 +28,8 @@ package mage.client.game; +import mage.client.components.MageTextArea; + import javax.swing.*; import java.awt.*; import java.awt.event.MouseListener; @@ -45,24 +47,55 @@ public class HelperPanel extends JPanel { private javax.swing.JButton btnEndTurn; //private javax.swing.JButton btnStopTimer; + private MageTextArea textArea; + private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JButton linkLeft; private javax.swing.JButton linkRight; private javax.swing.JButton linkSpecial; public HelperPanel() { + initComponents(); + } + + private void initComponents() { setBackground(new Color(0, 0, 0, 100)); - setLayout(new GridBagLayout()); + //setLayout(new GridBagLayout()); + setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); setOpaque(false); + JPanel container = new JPanel(); + container.setPreferredSize(new Dimension(100, 30)); + container.setLayout(new GridBagLayout()); + container.setOpaque(false); + + JPanel jPanel = new JPanel(); + + textArea = new MageTextArea(); + textArea.setText(""); + + //jScrollPane1 = new javax.swing.JScrollPane(); + //jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + //jScrollPane1.setViewportView(textArea); + //jScrollPane1.setBorder(null); + + jPanel.setOpaque(false); + jPanel.setBackground(new Color(0, 0, 0, 80)); + //jPanel.add(jScrollPane1); + jPanel.add(textArea); + add(jPanel); + + add(container); + btnSpecial = new JButton("Special"); btnSpecial.setVisible(false); - add(btnSpecial); + container.add(btnSpecial); btnLeft = new JButton("OK"); btnLeft.setEnabled(false); - add(btnLeft); + container.add(btnLeft); btnRight = new JButton("Cancel"); btnRight.setEnabled(false); - add(btnRight); + container.add(btnRight); //btnStopTimer = new JButton("Stop timer"); //btnStopTimer.setToolTipText("Stop auto phase skipping timer"); @@ -70,7 +103,7 @@ public class HelperPanel extends JPanel { btnEndTurn = new JButton("End Turn"); btnEndTurn.setToolTipText("End The Turn"); - add(btnEndTurn); + container.add(btnEndTurn); btnLeft.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -135,4 +168,12 @@ public class HelperPanel extends JPanel { public void addEndTurnListener(MouseListener mouseListener) { this.btnEndTurn.addMouseListener(mouseListener); } + + public void setMessage(String message) { + if (message.contains("Use")) { + textArea.setText("Use ability?"); + } else { + textArea.setText(message); + } + } }