package org.hpccsystems.saltui.concept; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class ConceptEntryList { private ArrayList<ConceptEntryBO> entries = new ArrayList<ConceptEntryBO>(); private Set<IConceptEntryListViewer> changeListeners = new HashSet<IConceptEntryListViewer>(); public ArrayList<ConceptEntryBO> getEntries() { return entries; } public void setEntries(ArrayList<ConceptEntryBO> entries) { this.entries = entries; } public void add(ConceptEntryBO eb){ entries.add(eb); } public ConceptEntryBO getEntry(int index){ return entries.get(index); } public void updateEntry(int index, ConceptEntryBO r){ entries.set(index, r); } //this just updates the name stored to the entry for quick reference //this doesn't update indexes except if newName is "" then it assumes it was //deleted public void updateAll(String newName, String oldName){ for(int i = 0; i<entries.size();i++){ if(entries.get(i).getConceptName().equalsIgnoreCase(oldName)){ entries.get(i).setConceptName(newName); if(newName.equals("")){ entries.get(i).setEntryIndex(-1); } System.out.println("Updating NewName: " + newName + " OldName: " + oldName); }//else{ // System.out.println("No Update: " + oldName); //} } } //Add a new Record to the existing list public void addEntry(int index) { ConceptEntryBO entry = new ConceptEntryBO(); if(index >= 0){ entries.add(index+1, entry); } else { entries.add(entries.size(), entry); } Iterator<IConceptEntryListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()){ iterator.next().addEntry(entry); } } public int containsEntry(String name){ int index = -1; //System.out.println("Looking for: " + name); for(int i = 0; i<entries.size();i++){ //System.out.println(entries.get(i).getRuleName() + " vs " + name); if(entries.get(i).getConceptName().equalsIgnoreCase(name)){ index = i; }//else{ // System.out.println("No Update: " + oldName); //} } return index; } public void removeEntry(int index) { if(entries.size()>index){ entries.remove(index); Iterator<IConceptEntryListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()) iterator.next().removeEntry(index); } } public void modifyEntry(ConceptEntryBO record) { Iterator<IConceptEntryListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()) iterator.next().modifyEntry(record); } public void removeChangeListener(IConceptEntryListViewer viewer) { changeListeners.remove(viewer); } public void addChangeListener(IConceptEntryListViewer viewer) { changeListeners.add(viewer); } public void addEntryBO(ConceptEntryBO r){ entries.add(entries.size(), r); Iterator<IConceptEntryListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()){ iterator.next().addEntry(r); } } }