diff --git a/LaneStatusMaintenanceCommand.java b/LaneStatusMaintenanceCommand.java index 6552595..d492c36 100644 --- a/LaneStatusMaintenanceCommand.java +++ b/LaneStatusMaintenanceCommand.java @@ -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); } } } diff --git a/LaneStatusView.java b/LaneStatusView.java index 0cb3421..255d661 100644 --- a/LaneStatusView.java +++ b/LaneStatusView.java @@ -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; @@ -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; @@ -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 ); @@ -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 + } } @@ -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; + } + } diff --git a/LaneStatusViewLaneCommand.java b/LaneStatusViewLaneCommand.java index af634d1..80a90e0 100644 --- a/LaneStatusViewLaneCommand.java +++ b/LaneStatusViewLaneCommand.java @@ -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; } } diff --git a/LaneStatusViewPinSetterCommand.java b/LaneStatusViewPinSetterCommand.java index 930229b..71542d5 100644 --- a/LaneStatusViewPinSetterCommand.java +++ b/LaneStatusViewPinSetterCommand.java @@ -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; } }