mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 11:32:00 -08:00
Displaying connected players. (but smth wrong with net beans form editor, will take a look at later)
This commit is contained in:
parent
b4ce80dfdc
commit
9551a38d5c
6 changed files with 271 additions and 56 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.1" encoding="UTF-8" ?>
|
<?xml version="1.1" encoding="UTF-8" ?>
|
||||||
|
|
||||||
<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
<Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
||||||
<AuxValues>
|
<AuxValues>
|
||||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
||||||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
||||||
|
|
@ -16,46 +16,95 @@
|
||||||
<Layout>
|
<Layout>
|
||||||
<DimensionLayout dim="0">
|
<DimensionLayout dim="0">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Component id="txtMessage" alignment="1" pref="179" max="32767" attributes="0"/>
|
<Component id="txtMessage" alignment="1" pref="168" max="32767" attributes="0"/>
|
||||||
<Component id="jScrollPane1" alignment="0" pref="179" max="32767" attributes="0"/>
|
<Component id="jTabbedPane1" alignment="1" pref="168" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
<DimensionLayout dim="1">
|
<DimensionLayout dim="1">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Group type="102" alignment="1" attributes="0">
|
<Group type="102" alignment="1" attributes="0">
|
||||||
<Component id="jScrollPane1" pref="300" max="32767" attributes="0"/>
|
<Component id="jTabbedPane1" pref="294" max="32767" attributes="0"/>
|
||||||
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="txtMessage" min="-2" pref="25" max="-2" attributes="0"/>
|
<Component id="txtMessage" min="-2" pref="25" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
</Layout>
|
</Layout>
|
||||||
<SubComponents>
|
<SubComponents>
|
||||||
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
|
|
||||||
<AuxValues>
|
|
||||||
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
|
|
||||||
</AuxValues>
|
|
||||||
|
|
||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
|
||||||
<SubComponents>
|
|
||||||
<Component class="javax.swing.JTextArea" name="txtConversation">
|
|
||||||
<Properties>
|
|
||||||
<Property name="columns" type="int" value="20"/>
|
|
||||||
<Property name="editable" type="boolean" value="false"/>
|
|
||||||
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
|
|
||||||
<Font name="Arial" size="10" style="0"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="lineWrap" type="boolean" value="true"/>
|
|
||||||
<Property name="rows" type="int" value="5"/>
|
|
||||||
<Property name="wrapStyleWord" type="boolean" value="true"/>
|
|
||||||
</Properties>
|
|
||||||
</Component>
|
|
||||||
</SubComponents>
|
|
||||||
</Container>
|
|
||||||
<Component class="javax.swing.JTextField" name="txtMessage">
|
<Component class="javax.swing.JTextField" name="txtMessage">
|
||||||
<Events>
|
<Events>
|
||||||
<EventHandler event="keyTyped" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="txtMessageKeyTyped"/>
|
<EventHandler event="keyTyped" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="txtMessageKeyTyped"/>
|
||||||
</Events>
|
</Events>
|
||||||
</Component>
|
</Component>
|
||||||
|
<Container class="javax.swing.JTabbedPane" name="jTabbedPane1">
|
||||||
|
<Properties>
|
||||||
|
<Property name="tabPlacement" type="int" value="3"/>
|
||||||
|
</Properties>
|
||||||
|
<AccessibilityProperties>
|
||||||
|
<Property name="AccessibleContext.accessibleName" type="java.lang.String" value="chat"/>
|
||||||
|
</AccessibilityProperties>
|
||||||
|
|
||||||
|
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/>
|
||||||
|
<SubComponents>
|
||||||
|
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
|
||||||
|
</AuxValues>
|
||||||
|
<Constraints>
|
||||||
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
||||||
|
<JTabbedPaneConstraints tabName="chat">
|
||||||
|
<Property name="tabTitle" type="java.lang.String" value="chat"/>
|
||||||
|
</JTabbedPaneConstraints>
|
||||||
|
</Constraint>
|
||||||
|
</Constraints>
|
||||||
|
|
||||||
|
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JTextArea" name="txtConversation">
|
||||||
|
<Properties>
|
||||||
|
<Property name="columns" type="int" value="20"/>
|
||||||
|
<Property name="editable" type="boolean" value="false"/>
|
||||||
|
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
|
||||||
|
<Font name="Arial" size="10" style="0"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="lineWrap" type="boolean" value="true"/>
|
||||||
|
<Property name="rows" type="int" value="5"/>
|
||||||
|
<Property name="wrapStyleWord" type="boolean" value="true"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JScrollPane" name="jScrollPane2">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
|
||||||
|
</AuxValues>
|
||||||
|
<Constraints>
|
||||||
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
||||||
|
<JTabbedPaneConstraints tabName="players">
|
||||||
|
<Property name="tabTitle" type="java.lang.String" value="players"/>
|
||||||
|
</JTabbedPaneConstraints>
|
||||||
|
</Constraint>
|
||||||
|
</Constraints>
|
||||||
|
|
||||||
|
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JTable" name="jTable1">
|
||||||
|
<Properties>
|
||||||
|
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||||
|
<Connection code="this.tableModel" type="code"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="toolTipText" type="java.lang.String" value="Connected players"/>
|
||||||
|
<Property name="gridColor" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
|
<Color blue="ff" green="ff" red="ff" type="rgb"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor">
|
||||||
|
<TableHeader reorderingAllowed="true" resizingAllowed="true"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
</SubComponents>
|
</SubComponents>
|
||||||
</Form>
|
</Form>
|
||||||
|
|
|
||||||
|
|
@ -34,14 +34,20 @@
|
||||||
|
|
||||||
package mage.client.chat;
|
package mage.client.chat;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.*;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
import java.util.UUID;
|
import java.util.*;
|
||||||
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import mage.client.MageFrame;
|
import mage.client.MageFrame;
|
||||||
import mage.client.remote.Session;
|
import mage.client.remote.Session;
|
||||||
import mage.util.Logging;
|
import mage.util.Logging;
|
||||||
import mage.view.ChatMessage.MessageColor;
|
import mage.view.ChatMessage.MessageColor;
|
||||||
|
import mage.view.SeatView;
|
||||||
|
import mage.view.TableView;
|
||||||
|
|
||||||
|
import javax.swing.table.AbstractTableModel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author BetaSteward_at_googlemail.com
|
* @author BetaSteward_at_googlemail.com
|
||||||
|
|
@ -54,12 +60,22 @@ public class ChatPanel extends javax.swing.JPanel {
|
||||||
private UUID clientId;
|
private UUID clientId;
|
||||||
private Session session;
|
private Session session;
|
||||||
|
|
||||||
|
private List<String> players = new ArrayList<String>();
|
||||||
|
private TableModel tableModel;
|
||||||
|
|
||||||
/** Creates new form ChatPanel */
|
/** Creates new form ChatPanel */
|
||||||
public ChatPanel() {
|
public ChatPanel() {
|
||||||
|
this(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param extendedView if true, adds chat/players tabs
|
||||||
|
*/
|
||||||
|
/** Creates new form ChatPanel */
|
||||||
|
public ChatPanel(boolean extendedView) {
|
||||||
|
tableModel = new TableModel();
|
||||||
initComponents();
|
initComponents();
|
||||||
jScrollPane1.setOpaque(false);
|
if (!extendedView) simplifyComponents();
|
||||||
jScrollPane1.getViewport().setOpaque(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void connect(UUID chatId) {
|
public void connect(UUID chatId) {
|
||||||
|
|
@ -95,6 +111,52 @@ public class ChatPanel extends javax.swing.JPanel {
|
||||||
txtConversation.setCaretPosition(txtConversation.getText().length() - 1);
|
txtConversation.setCaretPosition(txtConversation.getText().length() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class TableModel extends AbstractTableModel {
|
||||||
|
private String[] columnNames = new String[]{"Players"};
|
||||||
|
private List<String> players = new ArrayList<String>(0);
|
||||||
|
|
||||||
|
public void loadData(List<String> players) {
|
||||||
|
this.players = players;
|
||||||
|
this.fireTableDataChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRowCount() {
|
||||||
|
return players.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getColumnCount() {
|
||||||
|
return columnNames.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getValueAt(int arg0, int arg1) {
|
||||||
|
return players.get(arg0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getColumnName(int columnIndex) {
|
||||||
|
String colName = "";
|
||||||
|
|
||||||
|
if (columnIndex <= getColumnCount())
|
||||||
|
colName = columnNames[columnIndex];
|
||||||
|
|
||||||
|
return colName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class getColumnClass(int columnIndex){
|
||||||
|
return String.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCellEditable(int rowIndex, int columnIndex) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void clear() {
|
public void clear() {
|
||||||
this.txtConversation.selectAll();
|
this.txtConversation.selectAll();
|
||||||
this.txtConversation.replaceSelection("");
|
this.txtConversation.replaceSelection("");
|
||||||
|
|
@ -109,17 +171,12 @@ public class ChatPanel extends javax.swing.JPanel {
|
||||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||||
private void initComponents() {
|
private void initComponents() {
|
||||||
|
|
||||||
|
txtMessage = new javax.swing.JTextField();
|
||||||
|
jTabbedPane1 = new javax.swing.JTabbedPane();
|
||||||
jScrollPane1 = new javax.swing.JScrollPane();
|
jScrollPane1 = new javax.swing.JScrollPane();
|
||||||
txtConversation = new javax.swing.JTextArea();
|
txtConversation = new javax.swing.JTextArea();
|
||||||
txtMessage = new javax.swing.JTextField();
|
jScrollPane2 = new javax.swing.JScrollPane();
|
||||||
|
jTable1 = new javax.swing.JTable();
|
||||||
txtConversation.setColumns(20);
|
|
||||||
txtConversation.setEditable(false);
|
|
||||||
txtConversation.setFont(new java.awt.Font("Arial", 0, 10)); // NOI18N
|
|
||||||
txtConversation.setLineWrap(true);
|
|
||||||
txtConversation.setRows(5);
|
|
||||||
txtConversation.setWrapStyleWord(true);
|
|
||||||
jScrollPane1.setViewportView(txtConversation);
|
|
||||||
|
|
||||||
txtMessage.addKeyListener(new java.awt.event.KeyAdapter() {
|
txtMessage.addKeyListener(new java.awt.event.KeyAdapter() {
|
||||||
public void keyTyped(java.awt.event.KeyEvent evt) {
|
public void keyTyped(java.awt.event.KeyEvent evt) {
|
||||||
|
|
@ -127,22 +184,63 @@ public class ChatPanel extends javax.swing.JPanel {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
jTabbedPane1.setTabPlacement(javax.swing.JTabbedPane.BOTTOM);
|
||||||
|
|
||||||
|
txtConversation.setColumns(20);
|
||||||
|
txtConversation.setEditable(false);
|
||||||
|
txtConversation.setFont(new java.awt.Font("Arial", 0, 10));
|
||||||
|
txtConversation.setLineWrap(true);
|
||||||
|
txtConversation.setRows(5);
|
||||||
|
txtConversation.setWrapStyleWord(true);
|
||||||
|
jScrollPane1.setViewportView(txtConversation);
|
||||||
|
|
||||||
|
jTabbedPane1.addTab("chat", jScrollPane1);
|
||||||
|
|
||||||
|
jTable1.setModel(this.tableModel);
|
||||||
|
jTable1.setToolTipText("Connected players");
|
||||||
|
jTable1.setGridColor(new java.awt.Color(255, 255, 255));
|
||||||
|
jScrollPane2.setViewportView(jTable1);
|
||||||
|
|
||||||
|
jTabbedPane1.addTab("players", jScrollPane2);
|
||||||
|
|
||||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||||
this.setLayout(layout);
|
this.setLayout(layout);
|
||||||
layout.setHorizontalGroup(
|
layout.setHorizontalGroup(
|
||||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addComponent(txtMessage, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 179, Short.MAX_VALUE)
|
.addComponent(txtMessage, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
|
||||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 179, Short.MAX_VALUE)
|
.addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
|
||||||
);
|
);
|
||||||
layout.setVerticalGroup(
|
layout.setVerticalGroup(
|
||||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE)
|
.addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 294, Short.MAX_VALUE)
|
||||||
.addGap(0, 0, 0)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(txtMessage, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
|
.addComponent(txtMessage, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
jTabbedPane1.getAccessibleContext().setAccessibleName("chat");
|
||||||
}// </editor-fold>//GEN-END:initComponents
|
}// </editor-fold>//GEN-END:initComponents
|
||||||
|
|
||||||
|
private void simplifyComponents() {
|
||||||
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||||
|
this.setLayout(layout);
|
||||||
|
layout.setHorizontalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(txtMessage, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
|
||||||
|
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
layout.setVerticalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||||
|
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 294, Short.MAX_VALUE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(txtMessage, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
);
|
||||||
|
jTabbedPane1 = null;
|
||||||
|
jTable1 = null;
|
||||||
|
jScrollPane2 = null;
|
||||||
|
}
|
||||||
|
|
||||||
private void txtMessageKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtMessageKeyTyped
|
private void txtMessageKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtMessageKeyTyped
|
||||||
if (evt.getKeyChar() == KeyEvent.VK_ENTER) {
|
if (evt.getKeyChar() == KeyEvent.VK_ENTER) {
|
||||||
session.sendChatMessage(chatId, this.txtMessage.getText());
|
session.sendChatMessage(chatId, this.txtMessage.getText());
|
||||||
|
|
@ -151,9 +249,40 @@ public class ChatPanel extends javax.swing.JPanel {
|
||||||
}
|
}
|
||||||
}//GEN-LAST:event_txtMessageKeyTyped
|
}//GEN-LAST:event_txtMessageKeyTyped
|
||||||
|
|
||||||
|
public void setPlayers(Collection<String> players) {
|
||||||
|
if (players != null) {
|
||||||
|
boolean update = false;
|
||||||
|
int size = players.size();
|
||||||
|
List<String> list = new ArrayList<String>(players);
|
||||||
|
Collections.sort(list);
|
||||||
|
if (size != this.players.size()) {
|
||||||
|
update = true;
|
||||||
|
} else {
|
||||||
|
update = true;
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
if (!list.get(i).equals(this.players.get(i))) {
|
||||||
|
update = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (update && list != null) {
|
||||||
|
synchronized (tableModel) {
|
||||||
|
this.players = list;
|
||||||
|
tableModel.loadData(this.players);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.players.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||||
private javax.swing.JScrollPane jScrollPane1;
|
private javax.swing.JScrollPane jScrollPane1;
|
||||||
|
private javax.swing.JScrollPane jScrollPane2;
|
||||||
|
private javax.swing.JTabbedPane jTabbedPane1;
|
||||||
|
private javax.swing.JTable jTable1;
|
||||||
private javax.swing.JTextArea txtConversation;
|
private javax.swing.JTextArea txtConversation;
|
||||||
private javax.swing.JTextField txtMessage;
|
private javax.swing.JTextField txtMessage;
|
||||||
// End of variables declaration//GEN-END:variables
|
// End of variables declaration//GEN-END:variables
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
<DimensionLayout dim="1">
|
<DimensionLayout dim="1">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Group type="102" attributes="0">
|
<Group type="102" attributes="0">
|
||||||
<Component id="jSplitPane1" pref="259" max="32767" attributes="0"/>
|
<Component id="jSplitPane1" pref="263" max="32767" attributes="0"/>
|
||||||
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
|
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
|
||||||
<Group type="103" groupAlignment="3" attributes="0">
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
<Component id="btnMoveDown" alignment="3" min="-2" max="-2" attributes="0"/>
|
<Component id="btnMoveDown" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
|
@ -123,6 +123,9 @@
|
||||||
</SubComponents>
|
</SubComponents>
|
||||||
</Container>
|
</Container>
|
||||||
<Component class="mage.client.chat.ChatPanel" name="chatPanel">
|
<Component class="mage.client.chat.ChatPanel" name="chatPanel">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new mage.client.chat.ChatPanel(false);"/>
|
||||||
|
</AuxValues>
|
||||||
<Constraints>
|
<Constraints>
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
|
||||||
<JSplitPaneConstraints position="right"/>
|
<JSplitPaneConstraints position="right"/>
|
||||||
|
|
|
||||||
|
|
@ -37,10 +37,12 @@ package mage.client.dialog;
|
||||||
import mage.client.*;
|
import mage.client.*;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.logging.Logger;
|
||||||
import javax.swing.SwingWorker;
|
import javax.swing.SwingWorker;
|
||||||
import javax.swing.table.AbstractTableModel;
|
import javax.swing.table.AbstractTableModel;
|
||||||
import mage.client.components.MageComponents;
|
import mage.client.components.MageComponents;
|
||||||
import mage.client.remote.Session;
|
import mage.client.remote.Session;
|
||||||
|
import mage.util.Logging;
|
||||||
import mage.view.SeatView;
|
import mage.view.SeatView;
|
||||||
import mage.view.TableView;
|
import mage.view.TableView;
|
||||||
|
|
||||||
|
|
@ -155,7 +157,7 @@ public class TableWaitingDialog extends MageDialog {
|
||||||
jSplitPane1 = new javax.swing.JSplitPane();
|
jSplitPane1 = new javax.swing.JSplitPane();
|
||||||
jScrollPane1 = new javax.swing.JScrollPane();
|
jScrollPane1 = new javax.swing.JScrollPane();
|
||||||
tableSeats = new javax.swing.JTable();
|
tableSeats = new javax.swing.JTable();
|
||||||
chatPanel = new mage.client.chat.ChatPanel();
|
chatPanel = new mage.client.chat.ChatPanel(false);
|
||||||
|
|
||||||
setResizable(true);
|
setResizable(true);
|
||||||
setTitle("Waiting for players");
|
setTitle("Waiting for players");
|
||||||
|
|
@ -221,7 +223,7 @@ public class TableWaitingDialog extends MageDialog {
|
||||||
layout.setVerticalGroup(
|
layout.setVerticalGroup(
|
||||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGroup(layout.createSequentialGroup()
|
.addGroup(layout.createSequentialGroup()
|
||||||
.addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 259, Short.MAX_VALUE)
|
.addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 263, Short.MAX_VALUE)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
.addComponent(btnMoveDown)
|
.addComponent(btnMoveDown)
|
||||||
|
|
@ -350,6 +352,8 @@ class UpdateSeatsTask extends SwingWorker<Void, TableView> {
|
||||||
private UUID tableId;
|
private UUID tableId;
|
||||||
private TableWaitingDialog dialog;
|
private TableWaitingDialog dialog;
|
||||||
|
|
||||||
|
private final static Logger logger = Logging.getLogger(TableWaitingDialog.class.getName());
|
||||||
|
|
||||||
UpdateSeatsTask(Session session, UUID roomId, UUID tableId, TableWaitingDialog dialog) {
|
UpdateSeatsTask(Session session, UUID roomId, UUID tableId, TableWaitingDialog dialog) {
|
||||||
this.session = session;
|
this.session = session;
|
||||||
this.roomId = roomId;
|
this.roomId = roomId;
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@
|
||||||
|
|
||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout"/>
|
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout"/>
|
||||||
<SubComponents>
|
<SubComponents>
|
||||||
<Component class="mage.client.chat.ChatPanel" name="chatPanel">
|
<Component class="mage.client.chat.ChatPanel" name="chatPanel">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
<Dimension value="[100, 43]"/>
|
<Dimension value="[100, 43]"/>
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ import java.awt.Component;
|
||||||
import mage.Constants.MultiplayerAttackOption;
|
import mage.Constants.MultiplayerAttackOption;
|
||||||
import mage.Constants.RangeOfInfluence;
|
import mage.Constants.RangeOfInfluence;
|
||||||
import mage.client.MageFrame;
|
import mage.client.MageFrame;
|
||||||
|
import mage.client.chat.ChatPanel;
|
||||||
import mage.client.components.MageComponents;
|
import mage.client.components.MageComponents;
|
||||||
import mage.client.dialog.JoinTableDialog;
|
import mage.client.dialog.JoinTableDialog;
|
||||||
import mage.client.dialog.NewTableDialog;
|
import mage.client.dialog.NewTableDialog;
|
||||||
|
|
@ -75,6 +76,7 @@ public class TablesPanel extends javax.swing.JPanel {
|
||||||
private TableTableModel tableModel;
|
private TableTableModel tableModel;
|
||||||
private UUID roomId;
|
private UUID roomId;
|
||||||
private UpdateTablesTask updateTask;
|
private UpdateTablesTask updateTask;
|
||||||
|
private UpdatePlayersTask updatePlayersTask;
|
||||||
private JoinTableDialog joinTableDialog;
|
private JoinTableDialog joinTableDialog;
|
||||||
private NewTableDialog newTableDialog;
|
private NewTableDialog newTableDialog;
|
||||||
private NewTournamentDialog newTournamentDialog;
|
private NewTournamentDialog newTournamentDialog;
|
||||||
|
|
@ -156,6 +158,7 @@ public class TablesPanel extends javax.swing.JPanel {
|
||||||
this.roomId = roomId;
|
this.roomId = roomId;
|
||||||
session = MageFrame.getSession();
|
session = MageFrame.getSession();
|
||||||
updateTask = new UpdateTablesTask(session, roomId, this);
|
updateTask = new UpdateTablesTask(session, roomId, this);
|
||||||
|
updatePlayersTask = new UpdatePlayersTask(session, roomId, this.chatPanel);
|
||||||
if (session != null) {
|
if (session != null) {
|
||||||
btnQuickStart.setVisible(session.isTestMode());
|
btnQuickStart.setVisible(session.isTestMode());
|
||||||
}
|
}
|
||||||
|
|
@ -179,6 +182,7 @@ public class TablesPanel extends javax.swing.JPanel {
|
||||||
if (chatRoomId != null) {
|
if (chatRoomId != null) {
|
||||||
this.chatPanel.connect(chatRoomId);
|
this.chatPanel.connect(chatRoomId);
|
||||||
updateTask.execute();
|
updateTask.execute();
|
||||||
|
updatePlayersTask.execute();
|
||||||
this.setVisible(true);
|
this.setVisible(true);
|
||||||
this.repaint();
|
this.repaint();
|
||||||
}
|
}
|
||||||
|
|
@ -195,6 +199,8 @@ public class TablesPanel extends javax.swing.JPanel {
|
||||||
}
|
}
|
||||||
if (updateTask != null)
|
if (updateTask != null)
|
||||||
updateTask.cancel(true);
|
updateTask.cancel(true);
|
||||||
|
if (updatePlayersTask != null)
|
||||||
|
updatePlayersTask.cancel(true);
|
||||||
this.chatPanel.disconnect();
|
this.chatPanel.disconnect();
|
||||||
|
|
||||||
Component c = this.getParent();
|
Component c = this.getParent();
|
||||||
|
|
@ -219,7 +225,7 @@ public class TablesPanel extends javax.swing.JPanel {
|
||||||
btnQuickStart = new javax.swing.JButton();
|
btnQuickStart = new javax.swing.JButton();
|
||||||
btnNewTournament = new javax.swing.JButton();
|
btnNewTournament = new javax.swing.JButton();
|
||||||
jSplitPane1 = new javax.swing.JSplitPane();
|
jSplitPane1 = new javax.swing.JSplitPane();
|
||||||
chatPanel = new mage.client.chat.ChatPanel();
|
chatPanel = new mage.client.chat.ChatPanel(true);
|
||||||
jScrollPane1 = new javax.swing.JScrollPane();
|
jScrollPane1 = new javax.swing.JScrollPane();
|
||||||
tableTables = new javax.swing.JTable();
|
tableTables = new javax.swing.JTable();
|
||||||
|
|
||||||
|
|
@ -271,7 +277,7 @@ public class TablesPanel extends javax.swing.JPanel {
|
||||||
jSplitPane1.setDividerSize(3);
|
jSplitPane1.setDividerSize(3);
|
||||||
jSplitPane1.setResizeWeight(1.0);
|
jSplitPane1.setResizeWeight(1.0);
|
||||||
|
|
||||||
chatPanel.setMinimumSize(new java.awt.Dimension(100, 43));
|
chatPanel.setMinimumSize(new java.awt.Dimension(100, 43));
|
||||||
jSplitPane1.setRightComponent(chatPanel);
|
jSplitPane1.setRightComponent(chatPanel);
|
||||||
|
|
||||||
tableTables.setModel(this.tableModel);
|
tableTables.setModel(this.tableModel);
|
||||||
|
|
@ -338,8 +344,8 @@ public class TablesPanel extends javax.swing.JPanel {
|
||||||
private javax.swing.JButton btnNewTable;
|
private javax.swing.JButton btnNewTable;
|
||||||
private javax.swing.JButton btnNewTournament;
|
private javax.swing.JButton btnNewTournament;
|
||||||
private javax.swing.JButton btnQuickStart;
|
private javax.swing.JButton btnQuickStart;
|
||||||
private mage.client.chat.ChatPanel chatPanel;
|
|
||||||
private javax.swing.JPanel jPanel1;
|
private javax.swing.JPanel jPanel1;
|
||||||
|
private ChatPanel chatPanel;
|
||||||
private javax.swing.JScrollPane jScrollPane1;
|
private javax.swing.JScrollPane jScrollPane1;
|
||||||
private javax.swing.JSplitPane jSplitPane1;
|
private javax.swing.JSplitPane jSplitPane1;
|
||||||
private javax.swing.JTable tableTables;
|
private javax.swing.JTable tableTables;
|
||||||
|
|
@ -433,7 +439,7 @@ class UpdateTablesTask extends SwingWorker<Void, Collection<TableView>> {
|
||||||
private UUID roomId;
|
private UUID roomId;
|
||||||
private TablesPanel panel;
|
private TablesPanel panel;
|
||||||
|
|
||||||
private final static Logger logger = Logging.getLogger(TablesPanel.class.getName());
|
private final static Logger logger = Logging.getLogger(UpdateTablesTask.class.getName());
|
||||||
|
|
||||||
UpdateTablesTask(Session session, UUID roomId, TablesPanel panel) {
|
UpdateTablesTask(Session session, UUID roomId, TablesPanel panel) {
|
||||||
this.session = session;
|
this.session = session;
|
||||||
|
|
@ -445,10 +451,6 @@ class UpdateTablesTask extends SwingWorker<Void, Collection<TableView>> {
|
||||||
protected Void doInBackground() throws Exception {
|
protected Void doInBackground() throws Exception {
|
||||||
while (!isCancelled()) {
|
while (!isCancelled()) {
|
||||||
this.publish(session.getTables(roomId));
|
this.publish(session.getTables(roomId));
|
||||||
/*logger.info("connected players:");
|
|
||||||
for (String player : session.getConnectedPlayers(roomId)) {
|
|
||||||
logger.info(" " + player);
|
|
||||||
}*/
|
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -458,5 +460,33 @@ class UpdateTablesTask extends SwingWorker<Void, Collection<TableView>> {
|
||||||
protected void process(List<Collection<TableView>> view) {
|
protected void process(List<Collection<TableView>> view) {
|
||||||
panel.update(view.get(0));
|
panel.update(view.get(0));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class UpdatePlayersTask extends SwingWorker<Void, Collection<String>> {
|
||||||
|
|
||||||
|
private Session session;
|
||||||
|
private UUID roomId;
|
||||||
|
private ChatPanel chat;
|
||||||
|
|
||||||
|
private final static Logger logger = Logging.getLogger(UpdatePlayersTask.class.getName());
|
||||||
|
|
||||||
|
UpdatePlayersTask(Session session, UUID roomId, ChatPanel chat) {
|
||||||
|
this.session = session;
|
||||||
|
this.roomId = roomId;
|
||||||
|
this.chat = chat;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Void doInBackground() throws Exception {
|
||||||
|
while (!isCancelled()) {
|
||||||
|
this.publish(session.getConnectedPlayers(roomId));
|
||||||
|
Thread.sleep(1000);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process(List<Collection<String>> players) {
|
||||||
|
chat.setPlayers(players.get(0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue