package fr.lyrgard.hexScape.gui.desktop.view.game.leftPanel; import java.awt.EventQueue; import javax.swing.JButton; import javax.swing.JPanel; import com.google.common.eventbus.Subscribe; import fr.lyrgard.hexScape.bus.GuiMessageBus; import fr.lyrgard.hexScape.gui.desktop.action.MovePieceAction; import fr.lyrgard.hexScape.message.PieceRemovedMessage; import fr.lyrgard.hexScape.message.PieceSelectedMessage; import fr.lyrgard.hexScape.message.PieceUnselectedMessage; import fr.lyrgard.hexScape.model.CurrentUserInfo; public class SelectedPiecePanel extends JPanel { private static final long serialVersionUID = 7100885729187357599L; public SelectedPiecePanel() { GuiMessageBus.register(this); } @Subscribe public void onPieceSelected(PieceSelectedMessage message) { final String pieceId = message.getPieceId(); String playerId = message.getPlayerId(); if (CurrentUserInfo.getInstance().getPlayerId().equals(playerId)) { EventQueue.invokeLater(new Runnable() { public void run() { SelectedPiecePanel.this.removeAll(); add(new JButton(new MovePieceAction(pieceId))); validate(); repaint(); //SwingUtilities.getWindowAncestor(SelectedPiecePanel.this).pack(); } }); } } @Subscribe public void onPieceUnselected(PieceUnselectedMessage message) { String playerId = message.getPlayerId(); if (CurrentUserInfo.getInstance().getPlayerId().equals(playerId)) { EventQueue.invokeLater(new Runnable() { public void run() { SelectedPiecePanel.this.removeAll(); validate(); repaint(); //SwingUtilities.getWindowAncestor(SelectedPiecePanel.this).pack(); } }); } } @Subscribe public void onPieceRemoved(PieceRemovedMessage message) { String playerId = message.getPlayerId(); if (CurrentUserInfo.getInstance().getPlayerId().equals(playerId)) { EventQueue.invokeLater(new Runnable() { public void run() { SelectedPiecePanel.this.removeAll(); validate(); repaint(); //SwingUtilities.getWindowAncestor(SelectedPiecePanel.this).pack(); } }); } } }