blob: 8fa498c62a189fe25529e2632d528aef04359134 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.examples.undo;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.graphics.GC;
/**
* A collection of boxes
*/
public class Boxes {
/*
* The "model," a list of boxes
*/
private List<Box> boxes = new ArrayList<>();
/*
* Constructs a box collection
*/
public Boxes() {
super();
}
/*
* Add the specified box to the group of boxes.
*/
public void add(Box box) {
boxes.add(box);
}
/*
* Remove the specified box from the group of boxes.
*/
public void remove(Box box) {
boxes.remove(box);
}
/*
* Clear all the boxes from the list of boxes.
*/
public void clear() {
boxes = new ArrayList<>();
}
/*
* Return true if the group of boxes contains the specified box.
*/
public boolean contains(Box box) {
return boxes.contains(box);
}
/*
* Draw the boxes with the specified gc.
*/
public void draw(GC gc) {
for (int i = 0; i < boxes.size(); i++) {
boxes.get(i).draw(gc);
}
}
/*
* Return the box containing the specified x and y, or null
* if no box contains the point.
*/
public Box getBox(int x, int y) {
for (int i=0; i< boxes.size(); i++) {
Box box = boxes.get(i);
if (box.contains(x, y)) {
return box;
}
}
return null;
}
/*
* Return the list of boxes known by this group of boxes.
*/
public List<Box> getBoxes() {
return boxes;
}
/*
* Set the list of boxes known by this group of boxes.
*/
public void setBoxes(List<Box> boxes) {
this.boxes = boxes;
}
}