/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package jada.ngeditor.model; import jada.ngeditor.listeners.events.SelectionChanged; import jada.ngeditor.model.elements.GElement; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Observable; /** * * @author cris */ public class Selection extends Observable{ private ArrayList<GElement> selected = new ArrayList<GElement>(); public boolean isEmpty(){ return selected.isEmpty(); } public void addSelection(GElement element){ Selection old = this.clone(); selected.add(element); this.setChanged(); this.notifyObservers(new SelectionChanged(this,old)); } public void removeSelection(GElement element){ Selection old = this.clone(); selected.remove(element); this.setChanged(); this.notifyObservers(new SelectionChanged(this,old)); } public void setSelection(GElement element){ Selection old = this.clone(); this.clearSelection(); selected.add(element); this.setChanged(); this.notifyObservers(new SelectionChanged(this,old)); } public void clearSelection(){ Selection old = this.clone(); selected.clear(); this.setChanged(); this.notifyObservers(new SelectionChanged(this,old)); } public GElement getFirst(){ return selected.get(0); } public Collection<GElement> getAll(){ return Collections.unmodifiableCollection(this.selected); } protected Selection clone(){ Selection result = new Selection(); result.selected.addAll(this.selected); return result; } }