package nodebox.handle;
import nodebox.graphics.GraphicsContext;
import nodebox.graphics.Point;
import java.util.ArrayList;
import java.util.List;
public class CombinedHandle extends AbstractHandle {
private List<Handle> handles;
public CombinedHandle() {
handles = new ArrayList<Handle>();
setVisible(false);
}
@Override
public void setHandleDelegate(HandleDelegate delegate) {
super.setHandleDelegate(delegate);
for (Handle handle : handles)
handle.setHandleDelegate(delegate);
}
public void addHandle(Handle handle) {
handles.add(handle);
}
public boolean mouseClicked(Point pt) {
for (Handle handle : handles) {
boolean clicked = handle.mouseClicked(pt);
if (clicked)
return true;
}
return false;
}
public boolean mousePressed(Point pt) {
for (Handle handle : handles) {
boolean pressed = handle.mousePressed(pt);
if (pressed)
return true;
}
return false;
}
public boolean mouseMoved(Point pt) {
boolean moved = false;
for (Handle handle : handles) {
if (handle.mouseMoved(pt))
moved = true;
}
return false;
}
public boolean mouseDragged(Point pt) {
for (Handle handle : handles) {
boolean dragged = handle.mouseDragged(pt);
if (dragged)
return true;
}
return false;
}
public boolean mouseReleased(Point pt) {
for (Handle handle : handles) {
boolean released = handle.mouseReleased(pt);
if (released)
return true;
}
return false;
}
public boolean mouseEntered(Point pt) {
for (Handle handle : handles) {
boolean entered = handle.mouseEntered(pt);
if (entered)
return true;
}
return false;
}
public boolean mouseExited(Point pt) {
for (Handle handle : handles) {
boolean exited = handle.mouseExited(pt);
if (exited)
return true;
}
return false;
}
public boolean keyTyped(int keyCode, int modifiers) {
for (Handle handle : handles) {
boolean keyTyed = handle.keyTyped(keyCode, modifiers);
if (keyTyed)
return true;
}
return false;
}
public boolean keyPressed(int keyCode, int modifiers) {
for (Handle handle : handles) {
boolean keyPressed = handle.keyPressed(keyCode, modifiers);
if (keyPressed)
return true;
}
return false;
}
public boolean keyReleased(int keyCode, int modifiers) {
for (Handle handle : handles) {
boolean keyReleased = handle.keyReleased(keyCode, modifiers);
if (keyReleased)
return true;
}
return false;
}
public void update() {
for (Handle handle : handles)
handle.update();
setVisible(true);
}
public void draw(GraphicsContext ctx) {
for (Handle handle : handles)
handle.draw(ctx);
}
}