public override void handleUpdate(List<PackageUpdate> updates)
{
List<PackageChange> changes = updates.Select(x => x.change).ToList();
bool importChanges = changes.Contains(PackageChange.Import) || changes.Contains(PackageChange.ImportAdd);
bool exportNonDataChanges = changes.Contains(PackageChange.ExportHeader) || changes.Contains(PackageChange.ExportAdd);
int n = 0;
bool hasSelection = GetSelected(out n);
if (CurrentView == View.Names && changes.Contains(PackageChange.Names))
{
int scrollTo = listBox1.TopIndex + 1;
int selected = listBox1.SelectedIndex;
RefreshView();
listBox1.SelectedIndex = selected;
listBox1.TopIndex = scrollTo;
}
else if (CurrentView == View.Imports && importChanges ||
CurrentView == View.Exports && exportNonDataChanges ||
CurrentView == View.Tree && (importChanges || exportNonDataChanges))
{
RefreshView();
if (hasSelection)
{
goToNumber(n);
}
}
else if ((CurrentView == View.Exports || CurrentView == View.Tree) &&
hasSelection &&
updates.Contains(new PackageUpdate { index = n, change = PackageChange.ExportData }))
{
interpreterControl.memory = pcc.getExport(n).Data;
interpreterControl.RefreshMem();
Preview(true);
}
}