1 package net.sf.openrocket.gui.main;
3 import java.util.ArrayList;
6 import net.sf.openrocket.document.Simulation;
7 import net.sf.openrocket.rocketcomponent.RocketComponent;
9 public final class OpenRocketClipboard {
11 private static RocketComponent clipboardComponent = null;
12 private static Simulation[] clipboardSimulations = null;
14 private static List<ClipboardListener> listeners = new ArrayList<ClipboardListener>();
16 private OpenRocketClipboard() {
17 // Disallow instantiation
22 * Return the <code>RocketComponent</code> contained in the clipboard, or
23 * <code>null</code>. The component is returned verbatim, and must be copied
24 * before attaching to any rocket design!
26 * @return the rocket component contained in the clipboard, or <code>null</code>
27 * if the clipboard does not currently contain a rocket component.
29 public static RocketComponent getClipboardComponent() {
30 return clipboardComponent;
34 public static void setClipboard(RocketComponent component) {
35 clipboardComponent = component;
36 clipboardSimulations = null;
37 fireClipboardChanged();
41 public static Simulation[] getClipboardSimulations() {
42 if (clipboardSimulations == null || clipboardSimulations.length == 0)
44 return clipboardSimulations.clone();
47 public static void setClipboard(Simulation[] simulations) {
48 clipboardSimulations = simulations.clone();
49 clipboardComponent = null;
50 fireClipboardChanged();
55 public static void addClipboardListener(ClipboardListener listener) {
56 listeners.add(listener);
59 public static void removeClipboardListener(ClipboardListener listener) {
60 listeners.remove(listener);
63 private static void fireClipboardChanged() {
64 ClipboardListener[] array = listeners.toArray(new ClipboardListener[0]);
65 for (ClipboardListener l: array) {