Fixed: synchronized on client UI
This commit is contained in:
@@ -53,11 +53,14 @@ public class ClientCallbackImpl extends UnicastRemoteObject implements IClientCa
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onAction(NetworkEvent event) throws RemoteException {
|
public void onAction(NetworkEvent event) throws RemoteException {
|
||||||
if(event.getIsError()) {
|
synchronized (clientController)
|
||||||
clientController.view.showError(event.toString());
|
{
|
||||||
} else {
|
if(event.getIsError()) {
|
||||||
event.apply(clientController.miniModel);
|
clientController.view.showError(event.toString());
|
||||||
clientController.view.render();
|
} else {
|
||||||
|
event.apply(clientController.miniModel);
|
||||||
|
clientController.view.render();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,17 +156,19 @@ public class TCPClient implements IClient {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (read instanceof NetworkEvent event) {
|
synchronized (controller) {
|
||||||
if (event.getIsError()) {
|
if (read instanceof NetworkEvent event) {
|
||||||
controller.view.showError(event.toString());
|
if (event.getIsError()) {
|
||||||
} else {
|
controller.view.showError(event.toString());
|
||||||
event.apply(controller.miniModel);
|
} else {
|
||||||
|
event.apply(controller.miniModel);
|
||||||
|
controller.view.render();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (read instanceof MiniModel model) {
|
||||||
|
controller.setModel(model);
|
||||||
controller.view.render();
|
controller.view.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (read instanceof MiniModel model) {
|
|
||||||
controller.setModel(model);
|
|
||||||
controller.view.render();
|
|
||||||
}
|
}
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -88,35 +88,38 @@ public class MainFXMLController {
|
|||||||
|
|
||||||
public void render() {
|
public void render() {
|
||||||
|
|
||||||
if (old_state_stage==null) {
|
synchronized (controller)
|
||||||
renderBackground();
|
{
|
||||||
renderUpper();
|
if (old_state_stage==null) {
|
||||||
renderBoard();
|
renderBackground();
|
||||||
renderLower();
|
renderUpper();
|
||||||
renderMyHand();
|
renderBoard();
|
||||||
renderSidePanel();
|
renderLower();
|
||||||
} else if (old_state_stage==SLOT_CHOICE ) {
|
renderMyHand();
|
||||||
System.out.println("OLD: "+old_state_stage+", NEW: "+controller.miniModel.currentState.getGameStage());
|
renderSidePanel();
|
||||||
System.out.println("RIDISEGNO BOARD\n");
|
} else if (old_state_stage==SLOT_CHOICE ) {
|
||||||
renderBoard();
|
System.out.println("OLD: "+old_state_stage+", NEW: "+controller.miniModel.currentState.getGameStage());
|
||||||
} else if (old_state_stage==RES_ACTIONS) {
|
System.out.println("RIDISEGNO BOARD\n");
|
||||||
System.out.println("OLD: "+old_state_stage+", NEW: "+controller.miniModel.currentState.getGameStage());
|
renderBoard();
|
||||||
System.out.println("RIDISEGNO TUTTO. USERNAME: "+old_state_username);
|
} else if (old_state_stage==RES_ACTIONS) {
|
||||||
renderUpper();
|
System.out.println("OLD: "+old_state_stage+", NEW: "+controller.miniModel.currentState.getGameStage());
|
||||||
renderBoard();
|
System.out.println("RIDISEGNO TUTTO. USERNAME: "+old_state_username);
|
||||||
renderLower();
|
renderUpper();
|
||||||
renderSidePanel();
|
renderBoard();
|
||||||
if (Objects.equals(old_state_username, controller.myUsername)) {
|
renderLower();
|
||||||
renderMyHand();
|
renderSidePanel();
|
||||||
}
|
if (Objects.equals(old_state_username, controller.myUsername)) {
|
||||||
|
renderMyHand();
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: se sono io a pescare renderizzo myHand, altrimenti no (non è scontato)
|
// TODO: se sono io a pescare renderizzo myHand, altrimenti no (non è scontato)
|
||||||
} else {
|
} else {
|
||||||
System.out.println("NON GESTITO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
System.out.println("NON GESTITO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
||||||
|
}
|
||||||
|
|
||||||
|
old_state_stage=controller.miniModel.currentState.getGameStage();
|
||||||
|
old_state_username=controller.miniModel.currentState.getCurrentPlayer().getUserName();
|
||||||
}
|
}
|
||||||
|
|
||||||
old_state_stage=controller.miniModel.currentState.getGameStage();
|
|
||||||
old_state_username=controller.miniModel.currentState.getCurrentPlayer().getUserName();
|
|
||||||
// TODO: le info in sidepanel non vengono aggiornate sempre aggiornate, bisogna prima capire dove metterle
|
// TODO: le info in sidepanel non vengono aggiornate sempre aggiornate, bisogna prima capire dove metterle
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user