package org.openedit.webui.tabs; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.Iterator; import java.util.List; public class TabList { protected String fieldId; protected List fieldTabs; protected Tab fieldLastSelected; public String getId() { return fieldId; } public void setId(String inId) { fieldId = inId; } public List getTabs() { if (fieldTabs == null) { fieldTabs = new ArrayList(); } return fieldTabs; } public int size() { return getTabs().size(); } public void setTabs(List inTabs) { fieldTabs = inTabs; } public void addNewTab(String inId, String inName, String inPath ) { addNewTab( inId, inName, inPath,100); } public void addNewTab(String inId, String inName, String inPath, int inMaxLevel) { Tab tab = new Tab(); //tab.setLink(inPath); tab.setName(inName); tab.setId(inId); tab.setPath(inPath); tab.setMaxLevel(inMaxLevel); tab.setTimeAdded(new Date()); getTabs().add(tab); } public void removeTabById(String inId) { for (Iterator iterator = getTabs().iterator(); iterator.hasNext();) { Tab tab = (Tab) iterator.next(); if( tab.getId() == null || tab.getId().equals(inId)) { getTabs().remove(tab); break; } } } public Tab getLastSelected() { return fieldLastSelected; } public void setLastSelected(Tab inLastSelected) { fieldLastSelected = inLastSelected; } public void setLastSelectedById( String inTabId ) { for (Iterator iterator = getTabs().iterator(); iterator.hasNext();) { Tab tab = (Tab) iterator.next(); if( tab.getId() != null && tab.getId().equals(inTabId)) { setLastSelected(tab); return; } } setLastSelected((Tab)null); } public String getSelectedPath() { if( fieldLastSelected != null) { return getLastSelected().getPath(); } return null; } public Tab getTabById(String inId) { for (Iterator iterator = getTabs().iterator(); iterator.hasNext();) { Tab tab = (Tab) iterator.next(); if( tab.getId() != null && tab.getId().equals(inId)) { return tab; } } return null; } public void removeOldestTab() { Tab oldest = null; for (Iterator iterator = getTabs().iterator(); iterator.hasNext();) { Tab tab = (Tab) iterator.next(); if (oldest == null || tab.getTimeAdded().before(oldest.getTimeAdded()) ) { oldest = tab; } } if (oldest != null) { removeTabById(oldest.getId()); } } public void sortTabs() { Collections.sort(getTabs()); } public void clearTabs() { getTabs().clear(); } public void addTab(Tab inTab) { getTabs().add(inTab); } }