From 5392b92c38c8ef99c65a4e6b470451663222e5a2 Mon Sep 17 00:00:00 2001 From: magenoxx Date: Fri, 22 Oct 2010 11:54:23 +0000 Subject: [PATCH] ... --- Mage.Client/pom.xml | 86 +++++++------- Mage.Client/resources/dk_gray.jpg | Bin 0 -> 3721 bytes Mage.Client/src/mage/client/cards/Card.java | 2 +- Mage.Client/src/mage/client/cards/Cards.java | 4 + .../src/mage/client/chat/ChatPanel.java | 2 + .../mage/client/game/BattlefieldPanel.java | 10 +- .../src/mage/client/game/GamePanel.java | 68 ++++++++---- .../src/mage/client/game/PlayAreaPanel.java | 4 + .../src/mage/client/util/Constants.java | 3 +- .../src/mage/client/util/{ => gui}/Arrow.java | 2 +- .../client/util/{ => gui}/ArrowBuilder.java | 2 +- .../src/mage/client/util/gui/ImagePanel.java | 105 ++++++++++++++++++ 12 files changed, 220 insertions(+), 68 deletions(-) create mode 100644 Mage.Client/resources/dk_gray.jpg rename Mage.Client/src/mage/client/util/{ => gui}/Arrow.java (95%) rename Mage.Client/src/mage/client/util/{ => gui}/ArrowBuilder.java (94%) create mode 100644 Mage.Client/src/mage/client/util/gui/ImagePanel.java diff --git a/Mage.Client/pom.xml b/Mage.Client/pom.xml index 2931bf5b9ce..fdf70a5a4ae 100644 --- a/Mage.Client/pom.xml +++ b/Mage.Client/pom.xml @@ -1,63 +1,71 @@ - - 4.0.0 - - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + 4.0.0 + + + org.mage + mage-root + 0.3 + + org.mage - mage-root - 0.3 - - - org.mage - mage-client - jar - 0.3 - Mage Client - http://maven.apache.org - + mage-client + jar + 0.3 + Mage Client + http://maven.apache.org + - org.mage - mage - ${mage-version} + org.mage + mage + ${mage-version} - org.mage - mage-common - ${mage-version} + org.mage + mage-common + ${mage-version} - org.mage - mage-sets - ${mage-version} + org.mage + mage-sets + ${mage-version} - + src - + + + + resources + false + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.0.2 + + 1.6 + 1.6 + + - org.apache.maven.plugins - maven-compiler-plugin - 2.0.2 - - 1.6 - 1.6 - - - maven-resources-plugin UTF-8 - - + + mage-client - + 0.3 diff --git a/Mage.Client/resources/dk_gray.jpg b/Mage.Client/resources/dk_gray.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2e0776d6068d1fd77894a99bb98dcac2d56dd576 GIT binary patch literal 3721 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 players = new HashMap(); - //private Map players = new HashMap(); private Map exiles = new HashMap(); private UUID gameId; private UUID playerId; @@ -82,28 +87,45 @@ public class GamePanel extends javax.swing.JPanel { public GamePanel() { initComponents(); - // Override layout (I can't edit generated code) - this.setLayout(new BorderLayout()); - final JLayeredPane j = new JLayeredPane(); - j.add(ArrowBuilder.getArrowsPanel(), JLayeredPane.MODAL_LAYER); - j.setSize(1024,768); - //j.setBorder(BorderFactory.createLineBorder(Color.green)); - j.add(jSplitPane1, JLayeredPane.DEFAULT_LAYER); - this.add(j); - - // Enlarge jlayeredpane on resize - addComponentListener(new ComponentAdapter(){ - @Override - public void componentResized(ComponentEvent e) { - int width = ((JComponent)e.getSource()).getWidth(); - int height = ((JComponent)e.getSource()).getHeight(); - j.setSize(width, height); - JPanel arrowsPanel = ArrowBuilder.getArrowsPanelRef(); - if (arrowsPanel != null) arrowsPanel.setSize(width, height); - jSplitPane1.setSize(width, height); - } - }); + //FIXME: remove from here + try { + BufferedImage background = ImageHelper.loadImage("/dk_gray.jpg"); + ImagePanel bgPanel = new ImagePanel(background, ImagePanel.TILED); + + // Override layout (I can't edit generated code) + this.setLayout(new BorderLayout()); + final JLayeredPane j = new JLayeredPane(); + j.add(ArrowBuilder.getArrowsPanel(), JLayeredPane.MODAL_LAYER); + j.setSize(1024,768); + //j.setBorder(BorderFactory.createLineBorder(Color.green)); + //this.add(j); + j.add(jSplitPane1, JLayeredPane.DEFAULT_LAYER); + + jSplitPane1.setOpaque(false); + pnlBattlefield.setOpaque(false); + jPanel3.setOpaque(false); + hand.setOpaque(false); + chatPanel.setOpaque(false); + bgPanel.add(j); + this.add(bgPanel); + // Enlarge jlayeredpane on resize + addComponentListener(new ComponentAdapter(){ + @Override + public void componentResized(ComponentEvent e) { + int width = ((JComponent)e.getSource()).getWidth(); + int height = ((JComponent)e.getSource()).getHeight(); + j.setSize(width, height); + JPanel arrowsPanel = ArrowBuilder.getArrowsPanelRef(); + if (arrowsPanel != null) arrowsPanel.setSize(width, height); + jSplitPane1.setSize(width, height); + } + }); + + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e); + } } public void cleanUp() { diff --git a/Mage.Client/src/mage/client/game/PlayAreaPanel.java b/Mage.Client/src/mage/client/game/PlayAreaPanel.java index 182dc837126..b340b23db3f 100644 --- a/Mage.Client/src/mage/client/game/PlayAreaPanel.java +++ b/Mage.Client/src/mage/client/game/PlayAreaPanel.java @@ -56,6 +56,10 @@ public class PlayAreaPanel extends javax.swing.JPanel { /** Creates new form PlayAreaPanel */ public PlayAreaPanel() { initComponents(); + setOpaque(false); + jScrollPane1.setOpaque(false); + jScrollPane1.getViewport().setOpaque(false); + battlefieldPanel.setOpaque(false); } public PlayAreaPanel(PlayerView player, BigCard bigCard, UUID gameId) { diff --git a/Mage.Client/src/mage/client/util/Constants.java b/Mage.Client/src/mage/client/util/Constants.java index c55c965f150..1daaeed73d0 100644 --- a/Mage.Client/src/mage/client/util/Constants.java +++ b/Mage.Client/src/mage/client/util/Constants.java @@ -28,6 +28,8 @@ package mage.client.util; +import java.io.File; + /** * * @author BetaSteward_at_googlemail.com @@ -66,5 +68,4 @@ public final class Constants { public static final int DAMAGE_MAX_LEFT = 180; public static final double SCALE_FACTOR = 0.5; - } diff --git a/Mage.Client/src/mage/client/util/Arrow.java b/Mage.Client/src/mage/client/util/gui/Arrow.java similarity index 95% rename from Mage.Client/src/mage/client/util/Arrow.java rename to Mage.Client/src/mage/client/util/gui/Arrow.java index 3075bbe315e..ef74111f2e1 100644 --- a/Mage.Client/src/mage/client/util/Arrow.java +++ b/Mage.Client/src/mage/client/util/gui/Arrow.java @@ -1,4 +1,4 @@ -package mage.client.util; +package mage.client.util.gui; import java.awt.AlphaComposite; import java.awt.BorderLayout; diff --git a/Mage.Client/src/mage/client/util/ArrowBuilder.java b/Mage.Client/src/mage/client/util/gui/ArrowBuilder.java similarity index 94% rename from Mage.Client/src/mage/client/util/ArrowBuilder.java rename to Mage.Client/src/mage/client/util/gui/ArrowBuilder.java index 5c9593a7f05..b0fa6ab93d2 100644 --- a/Mage.Client/src/mage/client/util/ArrowBuilder.java +++ b/Mage.Client/src/mage/client/util/gui/ArrowBuilder.java @@ -1,4 +1,4 @@ -package mage.client.util; +package mage.client.util.gui; import java.awt.BorderLayout; import java.awt.Color; diff --git a/Mage.Client/src/mage/client/util/gui/ImagePanel.java b/Mage.Client/src/mage/client/util/gui/ImagePanel.java new file mode 100644 index 00000000000..299d0988baf --- /dev/null +++ b/Mage.Client/src/mage/client/util/gui/ImagePanel.java @@ -0,0 +1,105 @@ +package mage.client.util.gui; + +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.image.BufferedImage; + +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JViewport; + +@SuppressWarnings("serial") +public class ImagePanel extends JPanel { + public static final int TILED = 0; + public static final int SCALED = 1; + public static final int ACTUAL = 2; + + private BufferedImage image; + private int style; + private float alignmentX = 0.5f; + private float alignmentY = 0.5f; + + public ImagePanel(BufferedImage image) { + this(image, TILED); + } + + public ImagePanel(BufferedImage image, int style) { + this.image = image; + this.style = style; + setLayout(new BorderLayout()); + } + + public void setImageAlignmentX(float alignmentX) { + this.alignmentX = alignmentX > 1.0f ? 1.0f : alignmentX < 0.0f ? 0.0f : alignmentX; + } + + public void setImageAlignmentY(float alignmentY) { + this.alignmentY = alignmentY > 1.0f ? 1.0f : alignmentY < 0.0f ? 0.0f : alignmentY; + + } + + public void add(JComponent component) { + add(component, null); + } + + public void add(JComponent component, Object constraints) { + component.setOpaque(false); + + if (component instanceof JScrollPane) { + JScrollPane scrollPane = (JScrollPane) component; + JViewport viewport = scrollPane.getViewport(); + viewport.setOpaque(false); + Component c = viewport.getView(); + + if (c instanceof JComponent) { + ((JComponent) c).setOpaque(false); + } + } + + super.add(component, constraints); + } + + protected void paintComponent(Graphics g) { + super.paintComponent(g); + + if (image == null) + return; + + switch (style) { + case TILED: + drawTiled(g); + break; + + case SCALED: + Dimension d = getSize(); + g.drawImage(image, 0, 0, d.width, d.height, null); + break; + + case ACTUAL: + drawActual(g); + break; + } + } + + private void drawTiled(Graphics g) { + Dimension d = getSize(); + int width = image.getWidth(null); + int height = image.getHeight(null); + + for (int x = 0; x < d.width; x += width) { + for (int y = 0; y < d.height; y += height) { + g.drawImage(image, x, y, null, null); + } + } + } + + private void drawActual(Graphics g) { + Dimension d = getSize(); + float x = (d.width - image.getWidth()) * alignmentX; + float y = (d.height - image.getHeight()) * alignmentY; + g.drawImage(image, (int) x, (int) y, this); + } +}