private void clone(Component original, Component parent, String suffix) { Component clone = new Component(original.id + suffix, original.type, parent); clone.attributes = original.attributes.clone(clone.getId()); clone.setAttributeId(ComponentState.NORMAL, clone.getId() + "NORMAL"); clone.setAttributeId(ComponentState.HOVER, clone.getId() + "HOVER"); clone.setAttributeId(ComponentState.CLICK, clone.getId() + "CLICK"); for (Component copy : original.directChildren) clone(copy, clone, suffix); }
public Component clone(String suffix, boolean fakeParent) { Component clone; if (fakeParent && this.parent != null) clone = new Component( this.id + suffix, this.type, new Component(this.parent.getId(), ComponentType.PANEL)); else if (this.parent != null) clone = new Component(this.id + suffix, this.type, this.parent); else clone = new Component(this.id + suffix, this.type); clone.attributes = attributes.clone(clone.getId()); clone.setAttributeId(ComponentState.NORMAL, clone.getId() + "NORMAL"); clone.setAttributeId(ComponentState.HOVER, clone.getId() + "HOVER"); clone.setAttributeId(ComponentState.CLICK, clone.getId() + "CLICK"); for (Component copy : directChildren) clone(copy, clone, suffix); return clone; }