package org.limewire.ui.swing.library.navigator; import org.limewire.core.api.library.LocalFileList; import org.limewire.core.api.library.SharedFileList; import org.limewire.ui.swing.util.I18n; public class LibraryNavItem { public static enum NavType { LIBRARY, PUBLIC_SHARED, LIST } private final NavType navType; private final LocalFileList localFileList; private final SharedFileList sharedFileList; // null if it can't be typed to this. public LibraryNavItem(LocalFileList localFileList) { this.localFileList = localFileList; if(localFileList instanceof SharedFileList) { this.sharedFileList = (SharedFileList)localFileList; this.navType = sharedFileList.isPublic() ? NavType.PUBLIC_SHARED : NavType.LIST; } else { this.sharedFileList = null; this.navType = NavType.LIBRARY; } } public LocalFileList getLocalFileList() { return localFileList; } public int getId() { return sharedFileList != null ? sharedFileList.getId() : -1; } public String getDisplayText() { switch(navType) { case LIST: return sharedFileList.getCollectionName(); case LIBRARY: return I18n.tr("Library"); case PUBLIC_SHARED: return I18n.tr("Public Shared"); default: throw new IllegalStateException("unknown type: " + navType); } } public boolean canRemove() { return navType == NavType.LIST; } public NavType getType() { return navType; } public boolean isShared() { if (getType() == NavType.PUBLIC_SHARED){ return true; } if(sharedFileList != null){ return sharedFileList.getFriendIds().size() > 0; } return false; } }