package org.hpccsystems.saltui.hygiene; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class HygieneEntryList { private ArrayList<HygieneEntryBO> entries = new ArrayList<HygieneEntryBO>(); private Set<IHygieneEntryListViewer> changeListeners = new HashSet<IHygieneEntryListViewer>(); public ArrayList<HygieneEntryBO> getEntries() { return entries; } public void setEntries(ArrayList<HygieneEntryBO> entries) { this.entries = entries; } public void add(HygieneEntryBO eb){ entries.add(eb); } public HygieneEntryBO getEntry(int index){ return entries.get(index); } public void updateEntry(int index, HygieneEntryBO r){ System.out.println("Update Entry: " + index + " - " + r.getField()); 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).getRuleName().equalsIgnoreCase(oldName)){ entries.get(i).setRuleName(newName); if(newName.equals("")){ entries.get(i).setHygieneRuleListIndex(-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) { HygieneEntryBO entry = new HygieneEntryBO(); if(index >= 0){ entries.add(index+1, entry); } else { entries.add(entries.size(), entry); } Iterator<IHygieneEntryListViewer> 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).getRuleName().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<IHygieneEntryListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()) iterator.next().removeEntry(index); } } public void modifyEntry(HygieneEntryBO record) { Iterator<IHygieneEntryListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()) iterator.next().modifyEntry(record); } public void removeChangeListener(IHygieneEntryListViewer viewer) { changeListeners.remove(viewer); } public void addChangeListener(IHygieneEntryListViewer viewer) { changeListeners.add(viewer); } public void addEntryBO(HygieneEntryBO r){ entries.add(entries.size(), r); Iterator<IHygieneEntryListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()){ iterator.next().addEntry(r); } } }