package org.insightech.er.editor.model.diagram_contents.element.node.view; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import org.insightech.er.ResourceString; import org.insightech.er.editor.model.AbstractModel; import org.insightech.er.editor.model.ObjectListModel; public class ViewSet extends AbstractModel implements ObjectListModel, Iterable<View> { private static final long serialVersionUID = -120487815554383179L; public static final String PROPERTY_CHANGE_VIEW_SET = "ViewSet"; private List<View> viewList; public ViewSet() { this.viewList = new ArrayList<View>(); } public void add(View view) { this.viewList.add(view); this.firePropertyChange(PROPERTY_CHANGE_VIEW_SET, null, null); } public void add(int index, View view) { this.viewList.add(index, view); this.firePropertyChange(PROPERTY_CHANGE_VIEW_SET, null, null); } public int remove(View view) { int index = this.viewList.indexOf(view); this.viewList.remove(index); this.firePropertyChange(PROPERTY_CHANGE_VIEW_SET, null, null); return index; } public List<View> getList() { Collections.sort(this.viewList); return this.viewList; } public Iterator<View> iterator() { Collections.sort(this.viewList); return this.viewList.iterator(); } /** * {@inheritDoc} */ @Override public ViewSet clone() { ViewSet viewSet = (ViewSet) super.clone(); List<View> newViewList = new ArrayList<View>(); for (View view : viewList) { View newView = (View) view.clone(); newViewList.add(newView); } viewSet.viewList = newViewList; return viewSet; } public String getDescription() { return ""; } public String getName() { return ResourceString.getResourceString("label.object.type.view_list"); } public String getObjectType() { return "list"; } }