1145
static ValNodePtr CollectValidatorReportTypes (ValidExtraPtr vep)
1148
ValNodePtr chosen = NULL, vnp;
1149
WindoW w, h, btn_grp, g1 = NULL, c;
1150
Int4 num_buttons, i;
1151
ValidatorReportTypeData data;
1152
ButtoN PNTR btn_array;
1154
int last_errcode = 0;
1155
ModalAcceptCancelData acd;
1157
if (vep == NULL || vep->errorfilter == NULL) return NULL;
1159
/* if only one, just select the one */
1160
if (vep->errorfilter->next == NULL)
1162
ValNodeAddPointer (&chosen, 0, vep->errorfilter->data.ptrvalue);
1166
num_buttons = ValNodeLen (vep->errorfilter);
1167
btn_array = (ButtoN PNTR) MemNew (sizeof (ButtoN) * num_buttons);
1169
data.btn_array = btn_array;
1170
data.errorfilter = vep->errorfilter;
1172
w = MovableModalWindow (-50, -33, -10, -10, "Choose Report Items", NULL);
1173
SetGroupSpacing (w, 10, 10);
1174
h = HiddenGroup (w, -1, 0, NULL);
1175
SetGroupSpacing (h, 10, 10);
1177
btn_grp = HiddenGroup (h, 3, 0, NULL);
1178
for (vnp = vep->errorfilter, i = 0; vnp != NULL; vnp = vnp->next, i++) {
1179
efp = (ErrFltrPtr) vnp->data.ptrvalue;
1180
if (efp == NULL) continue;
1181
if (efp->subcode == INT_MIN) {
1182
g1 = NormalGroup (btn_grp, 0, 10, efp->text2, programFont, NULL);
1183
btn_array[i] = CheckBox (g1, "All", EnableValidatorReportTypeButtons);
1184
SetObjectExtra (btn_array[i], &data, NULL);
1185
last_errcode = efp->errcode;
1187
if (last_errcode != efp->errcode) {
1190
btn_array[i] = CheckBox (g1 == NULL ? btn_grp : g1, efp->text3 == NULL ? "" : efp->text3, NULL);
1194
c = HiddenGroup (w, 4, 0, NULL);
1195
SetGroupSpacing (c, 10, 2);
1196
b = DefaultButton (c, "Accept", ModalAcceptButton);
1197
SetObjectExtra (b, &acd, NULL);
1198
b = PushButton (c, "Cancel", ModalCancelButton);
1199
SetObjectExtra (b, &acd, NULL);
1201
AlignObjects (ALIGN_CENTER, (HANDLE) btn_grp, (HANDLE) c, NULL);
1208
acd.accepted = FALSE;
1209
acd.cancelled = FALSE;
1211
while (!acd.accepted && ! acd.cancelled)
1213
while (!acd.accepted && ! acd.cancelled)
1215
ProcessExternalEvent ();
1222
for (vnp = vep->errorfilter, i = 0; vnp != NULL; vnp = vnp->next, i++)
1178
static BioseqPtr GetFirstBioseqInSeqEntry (SeqEntryPtr sep)
1180
BioseqPtr bsp = NULL;
1183
if (sep == NULL || sep->data.ptrvalue == NULL)
1187
else if (IS_Bioseq (sep))
1189
bsp = sep->data.ptrvalue;
1191
else if (IS_Bioseq_set (sep))
1193
bssp = (BioseqSetPtr) sep->data.ptrvalue;
1194
for (sep = bssp->seq_set; sep != NULL && bsp == NULL; sep = sep->next)
1196
bsp = GetFirstBioseqInSeqEntry (sep);
1203
static BioseqPtr GetBioseqForDescriptor (ObjValNodePtr ovp)
1205
BioseqPtr bsp = NULL;
1209
if (ovp == NULL || ovp->idx.parentptr == NULL)
1213
else if (ovp->idx.parenttype == OBJ_BIOSEQ) {
1214
bsp = (BioseqPtr) ovp->idx.parentptr;
1215
} else if (ovp->idx.parenttype == OBJ_BIOSEQSET) {
1216
bssp = (BioseqSetPtr) ovp->idx.parentptr;
1217
for (sep = bssp->seq_set; sep != NULL && bsp == NULL; sep = sep->next)
1219
bsp = GetFirstBioseqInSeqEntry (sep);
1226
static BioseqPtr GetBioseqFromErrItem (ErrItemPtr eip)
1228
BioseqPtr bsp = NULL;
1232
SeqMgrDescContext context;
1237
switch (eip->itemtype) {
1239
bsp = GetBioseqGivenIDs (eip->entityID, eip->itemID, eip->itemtype);
1242
sfp = GetSeqFeatGivenIDs (eip->entityID, eip->itemID, eip->itemtype);
1224
if (vnp->data.ptrvalue != NULL && GetStatus (btn_array[i]))
1226
ValNodeAddPointer (&chosen, 0, vnp->data.ptrvalue);
1245
bsp = BioseqFindFromSeqLoc (sfp->location);
1249
sdp = SeqMgrGetDesiredDescriptor (eip->entityID, NULL, eip->itemID, 0, NULL, &context);
1250
if (sdp != NULL && sdp->extended != 0) {
1251
ovp = (ObjValNodePtr) sdp;
1252
bsp = GetBioseqForDescriptor (ovp);
1231
btn_array = MemFree (btn_array);
1281
static int LIBCALLBACK SortVnpByChoiceAndPtrvalue (VoidPtr ptr1, VoidPtr ptr2)
1287
if (ptr1 == NULL || ptr2 == NULL) return 0;
1288
vnp1 = *((ValNodePtr PNTR) ptr1);
1289
vnp2 = *((ValNodePtr PNTR) ptr2);
1290
if (vnp1 == NULL || vnp2 == NULL) return 0;
1292
if (vnp1->choice > vnp2->choice) {
1294
} else if (vnp1->choice < vnp2->choice) {
1296
} else if (vnp1->data.ptrvalue > vnp2->data.ptrvalue) {
1298
} else if (vnp1->data.ptrvalue < vnp2->data.ptrvalue) {
1306
static ValNodePtr CollectBioseqsByValidatorReportTypes (ValidExtraPtr vep)
1310
ValNodePtr chosen = NULL, vnp, bsp_list = NULL;
1311
WindoW w, h, btn_grp, g1 = NULL, c;
1312
Int4 num_buttons, i;
1313
ValidatorReportTypeData data;
1314
ButtoN PNTR btn_array;
1316
int last_errcode = 0;
1317
ModalAcceptCancelData acd;
1321
if (vep == NULL || vep->errorfilter == NULL) return NULL;
1323
/* if only one, just select the one */
1324
if (vep->errorfilter->next == NULL)
1326
ValNodeAddPointer (&chosen, 0, vep->errorfilter->data.ptrvalue);
1330
num_buttons = ValNodeLen (vep->errorfilter);
1331
btn_array = (ButtoN PNTR) MemNew (sizeof (ButtoN) * num_buttons);
1333
data.btn_array = btn_array;
1334
data.errorfilter = vep->errorfilter;
1336
w = MovableModalWindow (-50, -33, -10, -10, "Choose Report Items", NULL);
1337
SetGroupSpacing (w, 10, 10);
1338
h = HiddenGroup (w, -1, 0, NULL);
1339
SetGroupSpacing (h, 10, 10);
1341
btn_grp = HiddenGroup (h, 3, 0, NULL);
1342
for (vnp = vep->errorfilter, i = 0; vnp != NULL; vnp = vnp->next, i++) {
1343
efp = (ErrFltrPtr) vnp->data.ptrvalue;
1344
if (efp == NULL) continue;
1345
if (efp->subcode == INT_MIN) {
1346
g1 = NormalGroup (btn_grp, 0, 10, efp->text2, programFont, NULL);
1347
btn_array[i] = CheckBox (g1, "All", EnableValidatorReportTypeButtons);
1348
SetObjectExtra (btn_array[i], &data, NULL);
1349
last_errcode = efp->errcode;
1351
if (last_errcode != efp->errcode) {
1354
btn_array[i] = CheckBox (g1 == NULL ? btn_grp : g1, efp->text3 == NULL ? "" : efp->text3, NULL);
1358
c = HiddenGroup (w, 4, 0, NULL);
1359
SetGroupSpacing (c, 10, 2);
1360
b = DefaultButton (c, "Accept", ModalAcceptButton);
1361
SetObjectExtra (b, &acd, NULL);
1362
b = PushButton (c, "Cancel", ModalCancelButton);
1363
SetObjectExtra (b, &acd, NULL);
1365
AlignObjects (ALIGN_CENTER, (HANDLE) btn_grp, (HANDLE) c, NULL);
1372
acd.accepted = FALSE;
1373
acd.cancelled = FALSE;
1375
while (!acd.accepted && ! acd.cancelled)
1377
while (!acd.accepted && ! acd.cancelled)
1379
ProcessExternalEvent ();
1386
for (vnp = vep->errorfilter, i = 0; vnp != NULL; vnp = vnp->next, i++)
1388
if (vnp->data.ptrvalue != NULL && GetStatus (btn_array[i]))
1390
/* add ErrorFilterPtr to list of categories */
1391
ValNodeAddPointer (&chosen, 0, vnp->data.ptrvalue);
1396
btn_array = MemFree (btn_array);
1398
for (vnp = vep->messages; vnp != NULL; vnp = vnp->next) {
1399
eip = (ErrItemPtr) vnp->data.ptrvalue;
1401
pos = FindReportPositionForError (eip, chosen);
1403
bsp = GetBioseqFromErrItem (eip);
1404
ValNodeAddPointer (&bsp_list, OBJ_BIOSEQ, bsp);
1408
chosen = ValNodeFree (chosen);
1410
bsp_list = ValNodeSort (bsp_list, SortVnpByChoiceAndPtrvalue);
1411
ValNodeUnique (&bsp_list, SortVnpByChoiceAndPtrvalue, ValNodeFree);
1418
static ValNodePtr CollectValidatorReportTypes (ValidExtraPtr vep)
1421
ValNodePtr chosen = NULL, vnp;
1422
WindoW w, h, btn_grp, g1 = NULL, c;
1423
Int4 num_buttons, i;
1424
ValidatorReportTypeData data;
1425
ButtoN PNTR btn_array;
1427
int last_errcode = 0;
1428
ModalAcceptCancelData acd;
1430
if (vep == NULL || vep->errorfilter == NULL) return NULL;
1432
/* if only one, just select the one */
1433
if (vep->errorfilter->next == NULL)
1435
ValNodeAddPointer (&chosen, 0, vep->errorfilter->data.ptrvalue);
1439
num_buttons = ValNodeLen (vep->errorfilter);
1440
btn_array = (ButtoN PNTR) MemNew (sizeof (ButtoN) * num_buttons);
1442
data.btn_array = btn_array;
1443
data.errorfilter = vep->errorfilter;
1445
w = MovableModalWindow (-50, -33, -10, -10, "Choose Report Items", NULL);
1446
SetGroupSpacing (w, 10, 10);
1447
h = HiddenGroup (w, -1, 0, NULL);
1448
SetGroupSpacing (h, 10, 10);
1450
btn_grp = HiddenGroup (h, 3, 0, NULL);
1451
for (vnp = vep->errorfilter, i = 0; vnp != NULL; vnp = vnp->next, i++) {
1452
efp = (ErrFltrPtr) vnp->data.ptrvalue;
1453
if (efp == NULL) continue;
1454
if (efp->subcode == INT_MIN) {
1455
g1 = NormalGroup (btn_grp, 0, 10, efp->text2, programFont, NULL);
1456
btn_array[i] = CheckBox (g1, "All", EnableValidatorReportTypeButtons);
1457
SetObjectExtra (btn_array[i], &data, NULL);
1458
last_errcode = efp->errcode;
1460
if (last_errcode != efp->errcode) {
1463
btn_array[i] = CheckBox (g1 == NULL ? btn_grp : g1, efp->text3 == NULL ? "" : efp->text3, NULL);
1467
c = HiddenGroup (w, 4, 0, NULL);
1468
SetGroupSpacing (c, 10, 2);
1469
b = DefaultButton (c, "Accept", ModalAcceptButton);
1470
SetObjectExtra (b, &acd, NULL);
1471
b = PushButton (c, "Cancel", ModalCancelButton);
1472
SetObjectExtra (b, &acd, NULL);
1474
AlignObjects (ALIGN_CENTER, (HANDLE) btn_grp, (HANDLE) c, NULL);
1481
acd.accepted = FALSE;
1482
acd.cancelled = FALSE;
1484
while (!acd.accepted && ! acd.cancelled)
1486
while (!acd.accepted && ! acd.cancelled)
1488
ProcessExternalEvent ();
1495
for (vnp = vep->errorfilter, i = 0; vnp != NULL; vnp = vnp->next, i++)
1497
if (vnp->data.ptrvalue != NULL && GetStatus (btn_array[i]))
1499
ValNodeAddPointer (&chosen, 0, vnp->data.ptrvalue);
1504
btn_array = MemFree (btn_array);
1258
1510
static Boolean MakeStandardReports (ValNodePtr chosen, ValNodePtr PNTR reports_list, FILE *fp)
1260
1512
ValNodePtr chosen_vnp, item_vnp;
2024
2340
SafeHide (vep->revalBtn);
2342
vep->continueProc = continueProc;
2343
if (vep->continueProc != NULL) {
2344
SafeShow (vep->continueBtn);
2346
SafeHide (vep->continueBtn);
2026
2348
vep->okaytosetviewtarget = okaytosetviewtarget;
2029
2351
return validWindow;
2354
extern WindoW CreateValidateWindowExEx (ErrNotifyProc notify, CharPtr title,
2355
FonT font, ErrSev sev, Int2 verbose,
2356
BaseFormPtr bfp, FormActnFunc revalProc, FormActnFunc continueProc,
2357
Boolean okaytosetviewtarget)
2359
return CreateValidateWindowExExEx (notify, title,
2361
bfp, revalProc, continueProc,
2363
okaytosetviewtarget);
2366
extern WindoW CreateValidateWindowEx (ErrNotifyProc notify, CharPtr title,
2367
FonT font, ErrSev sev, Int2 verbose,
2368
BaseFormPtr bfp, FormActnFunc revalProc,
2369
Boolean okaytosetviewtarget)
2371
return CreateValidateWindowExEx (notify, title, font, sev, verbose, bfp, revalProc, NULL, okaytosetviewtarget);
2032
2374
extern WindoW CreateValidateWindow (ErrNotifyProc notify, CharPtr title,
2033
2375
FonT font, ErrSev sev, Int2 verbose)