30.12.2013 Views

Chapter 6: Inheritance and Abstract Classes Chapter Topics 6.1 ...

Chapter 6: Inheritance and Abstract Classes Chapter Topics 6.1 ...

Chapter 6: Inheritance and Abstract Classes Chapter Topics 6.1 ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CS151 Object-Oriented Design<br />

Dr. Kim<br />

}<br />

});<br />

}<br />

repaint();<br />

}<br />

public void paintComponent(Graphics g)<br />

{<br />

super.paintComponent(g);<br />

Graphics2D g2 = (Graphics2D) g;<br />

for (SceneShape s : shapes)<br />

{<br />

s.draw(g2);<br />

if (s.isSelected())<br />

s.drawSelection(g2);<br />

}<br />

}<br />

/**<br />

Adds a shape to the scene.<br />

@param s the shape to add<br />

*/<br />

public void add(SceneShape s)<br />

{<br />

shapes.add(s);<br />

repaint();<br />

}<br />

/**<br />

Removes all selected shapes from the scene.<br />

*/<br />

public void removeSelected()<br />

{ for (int i =0; i < shapes.size() ; i++)<br />

}<br />

for (int i = shapes.size() -1 ; i >= 0 ; i--)<br />

{<br />

SceneShape s = shapes.get(i);<br />

if (s.isSelected()) shapes.remove(i);<br />

}<br />

repaint();<br />

}<br />

6.4 The TEMPLATE METHOD Pattern<br />

• In the previous example, concrete SelectableShape classes such as Car <strong>and</strong> House should<br />

define their own drawSelection method.<br />

21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!