DragList.ItemDescriptor CreateListItem(PackageInfo info) { string caption; if (_view.ViewState == PmViewStates.ReleasesAndPackages) { var releaseInfo = info.InstallInfo.ReleaseInfo; if (!string.IsNullOrEmpty(releaseInfo.Name)) { caption = "{0} ({1}{2})".Fmt( info.Name, ImguiUtil.WrapWithColor(releaseInfo.Name, _pmSettings.View.Theme.DraggableItemAlreadyAddedColor), string.IsNullOrEmpty(releaseInfo.Version) ? "" : ImguiUtil.WrapWithColor(" v" + releaseInfo.Version, _pmSettings.View.Theme.VersionColor)); } else { caption = info.Name; } } else { // this isn't always the case since it can be rendered when interpolating //Assert.IsEqual(_model.ViewState, PmViewStates.PackagesAndProject); if (_model.IsPackageAddedToProject(info.Name)) { caption = ImguiUtil.WrapWithColor( info.Name, _pmSettings.View.Theme.DraggableItemAlreadyAddedColor); } else { caption = info.Name; } } return(new DragList.ItemDescriptor() { Caption = caption, Model = info }); }