diff --git a/Mage.Client/src/main/java/mage/client/components/ColorPane.java b/Mage.Client/src/main/java/mage/client/components/ColorPane.java index c835dbf973a..370459a2664 100644 --- a/Mage.Client/src/main/java/mage/client/components/ColorPane.java +++ b/Mage.Client/src/main/java/mage/client/components/ColorPane.java @@ -17,18 +17,21 @@ import javax.swing.text.html.HTMLEditorKit; 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 method solves the known issue with Nimbus LAF background transparency and background color. + * This method solves the known issue with Nimbus LAF background + * transparency and background color. + * * @param color */ public void setExtBackgroundColor(Color color) { - setBackground(new Color(0,0,0,0)); + setBackground(new Color(0, 0, 0, 0)); JPanel jPanel = new JPanel(); jPanel.setBackground(color); setLayout(new BorderLayout()); @@ -73,4 +76,4 @@ public class ColorPane extends JEditorPane { super.paintChildren(g); } -} \ No newline at end of file +} diff --git a/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.form b/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.form index 9ef7f54408f..324258710a2 100644 --- a/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.form +++ b/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.form @@ -1,6 +1,10 @@ -
+ + + + + @@ -85,6 +89,9 @@ + + + @@ -92,6 +99,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.java b/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.java index 0c96d1588b5..eff39e49483 100644 --- a/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.java @@ -38,13 +38,12 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.swing.Icon; +import javax.swing.border.EmptyBorder; import javax.swing.table.AbstractTableModel; import javax.swing.table.JTableHeader; import javax.swing.table.TableColumnModel; import mage.client.chat.ChatPanelBasic; import static mage.client.chat.ChatPanelBasic.CHAT_ALPHA; -import mage.client.chat.ChatPanelSeparated; -import mage.client.components.ColorPane; import static mage.client.dialog.PreferencesDialog.KEY_USERS_COLUMNS_ORDER; import static mage.client.dialog.PreferencesDialog.KEY_USERS_COLUMNS_WIDTH; import mage.client.util.MageTableRowSorter; @@ -62,8 +61,6 @@ public class PlayersChatPanel extends javax.swing.JPanel { private final List players = new ArrayList<>(); private final UserTableModel userTableModel; - private final ChatPanelSeparated userChatPanel; - private final ColorPane systemMessagesPane; private static final int[] defaultColumnsWidth = {20, 100, 100, 80, 80}; @@ -84,43 +81,26 @@ public class PlayersChatPanel extends javax.swing.JPanel { TableUtil.setColumnWidthAndOrder(jTablePlayers, defaultColumnsWidth, KEY_USERS_COLUMNS_WIDTH, KEY_USERS_COLUMNS_ORDER); jTablePlayers.setDefaultRenderer(Icon.class, new CountryCellRenderer()); - systemMessagesPane = new ColorPane(); + jScrollPaneTalk.setSystemMessagesPane(colorPaneSystem); + jScrollPaneTalk.setOpaque(false); - userChatPanel = new ChatPanelSeparated(); - userChatPanel.setSystemMessagesPane(systemMessagesPane); - - if (jTabbedPaneText != null) { - jTabbedPaneText.setBackground(new Color(0, 0, 0, CHAT_ALPHA)); - if (userChatPanel != null) { - userChatPanel.setBackground(new Color(0, 0, 0, CHAT_ALPHA)); - jTabbedPaneText.addTab("Talk", userChatPanel); - } - if (systemMessagesPane != null) { - systemMessagesPane.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); - systemMessagesPane.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N - systemMessagesPane.setFocusCycleRoot(false); - systemMessagesPane.setMargin(new java.awt.Insets(2, 2, 2, 2)); - systemMessagesPane.setOpaque(false); - systemMessagesPane.setExtBackgroundColor(new Color(0, 0, 0, CHAT_ALPHA)); // Alpha = 255 not transparent - systemMessagesPane.setSelectionColor(Color.LIGHT_GRAY); - jTabbedPaneText.addTab("System", systemMessagesPane); - - } - } + jScrollPaneSystem.getViewport().setOpaque(false); + colorPaneSystem.setExtBackgroundColor(new Color(0, 0, 0, CHAT_ALPHA)); // Alpha = 255 not transparent + colorPaneSystem.setBorder(new EmptyBorder(5, 5, 5, 5)); if (jScrollPanePlayers != null) { - jScrollPanePlayers.setBackground(new Color(0, 0, 0, CHAT_ALPHA)); jScrollPanePlayers.getViewport().setBackground(new Color(0, 0, 0, CHAT_ALPHA)); } + } public ChatPanelBasic getUserChatPanel() { - return userChatPanel; + return jScrollPaneTalk; } public void cleanUp() { TableUtil.saveColumnWidthAndOrderToPrefs(jTablePlayers, KEY_USERS_COLUMNS_WIDTH, KEY_USERS_COLUMNS_ORDER); - userChatPanel.cleanUp(); + jScrollPaneTalk.cleanUp(); } public void setSplitDividerLocation(int location) { @@ -219,11 +199,16 @@ public class PlayersChatPanel extends javax.swing.JPanel { @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { + java.awt.GridBagConstraints gridBagConstraints; + jSpinner1 = new javax.swing.JSpinner(); jSplitPane1 = new javax.swing.JSplitPane(); jScrollPanePlayers = new javax.swing.JScrollPane(); jTablePlayers = new javax.swing.JTable(); jTabbedPaneText = new javax.swing.JTabbedPane(); + jScrollPaneTalk = new mage.client.chat.ChatPanelSeparated(); + jScrollPaneSystem = new javax.swing.JScrollPane(); + colorPaneSystem = new mage.client.components.ColorPane(); jSplitPane1.setBorder(null); jSplitPane1.setDividerSize(10); @@ -246,6 +231,26 @@ public class PlayersChatPanel extends javax.swing.JPanel { jScrollPanePlayers.setViewportView(jTablePlayers); jSplitPane1.setTopComponent(jScrollPanePlayers); + + jTabbedPaneText.setTabPlacement(javax.swing.JTabbedPane.BOTTOM); + jTabbedPaneText.addTab("Talk", jScrollPaneTalk); + + jScrollPaneSystem.setBorder(null); + jScrollPaneSystem.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + jScrollPaneSystem.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + jScrollPaneSystem.setFocusable(false); + jScrollPaneSystem.setOpaque(false); + + colorPaneSystem.setEditable(false); + colorPaneSystem.setBackground(new java.awt.Color(0, 0, 0)); + colorPaneSystem.setBorder(null); + colorPaneSystem.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N + colorPaneSystem.setMargin(new java.awt.Insets(0, 0, 0, 0)); + colorPaneSystem.setOpaque(false); + jScrollPaneSystem.setViewportView(colorPaneSystem); + + jTabbedPaneText.addTab("System", jScrollPaneSystem); + jSplitPane1.setRightComponent(jTabbedPaneText); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); @@ -270,7 +275,11 @@ public class PlayersChatPanel extends javax.swing.JPanel { } } // Variables declaration - do not modify//GEN-BEGIN:variables + private mage.client.components.ColorPane colorPaneSystem; private javax.swing.JScrollPane jScrollPanePlayers; + private javax.swing.JScrollPane jScrollPaneSystem; + private mage.client.chat.ChatPanelSeparated jScrollPaneTalk; + private javax.swing.JSpinner jSpinner1; private javax.swing.JSplitPane jSplitPane1; private javax.swing.JTabbedPane jTabbedPaneText; private javax.swing.JTable jTablePlayers;