public void RefreshMetaData()
{
int NameIdx, ClassIdx, LinkIdx, IndexIdx, ArchetypeIdx;
if (tabControl1.SelectedTab != metaDataPage)
{
return;
}
if (!this.IsForegroundWindow())
{
pendingMetaDataUpdate = true;
return;
}
int n;
if (!GetSelected(out n))
{
return;
}
nameComboBox.BeginUpdate();
classComboBox.BeginUpdate();
linkComboBox.BeginUpdate();
nameComboBox.Items.Clear();
classComboBox.Items.Clear();
linkComboBox.Items.Clear();
archetypeComboBox.Items.Clear();
List<string> Classes = new List<string>();
IReadOnlyList<ImportEntry> imports = pcc.Imports;
for (int i = imports.Count - 1; i >= 0; i--)
{
Classes.Add(-(i + 1) + " : " + imports[i].ObjectName);
}
Classes.Add("0 : Class");
int count = 1;
IReadOnlyList<IExportEntry> Exports = pcc.Exports;
foreach (IExportEntry exp in Exports)
{
Classes.Add((count++) + " : " + exp.ObjectName);
}
count = 0;
int off = imports.Count;
if (n >= 0)
{
foreach (string s in pcc.Names)
nameComboBox.Items.Add((count++) + " : " + s);
foreach (string s in Classes)
{
classComboBox.Items.Add(s);
linkComboBox.Items.Add(s);
archetypeComboBox.Items.Add(s);
}
NameIdx = pcc.getExport(n).idxObjectName;
ClassIdx = pcc.getExport(n).idxClass;
LinkIdx = pcc.getExport(n).idxLink;
IndexIdx = pcc.getExport(n).indexValue;
ArchetypeIdx = pcc.getExport(n).idxArchtype;
archetypeLabel.Text = "Archetype";
indexTextBox.Visible = indexLabel.Visible = true;
classComboBox.SelectedIndex = ClassIdx + off;
archetypeComboBox.SelectedIndex = ArchetypeIdx + off;
indexTextBox.Text = IndexIdx.ToString();
}
else
{
n = -n - 1;
foreach (string s in Classes)
{
linkComboBox.Items.Add(s);
}
count = 0;
foreach (string s in pcc.Names)
{
nameComboBox.Items.Add(count + " : " + s);
classComboBox.Items.Add(count + " : " + s);
archetypeComboBox.Items.Add(count + " : " + s);
count++;
}
NameIdx = imports[n].idxObjectName;
ClassIdx = imports[n].idxClassName;
LinkIdx = imports[n].idxLink;
ArchetypeIdx = imports[n].idxPackageFile;
archetypeLabel.Text = "Package File";
indexTextBox.Visible = indexLabel.Visible = false;
classComboBox.SelectedIndex = ClassIdx;
archetypeComboBox.SelectedIndex = ArchetypeIdx;
}
nameComboBox.SelectedIndex = NameIdx;
linkComboBox.SelectedIndex = LinkIdx + off;
nameComboBox.EndUpdate();
classComboBox.EndUpdate();
linkComboBox.EndUpdate();
}