private void ShowRoute(bool UserSelectedEncoding) {
if (routeWorkerThread == null)
{
return;
}
if (Result.RouteFile != null && !routeWorkerThread.IsBusy)
{
this.Cursor = Cursors.WaitCursor;
TryLoadImage(pictureboxRouteImage, "loading.png");
groupboxRouteDetails.Visible = true;
textboxRouteDescription.Text = Interface.GetInterfaceString("start_route_processing");
// determine encoding
if (!UserSelectedEncoding) {
comboboxRouteEncoding.Tag = new object();
comboboxRouteEncoding.SelectedIndex = 0;
comboboxRouteEncoding.Items[0] = "(UTF-8)";
comboboxRouteEncoding.Tag = null;
Result.RouteEncoding = System.Text.Encoding.UTF8;
switch (TextEncoding.GetEncodingFromFile(Result.RouteFile)) {
case TextEncoding.Encoding.Utf7:
panelRouteEncoding.Enabled = false;
comboboxRouteEncoding.SelectedIndex = 0;
comboboxRouteEncoding.Items[0] = "(UTF-7)";
Result.RouteEncoding = System.Text.Encoding.UTF7;
break;
case TextEncoding.Encoding.Utf8:
panelRouteEncoding.Enabled = false;
comboboxRouteEncoding.SelectedIndex = 0;
comboboxRouteEncoding.Items[0] = "(UTF-8)";
Result.RouteEncoding = System.Text.Encoding.UTF8;
break;
case TextEncoding.Encoding.Utf16Le:
panelRouteEncoding.Enabled = false;
comboboxRouteEncoding.SelectedIndex = 0;
comboboxRouteEncoding.Items[0] = "(UTF-16 little endian)";
Result.RouteEncoding = System.Text.Encoding.Unicode;
break;
case TextEncoding.Encoding.Utf16Be:
panelRouteEncoding.Enabled = false;
comboboxRouteEncoding.SelectedIndex = 0;
comboboxRouteEncoding.Items[0] = "(UTF-16 big endian)";
Result.RouteEncoding = System.Text.Encoding.BigEndianUnicode;
break;
case TextEncoding.Encoding.Utf32Le:
panelRouteEncoding.Enabled = false;
comboboxRouteEncoding.SelectedIndex = 0;
comboboxRouteEncoding.Items[0] = "(UTF-32 little endian)";
Result.RouteEncoding = System.Text.Encoding.UTF32;
break;
case TextEncoding.Encoding.Utf32Be:
panelRouteEncoding.Enabled = false;
comboboxRouteEncoding.SelectedIndex = 0;
comboboxRouteEncoding.Items[0] = "(UTF-32 big endian)";
Result.RouteEncoding = System.Text.Encoding.GetEncoding(12001);
break;
case TextEncoding.Encoding.Shift_JIS:
panelRouteEncoding.Enabled = false;
comboboxRouteEncoding.SelectedIndex = 0;
comboboxRouteEncoding.Items[0] = "(SHIFT_JIS)";
Result.RouteEncoding = System.Text.Encoding.GetEncoding(932);
break;
}
panelRouteEncoding.Enabled = true;
comboboxRouteEncoding.Tag = new object();
int i;
for (i = 0; i < Interface.CurrentOptions.RouteEncodings.Length; i++) {
if (Interface.CurrentOptions.RouteEncodings[i].Value == Result.RouteFile) {
int j;
for (j = 1; j < EncodingCodepages.Length; j++) {
if (EncodingCodepages[j] == Interface.CurrentOptions.RouteEncodings[i].Codepage) {
comboboxRouteEncoding.SelectedIndex = j;
Result.RouteEncoding = System.Text.Encoding.GetEncoding(EncodingCodepages[j]);
break;
}
}
if (j == EncodingCodepages.Length) {
comboboxRouteEncoding.SelectedIndex = 0;
Result.RouteEncoding = System.Text.Encoding.UTF8;
}
break;
}
}
comboboxRouteEncoding.Tag = null;
}
routeWorkerThread.RunWorkerAsync();
}
}