diff --git a/Mage.Client/src/main/java/mage/client/draft/DraftPane.form b/Mage.Client/src/main/java/mage/client/draft/DraftPane.form
new file mode 100644
index 00000000000..819e36660e8
--- /dev/null
+++ b/Mage.Client/src/main/java/mage/client/draft/DraftPane.form
@@ -0,0 +1,41 @@
+
+
+
diff --git a/Mage.Client/src/main/java/mage/client/draft/DraftPane.java b/Mage.Client/src/main/java/mage/client/draft/DraftPane.java
new file mode 100644
index 00000000000..6e99b466728
--- /dev/null
+++ b/Mage.Client/src/main/java/mage/client/draft/DraftPane.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+
+/*
+ * DraftPane.java
+ *
+ * Created on Jan 7, 2011, 2:11:44 PM
+ */
+
+package mage.client.draft;
+
+import mage.client.MagePane;
+
+/**
+ *
+ * @author BetaSteward_at_googlemail.com
+ */
+public class DraftPane extends MagePane {
+
+ /** Creates new form DraftPane */
+ public DraftPane() {
+ initComponents();
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jScrollPane1 = new javax.swing.JScrollPane();
+ draftPanel1 = new mage.client.draft.DraftPanel();
+
+ jScrollPane1.setViewportView(draftPanel1);
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 394, Short.MAX_VALUE)
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 282, Short.MAX_VALUE)
+ );
+
+ pack();
+ }// //GEN-END:initComponents
+
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ mage.client.draft.DraftPanel draftPanel1;
+ javax.swing.JScrollPane jScrollPane1;
+ // End of variables declaration//GEN-END:variables
+
+}
diff --git a/Mage.Client/src/main/java/mage/client/draft/DraftPanel.form b/Mage.Client/src/main/java/mage/client/draft/DraftPanel.form
new file mode 100644
index 00000000000..2df044075c3
--- /dev/null
+++ b/Mage.Client/src/main/java/mage/client/draft/DraftPanel.form
@@ -0,0 +1,62 @@
+
+
+
diff --git a/Mage.Client/src/main/java/mage/client/draft/DraftPanel.java b/Mage.Client/src/main/java/mage/client/draft/DraftPanel.java
new file mode 100644
index 00000000000..1d5e92ebce8
--- /dev/null
+++ b/Mage.Client/src/main/java/mage/client/draft/DraftPanel.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+
+/*
+ * DraftPanel.java
+ *
+ * Created on Jan 7, 2011, 2:15:48 PM
+ */
+
+package mage.client.draft;
+
+import java.util.UUID;
+import mage.client.cards.BigCard;
+import mage.view.CardsView;
+
+/**
+ *
+ * @author BetaSteward_at_googlemail.com
+ */
+public class DraftPanel extends javax.swing.JPanel {
+
+ /** Creates new form DraftPanel */
+ public DraftPanel() {
+ initComponents();
+
+ }
+
+ public void loadBooster(CardsView cards, UUID draftId) {
+
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jPanel1 = new javax.swing.JPanel();
+ bigCard = new mage.client.cards.BigCard();
+
+ jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
+
+ javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
+ jPanel1.setLayout(jPanel1Layout);
+ jPanel1Layout.setHorizontalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ );
+ jPanel1Layout.setVerticalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
+ .addContainerGap(85, Short.MAX_VALUE)
+ .addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ );
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap(465, Short.MAX_VALUE))
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ );
+ }// //GEN-END:initComponents
+
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private mage.client.cards.BigCard bigCard;
+ private javax.swing.JPanel jPanel1;
+ // End of variables declaration//GEN-END:variables
+
+}
diff --git a/Mage.Client/src/main/java/mage/client/remote/Client.java b/Mage.Client/src/main/java/mage/client/remote/Client.java
index c124397b663..3633b4de0c8 100644
--- a/Mage.Client/src/main/java/mage/client/remote/Client.java
+++ b/Mage.Client/src/main/java/mage/client/remote/Client.java
@@ -44,6 +44,7 @@ import mage.interfaces.callback.ClientCallback;
import mage.util.Logging;
import mage.view.AbilityPickerView;
import mage.view.ChatMessage;
+import mage.view.DraftClientMessage;
import mage.view.GameClientMessage;
import mage.view.GameView;
import mage.view.TableClientMessage;
@@ -164,6 +165,21 @@ public class Client implements CallbackClient {
else if (callback.getMethod().equals("sideboard")) {
TableClientMessage message = (TableClientMessage) callback.getData();
sideboard(message.getDeck(), message.getTableId());
+ }
+ else if (callback.getMethod().equals("draftPick")) {
+ DraftClientMessage message = (DraftClientMessage) callback.getData();
+
+ }
+ else if (callback.getMethod().equals("draftInform")) {
+ if (callback.getMessageId() > messageId) {
+ DraftClientMessage message = (DraftClientMessage) callback.getData();
+ }
+ else {
+ logger.warning("message out of sequence - ignoring");
+ }
+ }
+ else if (callback.getMethod().equals("draftInit")) {
+
}
messageId = callback.getMessageId();
}
diff --git a/Mage.Client/src/main/java/mage/client/remote/Session.java b/Mage.Client/src/main/java/mage/client/remote/Session.java
index a3d2fce0e4d..3c1e3a207f2 100644
--- a/Mage.Client/src/main/java/mage/client/remote/Session.java
+++ b/Mage.Client/src/main/java/mage/client/remote/Session.java
@@ -47,6 +47,7 @@ import mage.client.components.MageUI;
import mage.client.game.GamePanel;
import mage.client.util.Config;
import mage.game.GameException;
+import mage.game.draft.DraftOptions;
import mage.interfaces.MageException;
import mage.game.match.MatchOptions;
import mage.interfaces.Server;
@@ -261,6 +262,19 @@ public class Session {
return false;
}
+ public boolean joinDraftTable(UUID roomId, UUID tableId, String playerName) {
+ try {
+ return server.joinDraftTable(sessionId, roomId, tableId, playerName);
+ } catch (RemoteException ex) {
+ handleRemoteException(ex);
+ } catch (MageException ex) {
+ handleMageException(ex);
+ } catch (GameException ex) {
+ handleGameException(ex);
+ }
+ return false;
+ }
+
public Collection getTables(UUID roomId) throws MageRemoteException {
try {
return server.getTables(roomId);
@@ -418,6 +432,17 @@ public class Session {
return null;
}
+ public TableView createDraftTable(UUID roomId, DraftOptions draftOptions) {
+ try {
+ return server.createDraftTable(sessionId, roomId, draftOptions);
+ } catch (RemoteException ex) {
+ handleRemoteException(ex);
+ } catch (MageException ex) {
+ handleMageException(ex);
+ }
+ return null;
+ }
+
public boolean isTableOwner(UUID roomId, UUID tableId) {
try {
return server.isTableOwner(sessionId, roomId, tableId);
diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPanel.form b/Mage.Client/src/main/java/mage/client/table/TablesPanel.form
index a8da09d5bda..d3ab6971f63 100644
--- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.form
+++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.form
@@ -1,4 +1,4 @@
-
+