Skip to content

Commit

Permalink
[Fix] Command pattern in LaneStatusView.java
Browse files Browse the repository at this point in the history
  • Loading branch information
inrir committed Jun 2, 2023
1 parent fb1e5a7 commit 7091cc8
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 46 deletions.
6 changes: 3 additions & 3 deletions LaneStatusMaintenanceCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ public LaneStatusMaintenanceCommand(LaneStatusView theView) {
}

public void execute() {
if (theView.lane.isPartyAssigned()) {
theView.lane.unPauseGame();
theView.maintenance.setBackground(Color.GREEN);
if (theView.getLane().isPartyAssigned()) {
theView.getLane().unPauseGame();
theView.getMaintenance().setBackground(Color.GREEN);
}
}
}
85 changes: 47 additions & 38 deletions LaneStatusView.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,17 @@
import javax.swing.border.*;
import javax.swing.event.*;

public class LaneStatusView implements ActionListener, LaneObserver, PinsetterObserver {
public class LaneStatusView implements LaneObserver, PinsetterObserver {

private JPanel jp;

private JLabel curBowler, foul, pinsDown;
private JButton viewLane;
private JButton viewPinSetter;
public JButton maintenance;
private JButton viewPinSetter, maintenance;

public PinSetterView psv;
public LaneView lv;
public Lane lane;
private PinSetterView psv;
private LaneView lv;
private Lane lane;
int laneNum;

boolean laneShowing;
Expand All @@ -33,6 +32,8 @@ public class LaneStatusView implements ActionListener, LaneObserver, PinsetterOb

public LaneStatusView(Lane lane, int laneNum ) {

LaneStatusViewClickEvent listener = new LaneStatusViewClickEvent(); // view와 event 분리

this.lane = lane;
this.laneNum = laneNum;

Expand Down Expand Up @@ -62,32 +63,17 @@ public LaneStatusView(Lane lane, int laneNum ) {

Insets buttonMargin = new Insets(4, 4, 4, 4);

viewLane = new JButton("View Lane");
JPanel viewLanePanel = new JPanel();
viewLanePanel.setLayout(new FlowLayout());
viewLane.addActionListener(this);
viewLanePanel.add(viewLane);

viewPinSetter = new JButton("Pinsetter");
JPanel viewPinSetterPanel = new JPanel();
viewPinSetterPanel.setLayout(new FlowLayout());
viewPinSetter.addActionListener(this);
viewPinSetterPanel.add(viewPinSetter);

maintenance = new JButton(" ");
maintenance.setBackground( Color.GREEN );
JPanel maintenancePanel = new JPanel();
maintenancePanel.setLayout(new FlowLayout());
maintenance.addActionListener(this);
maintenancePanel.add(maintenance);
viewLane = createButton("View Lane", listener);
viewPinSetter = createButton("Pinsetter", listener);
maintenance = createButton(" ", listener);

viewLane.setEnabled( false );
viewPinSetter.setEnabled( false );


buttonPanel.add(viewLanePanel);
buttonPanel.add(viewPinSetterPanel);
buttonPanel.add(maintenancePanel);
buttonPanel.add(viewLane);
buttonPanel.add(viewPinSetter);
buttonPanel.add(maintenance);

jp.add( cLabel );
jp.add( curBowler );
Expand All @@ -99,23 +85,30 @@ public LaneStatusView(Lane lane, int laneNum ) {
jp.add(buttonPanel);

}
private JButton createButton(String text, LaneStatusViewClickEvent listener) {
JButton button = new JButton(text);
button.addActionListener(listener);
return button;
}

public JPanel showLane() {
return jp;
}

public void actionPerformed( ActionEvent e ) {
if ( lane.isPartyAssigned() && e.getSource().equals(viewPinSetter)) {
setCommand(new LaneStatusViewPinSetterCommand(this));
}
else if (e.getSource().equals(viewLane)) {
setCommand(new LaneStatusViewLaneCommand(this));
}
else if (e.getSource().equals(maintenance)) {
setCommand(new LaneStatusMaintenanceCommand(this));
}
buttonPressed(); // 하나만 발생하도록 else if
public class LaneStatusViewClickEvent implements ActionListener{
public void actionPerformed( ActionEvent e ) {
if ( lane.isPartyAssigned() && e.getSource().equals(viewPinSetter)) {
setCommand(new LaneStatusViewPinSetterCommand(LaneStatusView.this));
}
else if (e.getSource().equals(viewLane)) {
setCommand(new LaneStatusViewLaneCommand(LaneStatusView.this));
}
else if (e.getSource().equals(maintenance)) {
setCommand(new LaneStatusMaintenanceCommand(LaneStatusView.this));
}
buttonPressed(); // 하나만 발생하도록 else if

}
}


Expand Down Expand Up @@ -149,4 +142,20 @@ public void receivePinsetterEvent(PinsetterEvent pe) {

}

public JButton getMaintenance() {
return maintenance;
}

public PinSetterView getPsv() {
return psv;
}

public LaneView getLv() {
return lv;
}

public Lane getLane() {
return lane;
}

}
6 changes: 3 additions & 3 deletions LaneStatusViewLaneCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ public LaneStatusViewLaneCommand(LaneStatusView theView) {
}

public void execute() {
if (theView.lane.isPartyAssigned()) {
if (theView.getLane().isPartyAssigned()) {
if (theView.laneShowing == false) {
theView.lv.show();
theView.getLv().show();
theView.laneShowing = true;
} else if (theView.laneShowing == true) {
theView.lv.hide();
theView.getLv().hide();
theView.laneShowing = false;
}
}
Expand Down
4 changes: 2 additions & 2 deletions LaneStatusViewPinSetterCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ public LaneStatusViewPinSetterCommand(LaneStatusView theView) {

public void execute() {
if (theView.psShowing == false) {
theView.psv.show();
theView.getPsv().show();
theView.psShowing = true;
} else if (theView.psShowing == true) {
theView.psv.hide();
theView.getPsv().hide();
theView.psShowing = false;
}
}
Expand Down

0 comments on commit 7091cc8

Please sign in to comment.