Compare commits

..
Author SHA1 Message Date
jjenko aa6dacf0c5 Merge pull request 'C2025-051 Missed one default when removing Check and Users Tabs from Admin Tool' (#604) from C2025-051 into Development
good for testing phase
2025-08-27 08:15:39 -04:00
mschill 69cc71ab3b C2025-051 Missed one default when removing Check and Users Tabs from Admin Tool 2025-08-27 07:01:39 -04:00
jjenko fe52d31168 Merge pull request 'C2025-051 Add a "General Tools" option to the V->Proms Menu.' (#603) from C2025-051 into Development
good for testing phase
2025-08-26 11:13:03 -04:00
mschill 3ea4307716 C2025-051 Add a "General Tools" option to the V->Proms Menu. 2025-08-26 06:57:57 -04:00
jjenko 5650df1a9f Merge pull request 'C2025-001 Replace 3rd party Ionic.zip component' (#602) from C2025-001 into Development
good for testing phase
2025-08-25 08:40:01 -04:00
mschill 8f154ebf48 C2025-001 Replace 3rd party Ionic.zip component 2025-08-21 14:25:53 -04:00
plarsen ba9d56811c Merge pull request 'C2025-035 RO Performance Improvement' (#601) from C2025-035 into Development
Reviewed-on: #601
Reviewed-by: Paul Larsen <plarsen@volian.com>
2025-08-19 14:24:55 -04:00
mschill 8eb8a328d1 C2025-035 RO Performance Improvement
Add some code to rebuild specific indexes (like [IX_RofstID_DbiID_ParentID] ON [dbo].[RofstChild])
after a new RO.FST is imported.
2025-08-19 13:32:23 -04:00
jjenko e8327316dd Merge pull request 'B2025-041-Set-Quick-Print-overwrite-pdf-to-false' (#599) from B2025-041-Set-Quick-Print-overwrite-pdf-to-false into Development
good for testing phase
2025-08-14 13:52:37 -04:00
plarsen 3bd7001106 B2025-041-Set-Quick-Print-overwrite-pdf-to-false 2025-08-14 11:23:22 -04:00
jjenko 2e5ad53c6a Merge pull request 'B2025-042 RO Editor FST Export ParentChild whitespace' (#598) from B2025-042 into Development
good for testing phase
2025-08-14 11:12:32 -04:00
mschill ca0ae279e0 B2025-042 RO Editor FST Export ParentChild whitespace 2025-08-14 10:16:22 -04:00
jjenko adf1120436 Merge pull request 'B2025-037 When Export an Approved procedure with multi-unit and ROs with Parent Child, it exports as the default text and not the specific unit text.' (#597) from B2025-037 into Development
good for testing phase
2025-08-13 10:52:17 -04:00
mschill 7879391de0 B2025-037 When Export an Approved procedure with multi-unit and ROs with Parent Child, it exports as the default text and not the specific unit text. 2025-08-13 10:45:49 -04:00
jjenko 11ba9ea418 Merge pull request 'C2025-048-Set-Quick-Print-overwrite-pdf-to-false' (#596) from C2025-048-Set-Quick-Print-overwrite-pdf-to-false into Development
good for testing phase
2025-08-13 10:34:12 -04:00
jjenko 0fe84ca17c Merge pull request 'C2025-045 Improve Performance loading procedures with Alarms.' (#594) from C2025-045 into Development
good for testing phase
2025-08-13 09:17:55 -04:00
plarsen 1009ca5111 Merge remote-tracking branch 'origin/Development' into C2025-048-Set-Quick-Print-overwrite-pdf-to-false 2025-08-13 09:14:34 -04:00
mschill 2c973fb0be C2025-045 Improve Performance loading procedures with Alarms. 2025-08-13 09:12:04 -04:00
plarsen dba1f4e71c C2025-048-Set-Quick-Print-overwrite-pdf-to-false 2025-08-13 09:11:52 -04:00
mschill 46fe124fe1 Merge pull request 'C2025-049 Added a check and fix for a different hyphen character that is in Vogtle’s 3 & 4 procedures, introduced by automatic importing and copy/paste from Word documents.' (#593) from C2025-049-update_StandardHyphens_AdminTools into Development
Looks good. Ready for QA testing.
2025-08-13 07:52:27 -04:00
jjenko 50688d7d8a C2025-049 Added a check and fix for a different hyphen character that is in Vogtle’s 3 & 4 procedures, introduced by automatic importing and copy/paste from Word documents. 2025-08-12 16:16:59 -04:00
plarsen a7396e3c4a Merge pull request 'C2025-015 Added logic to make approved PDF names unique to allow procedures from different sets or different revs of the same procedure to be opened (viewed) at the same time.' (#592) from C2025-015_ViewMultipleApprovedPDFsOfSameName into Development
Reviewed-on: #592
Reviewed-by: Matthew Schill <mschill@volian.com>
Reviewed-by: Paul Larsen <plarsen@volian.com> merge after successful code review.
2025-08-12 10:28:04 -04:00
jjenko 41e969f79e C2025-015 Added logic to make approved PDF names unique to allow procedures from different sets or different revs of the same procedure to be opened (viewed) at the same time. 2025-08-12 09:21:26 -04:00
jjenko 7b3f78f745 Merge pull request 'B2025-038-Copy-a-step-between-two-screens' (#591) from B2025-038-Copy-a-step-between-two-screens into Development
ready for testing phase
2025-08-12 08:45:59 -04:00
plarsen 14bc171246 B2025-038-Copy-a-step-between-two-screens 2025-08-12 08:09:38 -04:00
jjenko a584c0751e Merge pull request 'C2025-024' (#590) from C2025-024 into Development
good for testing phase
2025-08-08 10:18:59 -04:00
mschill 3d7528e069 Merge branch 'Development' into C2025-024 2025-08-08 09:56:33 -04:00
mschill 58cc75ef71 C2025-024
Fix merge conflict
2025-08-08 09:44:51 -04:00
mschill b5a9462e95 C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
Fix Regular Expression RO Resolution for when multi ROs  and multi-unit
2025-08-06 14:41:15 -04:00
jjenko 1bc421ac6d Merge pull request 'B2025-036-SplitScreen-Print-Error' (#587) from B2025-036-SplitScreen-Print-Error into Development
ready for testing
2025-08-06 11:37:03 -04:00
plarsen ad0d091b49 B2025-036-SplitScreen-Print-Error 2025-08-06 11:28:28 -04:00
plarsen 22de686a44 B2025-036-SplitScreen-Print-Error 2025-08-06 11:25:44 -04:00
jjenko 3e7eb09758 Merge pull request 'C2025-039 Per the customer’s request, adjusted the “{Proc Num} (Procedure Number Only)" transition type in the Beaver Valley formats so that a procedure that contains only Word sections can be referenced.' (#586) from C2025-039_allowStepTransToAllWordProc into Development
format only change - ready for testing
2025-08-04 10:31:38 -04:00
jjenko e2a276085b C2025-039 Per the customer’s request, adjusted the “{Proc Num} (Procedure Number Only)" transition type in the Beaver Valley formats so that a procedure that contains only Word sections can be referenced. 2025-08-04 10:30:20 -04:00
jjenko d561c579e0 Merge pull request 'C2025-047-cleanup' (#585) from C2025-047-cleanup into Development
good for testing
2025-08-01 14:58:51 -04:00
plarsen 371d117746 C2025-047-cleanup 2025-08-01 14:44:48 -04:00
mschill 28c681a562 C2025-024 Electronic Procedures Phase 2 - XML Export
Enhanced Doc Links
2025-08-01 13:53:08 -04:00
jjenko 2131efb522 Merge pull request 'C2025-047-AnnotationsTypeSelectChanges' (#583) from C2025-047-AnnotationsTypeSelectChanges into Development
good for testing phase
2025-08-01 10:13:46 -04:00
plarsen 6e20774edf C2025-047-AnnotationsTypeSelectChanges 2025-08-01 07:34:33 -04:00
plarsen a7c7744ff3 C2025-047-AnnotationsTypeSelectChanges 2025-07-31 23:06:29 -04:00
jjenko 019aefbc61 Merge pull request 'SQL optimization to use AnnotationTypeSelections Index' (#582) from SQL_Optimization_7_31_2025 into Development
good for testing phase
2025-07-31 11:03:14 -04:00
mschill 81a23305ba SQL optimization to used AnnotationTypeSelections Index 2025-07-31 10:48:39 -04:00
jjenko 4001abff02 Merge pull request 'C2025-027-AnnotationsTypeSelect-3' (#581) from C2025-027-AnnotationsTypeSelect-3 into Development
good for testing phase
2025-07-31 08:49:37 -04:00
plarsen 25bfbeb8d6 C2025-027-AnnotationsTypeSelect-3 2025-07-30 23:05:11 -04:00
mschill 44025c3978 C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-Unit Resolution, and Fix RO Annotation resolution in Text
2025-07-30 13:47:25 -04:00
jjenko a3aa9747b8 Merge pull request 'C2025-027-AnnotationsTypeSelect-2' (#580) from C2025-027-AnnotationsTypeSelect-2 into Development
good for testing phase
2025-07-30 11:28:55 -04:00
plarsen 009243b091 C2025-027-AnnotationsTypeSelect-2 2025-07-30 11:18:33 -04:00
plarsen e31e0b6680 C2025-027-AnnotationsTypeSelect-2 2025-07-30 10:58:58 -04:00
plarsen 449bb2522b C2025-027-AnnotationsTypeSelect-2 2025-07-30 10:25:07 -04:00
jjenko 453dce9520 Merge pull request 'C2025-027-AnnotationsTypeSelect' (#574) from C2025-027-AnnotationsTypeSelect into Development
good for the testing phase
2025-07-30 08:23:06 -04:00
plarsen 655592186b C2025-027-AnnotationsTypeSelect 2025-07-29 22:54:44 -04:00
plarsen 1ebf67233b C2025-027-AnnotationsTypeSelect 2025-07-29 15:34:13 -04:00
jjenko 1588dabcbe Merge pull request 'C2025-044 Update PROMS Fixes to be SQL 2016 compatible' (#579) from C2025-044 into Development
good for testing phase
2025-07-29 15:18:37 -04:00
mschill 09d3995e6c C2025-044 Update PROMS Fixes to be SQL 2016 compatible 2025-07-29 15:12:51 -04:00
jjenko db20385a6d Merge pull request 'DEV_Proj_File_Dependency_Update' (#578) from DEV_Proj_File_Dependency_Update into Development
Good to use. - no testing required this update is for developers only.
2025-07-29 10:06:11 -04:00
mschill d701935ddf DEV_Proj_File_Dependency_Update
Visual Studio 2022 changed the default build order --- this will alow rebuild all in VS2022
2025-07-29 09:21:51 -04:00
plarsen d3888e3c32 C2025-027-AnnotationsTypeSelect 2025-07-29 09:20:58 -04:00
mschill 94f0795247 Merge pull request 'B2025-039 Needed to include the Blue color to the RTF color table for formats that use a proportional font.' (#577) from B2025-039_PropFontColorRplWrds into Development
Looks Good.

Ready for QA Testing.
2025-07-28 16:14:29 -04:00
jjenko 4def73d738 B2025-039 Needed to include the Blue color to the RTF color table for formats that use a proportional font. 2025-07-28 16:06:55 -04:00
plarsen 99445406fc C2025-027-AnnotationsTypeSelect 2025-07-25 23:06:50 -04:00
mschill 8c32d18aec C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-Unit RO Resolution
2025-07-24 08:08:18 -04:00
mschill 20c31153de C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-Unit RO Resolution
2025-07-23 15:26:45 -04:00
plarsen 025fa57e24 Merge remote-tracking branch 'origin/Development' into C2025-027-AnnotationsTypeSelect 2025-07-22 09:13:11 -04:00
plarsen 6f04d0bf07 C2025-027-AnnotationsTypeSelect 2025-07-22 09:06:11 -04:00
mschill ecb9a805e5 C2025-024 Electronic Procedures Phase 2 - XML Export
UI / menu filtering for EP only procedures
2025-07-21 13:47:23 -04:00
mschill 0577acad93 C2025-024 Electronic Procedures Phase 2 - XML Export
Removed unnecessary usings
2025-07-18 16:13:16 -04:00
mschill d7f83fa4d4 C2025-024 Electronic Procedures Phase 2 - XML Export
Export Cleanup
2025-07-18 14:52:05 -04:00
mschill 4c4f4d52d2 C2025-024 Electronic Procedures Phase 2 - XML Export
Code refactor and added comment
2025-07-18 13:26:16 -04:00
mschill 0bf9025c0d C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-unit
2025-07-17 13:59:11 -04:00
plarsen 7a0f56cad8 C2025-027-AnnotationsTypeSelect 2025-07-16 15:03:32 -04:00
mschill 2784b57a05 C2025-023 - Electronic Procedures - Modifications to PROMS
Working on multiunit for DB Sequence
2025-07-16 14:23:55 -04:00
mschill b9fc9748c7 C2025-024 Electronic Procedures Phase 2 - XML Export
set RO Location code for pre-existing RO usages
2025-07-16 10:09:01 -04:00
plarsen c98299d916 C2025-027-AnnotationsTypeSelect 2025-07-15 23:32:31 -04:00
plarsen f6e25fd966 C2025-027-AnnotationsTypeSelect 2025-07-15 23:14:26 -04:00
jjenko 557b9429bf Merge pull request 'F2025-017 Created a new cover page type for Wolf Creek Single Column format.' (#575) from General_Debugging into Development
Format only change- ready for testing
2025-07-15 15:34:24 -04:00
jjenko 139f7bbd0a F2025-017 Created a new cover page type for Wolf Creek Single Column format. 2025-07-15 15:25:52 -04:00
mschill ec25f6426a C2025-024 Electronic Procedures Phase 2 - XML Export
Export code cleanup and initial set RO Location code
2025-07-15 13:43:19 -04:00
mschill 00283b4f28 C2025-024 Electronic Procedures Phase 2 - XML Export
Export code cleanup and initial set RO Location code
2025-07-15 13:31:12 -04:00
plarsen e08b5cde69 C2025-027-AnnotationsTypeSelect 2025-07-11 16:08:14 -04:00
mschill ec8e4c36a4 C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
RO image resolution for Annotations
2025-07-11 15:26:22 -04:00
mschill 07c7718320 Merge pull request 'C2025-038 Code cleanup to prevent multiple events from being assigned to the same method.' (#573) from C2025-038_EventCalls into Development
Looks good - ready for QA testing.
2025-07-10 11:23:25 -04:00
jjenko 2953e977ef C2025-038 Code cleanup to prevent multiple events from being assigned to the same method. 2025-07-10 10:47:06 -04:00
mschill 92522b1229 C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
Initial check-in / adding ui options / base for export
2025-06-30 14:32:24 -04:00
jjenko 9ef9dcd7b9 Merge pull request 'F2025-016 fixed the Open Bullet with Blank Line "o" designator to use the greek "o" lower cased omicron symbol' (#572) from F2025-016 into Development
Format only change.  good for testing
2025-06-26 16:08:44 -04:00
jjenko 5fd8096ef0 F2025-016 fixed the Open Bullet with Blank Line "o" designator to use the greek "o" lower cased omicron symbol 2025-06-26 16:08:21 -04:00
jjenko 5f59543a14 Merge pull request 'B2025-035-Hold-Procedure-Set-Bug' (#571) from B2025-035-Hold-Procedure-Set-Bug into Development
good for testing phase
2025-06-25 08:28:02 -04:00
plarsen d44593d6d4 B2025-035-Hold-Procedure-Set-Bug 2025-06-24 19:48:48 -04:00
jjenko 38744ff8e8 Merge pull request 'C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)' (#565) from C2025-023 into Development
good for testing phase
2025-06-23 08:32:55 -04:00
mschill 83e935a3f4 C2025-023 updated revision wording 2025-06-20 15:36:08 -04:00
mschill 4d96e73866 Remove from checkin - should be in phase 2 2025-06-20 14:39:42 -04:00
mschill a55ce75e2e C2025-023 Bringing branch up to date to resolve merge conflicts 2025-06-20 14:33:58 -04:00
mschill c45dbf1dac Resolved merge conflicts with Development 2025-06-20 14:29:18 -04:00
mschill 2d08629608 C2025-023 attempt to resolve merge conflict 2025-06-20 13:56:41 -04:00
mschill 49bc67a64f Merge pull request 'C2025-036 - Cleaned up logic in PROMS code that generates the step/sub-step tabs to reduce un-needed processing in certain cases' (#569) from C2025-036_CleanupTabCode into Development
Looks good. Ready for QA testing.
2025-06-18 09:29:10 -04:00
jjenko abec4d9281 C2025-036 - Cleaned up logic in PROMS code that generates the step/sub-step tabs to reduce un-needed processing in certain cases 2025-06-18 09:20:17 -04:00
jjenko 149bc601e2 Merge pull request 'B2025-034-Add-error-message-documents-2' (#568) from B2025-034-Add-error-message-documents-2 into Development
good for testing phase
2025-06-12 08:36:28 -04:00
plarsen 66deede936 B2025-034-Add-error-message-documents-2 2025-06-11 18:24:59 -04:00
jjenko 0df5511bf7 Merge pull request 'B2025-034-Add-error-message-documents' (#567) from B2025-034-Add-error-message-documents into Development
good for testing phase
2025-06-11 08:42:44 -04:00
plarsen 2e68218cfe B2025-034-Add-error-message-documents 2025-06-10 16:34:22 -04:00
plarsen 80f3568dbd Merge pull request 'F2025-015 Shearon Harris add sub-steps in Notes and Cautions and to add an Open Bullet sub-step type in both the EOP and AOP formats.' (#566) from F2025-015_SharonHarris into Development
Reviewed-on: #566
2025-06-03 11:43:26 -04:00
jjenko 5fd0ff9e71 F2025-015 Shearon Harris add sub-steps in Notes and Cautions and to add an Open Bullet sub-step type in both the EOP and AOP formats. 2025-06-03 10:46:41 -04:00
jjenko 4dcfa05157 Merge pull request 'B2025-024-Document-Unit-Print' (#564) from B2025-024-Document-Unit-Print into Development
good for testing phase
2025-05-29 10:14:00 -04:00
jjenko 42648f31a5 Merge pull request 'C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed.' (#563) from C2025-021 into Development
Good for testing phase
2025-05-29 10:06:34 -04:00
plarsen e0b628dce9 B2025-024-Document-Unit-Print 2025-05-28 18:19:24 -04:00
mschill 6e9c7e28e6 C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed.
Make Inactive by Default
2025-05-28 14:37:14 -04:00
mschill ac091a7d26 C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed. 2025-05-28 14:15:21 -04:00
plarsen 8f31532917 C2025-023-Format2-Update 2025-05-27 10:56:14 -04:00
mschill 612e7955cf Merge pull request 'F2024-089 - Barakah requested a newly formatted Cover page section style to make room for new Corporate Logo.' (#561) from F2024-089_BNPP_LOGO into Development
Looks good.
Ready for QA.
2025-05-23 09:08:51 -04:00
jjenko ce92031ff7 F2024-089 - Barakah requested a newly formatted Cover page section style to make room for new Corporate Logo. 2025-05-22 15:05:27 -04:00
mschill 5a7e63871d C2025-023 - Electronic Procedures - Modifications to PROMS
Simplified to textboxes as RTF was impacting possible tags / directories
2025-05-21 09:34:07 -04:00
plarsen 7ade7f6e24 Merge pull request 'C2025-023-New-EP-Format-File' (#560) from C2025-023-New-EP-Format-File into C2025-023
Reviewed-on: #560
2025-05-20 17:21:25 -04:00
plarsen e470ef0553 C2025-023-New-EP-Format-File 2025-05-20 16:53:16 -04:00
jjenko fb01a4f8df Merge pull request 'C2025-013 Option to Disable “Message Prompt when a Summary will open in MS Word”' (#558) from C2025-013 into Development
good for testing phase
2025-05-19 15:44:18 -04:00
mschill eacdca8669 C2025-013 Option to Disable “Message Prompt when a Summary will open in MS Word” 2025-05-19 15:37:46 -04:00
jjenko df97a6dd01 Merge pull request 'C2025-028 Add a Quick Print Section option / B2025-032 Fix Section not Printing Applicability Properly' (#557) from C2025-028_B2025-032 into Development
good for testing phase
2025-05-16 15:37:01 -04:00
mschill 0259d4ff1d C2025-028 Add a Quick Print Section option / B2025-032 Fix Section not Printing Applicability Properly
Added an option to quick print a section.

Fixed a bug where: If you went to a section that had Applicability and select "Print Section" for a specific unit, it would sometimes print all units.
2025-05-16 14:10:56 -04:00
mschill f71e9938bb Merge pull request 'C2025-033 Added a new field and supporting logic to specify if a PageStyle item should be printed for the Child procedure being printed.' (#556) from DemoFormats into Development
Looks good.
Ready for QA.
2025-05-16 11:01:18 -04:00
jjenko 69f8e3f4fc C2025-033 Added a new field and supporting logic to specify if a PageStyle item should be printed for the Child procedure being printed. 2025-05-16 10:52:37 -04:00
mschill f49c888307 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Changed linq to use builtin Find method per code analyzer recommendation
2025-05-15 10:57:28 -04:00
mschill 04a2da4371 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Change to not show open button if is an invalid step type
2025-05-15 10:45:52 -04:00
jjenko 59372b23e4 Merge pull request 'B2025-028 RO Editor - Parent Child Applicability - Default Values' (#554) from B2025-028 into Development
good for testing phase
2025-05-15 10:41:40 -04:00
mschill 2970c0d7d4 B2025-028 RO Editor - Parent Child Applicability - Default Values
While working with parent/child applicability with child applicability set for a setpoint group - assign the Setpoint Values and Short Description fields to have Child values.  All child values default to their parent values as expected.  However, if you click in the Parent field for the Short Description, the Child Values for the Short Description fields incorrectly defaulted to the Parent Setpoint Value instead of keeping the parent Short Description.
2025-05-15 10:28:47 -04:00
jjenko 392f1b09b2 Merge pull request 'C2025-031 Fixed typos found in Tool Tip message from previous check-in of this code change' (#553) from C2025_031_OptionsTooltips_Cleanup into Development
Change just fixes typos in tool tip messages.  No code review needed.
Ready for testing phase
2025-05-15 09:03:53 -04:00
jjenko 79f66e9641 C2025-031 Fixed typos found in Tool Tip message from previous check-in of this code change 2025-05-15 09:01:43 -04:00
jjenko e90fceca86 Merge pull request 'B2025-031 Improve wording for if attempting to delete copied section' (#552) from B2025-031 into Development
good for testing phase
2025-05-15 08:40:23 -04:00
mschill 24d5cee8b4 B2025-031 Improve wording for if attempting to delete copied section
When an attempt is made to delete a section in the edit window that has been copied, the "Attempting to delete copied step" message box appears.   This message box is incorrect because you're attempting to delete the section, not a step in the section.   This only happens on a section that has been copied.
2025-05-15 07:34:19 -04:00
mschill 31f608a9ec C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Change to not show open button if using a format that is not attached to an EP format file.
2025-05-14 15:05:58 -04:00
jjenko 1ba4c4f343 Merge pull request 'B2025-028 RO Editor - Parent Child Applicability - Default Values' (#551) from B2025-028 into Development
ready for testing phase
2025-05-14 11:49:10 -04:00
mschill 700d9656b2 B2025-028 RO Editor - Parent Child Applicability - Default Values
While working with parent/child applicability with child applicability set for a setpoint group - assign the Setpoint Values and Short Description fields to have Child values.  All child values default to their parent values as expected.  However, if you click in the Parent field for the Short Description, the Child Values for the Short Description fields incorrectly defaulted to the Parent Setpoint Value instead of keeping the parent Short Description.
2025-05-14 11:42:51 -04:00
mschill 0c17d9abc2 Merge pull request 'C2025-031 - Added Tool Tip text for button on V button. Code fix for DotNetBar Visual UI rendering' (#550) from C2025_031_OptionsTooltips_Cleanup into Development
looks good. Ready for QA.
2025-05-13 16:09:26 -04:00
jjenko 2c1476b74c C2025-031 - Added Tool Tip text for button on V button. Code fix for DotNetBar Visual UI rendering 2025-05-13 16:03:44 -04:00
jjenko 0fa71727ac Merge pull request 'B2025-030 Show Cannot restore wording if restoring Annotation with a deleted annotation type.' (#549) from B2025-030 into Development
good for testing phase
2025-05-13 14:27:23 -04:00
mschill 20cacf26ae B2025-030 Show Cannot restore wording if restoring Annotation with a deleted annotation type. 2025-05-13 14:17:57 -04:00
jjenko 1d406b0c7e Merge pull request 'C2025-032 Add check if user is sure want to paste replace section.' (#548) from C2025-032 into Development
good for testing phase
2025-05-13 10:56:51 -04:00
mschill a099d27b86 C2025-032 Add check if user is sure want to paste replace section. 2025-05-13 08:19:23 -04:00
mschill 3e53ec9191 C2025-023 - Electronic Procedures - Modifications to PROMS
Small change to handle removed items that were selected.
2025-05-13 07:48:50 -04:00
mschill 637cbd9954 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
RO/table entry - Dev Testing related changes
2025-05-08 10:18:50 -04:00
jjenko 717251ca5e Merge pull request 'Added PROMS Demo Fromats and dded a checkbox on the Copy Formats dialog to include the PROMS Demo formats.' (#547) from DemoFormats into Development
Developer tool update and PROMS Demo formats.
Not testing required.
2025-05-06 14:43:00 -04:00
jjenko 5d3bb41275 Added PROMS Demo Fromats and dded a checkbox on the Copy Formats dialog to include the PROMS Demo formats. 2025-05-06 14:41:50 -04:00
mschill e5211fee00 Merge pull request 'F2025-012 Format changes are needed to account for ABN procedures.' (#546) from F2025-012 into Development
Format change only - per John, no review needed.

Reviewed-on: #546
2025-05-05 14:37:14 -04:00
mschill 41cb078a94 F2025-012 Format changes are needed to account for ABN procedures.
In the ERG and ABN format, Attachment Step Editor (Two Column), the following changes need made:
- add a blank line between the Initial Action Step and the following high level step
- need the ability to insert sub-steps off of the Initial Action Step
- adjust extra line spacing above Initial Action Steps
- add a step designator in the edit window to indicate an Immediate Action Step
2025-05-05 14:36:23 -04:00
jjenko 0a5e4076e1 Merge pull request 'B2025-026 - AND Substeps are Printing as Sequential Substeps in the ERG format /' (#545) from B2025-026_B2025-027 into Development
good for testing
2025-05-05 08:48:11 -04:00
mschill c3534e21fa B2025-026 - AND Substeps are Printing as Sequential Substeps in the ERG format /
B2025-027 - Bottom Continue message now appears due to the AND step type being now sequential and step compression being shut off
2025-05-05 08:31:21 -04:00
mschill e9e934cfb1 C2025-023 - Electronic Procedures - Modifications to PROMS
RO input functionality
2025-05-02 11:46:55 -04:00
mschill a417ddda85 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
RO Graphics Item Adjustment
2025-04-30 11:25:18 -04:00
jjenko 06159c6b68 Merge pull request 'F2025-011 Format changes are needed to account for ABN procedures.' (#542) from F2025-011 into Development
good for testing phase
2025-04-30 09:55:55 -04:00
mschill 22c14d169b F2025-011 Format changes are needed to account for ABN procedures.
Adjustments to PSI location and Abnormal Procedure Steps Sections
2025-04-30 09:50:09 -04:00
mschill f273a8839a C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Overlapping of textbox controls
2025-04-29 10:50:59 -04:00
jjenko db09db3cd0 Merge pull request 'F2025-011 Format changes are needed to account for ABN procedures.' (#541) from F2025-011 into Development
ready for testing phase
2025-04-28 13:33:44 -04:00
mschill ba8a8b8673 F2025-011 Format changes are needed to account for ABN procedures. 2025-04-28 12:08:10 -04:00
mschill 62ae81c7b3 C2025-023 - Electronic Procedures - Modifications to PROMS
Working on Adding functionality for EP input for tables #2
2025-04-25 15:07:29 -04:00
mschill 6db9567eb9 C2025-023 - Electronic Procedures - Modifications to PROMS
Working on Adding functionality for EP input for tables
2025-04-23 07:42:28 -04:00
mschill 8ef08c53b3 C2025-023 - Electronic Procedures - Modifications to PROMS
1. undo changes to store checkbox/textbox in cell grid
2. change to use roid as key for RO listbox items
2025-04-11 10:12:37 -04:00
jjenko 6f354bfeee Merge pull request 'B2025-010 - Adjusted the positioning of the procedure title in the Catawba Deviation Format so that it is centered' (#539) from B2025-010 into Development
Format only change.  Ready for testing
2025-04-11 09:14:38 -04:00
jjenko 818d764b3d B2025-010 - Adjusted the positioning of the procedure title in the Catawba Deviation Format so that it is centered 2025-04-11 09:11:02 -04:00
mschill 9fdbdb05f4 C2025-023 - Electronic Procedures - Modifications to PROMS (checkin 4 - added some comments) 2025-04-10 09:05:42 -04:00
mschill d392131005 C2025-023 - Electronic Procedures - Modifications to PROMS (checkin #3 - fix winforms select first item bug in listboxes) 2025-04-10 08:53:27 -04:00
mschill 389b9e382b C2025-023 - Electronic Procedures - Modifications to PROMS - checkin #2 2025-04-09 15:22:36 -04:00
mschill 6fd84e2f2a C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1) 2025-04-08 10:54:19 -04:00
jjenko 689ea71846 Merge pull request 'B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search-2' (#538) from B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search-2 into Development
good for testing phase
2025-04-07 14:05:24 -04:00
plarsen 66295594e9 B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search-2 2025-04-07 13:46:28 -04:00
jjenko 042b80b9f4 Merge pull request 'B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search' (#537) from B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search into Development
Good for testing phase
2025-04-07 10:59:46 -04:00
plarsen c4da241516 B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search 2025-04-07 10:48:40 -04:00
plarsen 74ccbfa760 B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search 2025-04-04 13:13:28 -04:00
plarsen 46d8838d0e B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search 2025-04-04 10:48:48 -04:00
jjenko 94d2c32025 Merge pull request 'Added the format file used for the pre-tend ACME data which is used when updating the PROMS User Manual' (#536) from ACME_formats into Development
format used internally when working on the PROMS User Manual
2025-04-04 10:40:40 -04:00
jjenko 64124cc0f7 Added the format file used for the pre-tend ACME data which is used when updating the PROMS User Manual 2025-04-04 10:38:26 -04:00
plarsen 24c5bc5097 B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search 2025-04-03 18:01:13 -04:00
plarsen 1ffde5de50 B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search 2025-04-03 14:20:21 -04:00
jjenko 3828da2f8f Merge pull request 'C2024-041-Disable-UCF-(User-Control-of-Format)-options-3' (#534) from C2024-041-Disable-UCF-(User-Control-of-Format)-options-3 into Development
good for testing phase
2025-03-24 08:15:21 -04:00
plarsen 1554d3cc33 C2024-041-Disable-UCF-(User-Control-of-Format)-options-3 2025-03-23 19:35:06 -04:00
jjenko d808b306b6 Merge pull request 'C2024-041-Disable-UCF-(User-Control-of-Format)-options-2' (#533) from C2024-041-Disable-UCF-(User-Control-of-Format)-options-2 into Development
good for testing phase
2025-03-21 08:18:08 -04:00
plarsen 45aeb808fa C2024-041-Disable-UCF-(User-Control-of-Format)-options-2 2025-03-20 17:06:28 -04:00
jjenko 74f9fc0c18 Merge pull request 'F2025-004 Customer requested the addition of a Two Column Attachment section type' (#531) from F2025-004_Ginna into Development
Format only change.  Good for testing phase
2025-03-06 16:15:32 -05:00
jjenko c2c90a2c2e F2025-004 Customer requested the addition of a Two Column Attachment section type 2025-03-06 16:13:52 -05:00
jjenko 05ab077dda Merge pull request 'B2025-017-Print-Section-Sub-Section-v2' (#529) from B2025-017-Print-Section-Sub-Section-v2 into Development
good for testing phase
2025-02-28 08:16:52 -05:00
plarsen 1ae422c74e B2025-017-Print-Section-Sub-Section-v2 2025-02-27 19:16:47 -05:00
jjenko 5da62c3a5d Merge pull request 'Updated the developer tool that copied the format files to the FMTall an GENMACall folders. Added a list box to show what format files will not be copied.' (#528) from DeveloperToolUpdate into Development
This is an update to a tool that the developers use and is not released to the customers.
No testing required,
2025-02-27 11:21:53 -05:00
jjenko 86a98118fb Updated the developer tool that copied the format files to the FMTall an GENMACall folders. Added a list box to show what format files will not be copied. 2025-02-27 11:20:31 -05:00
mschill 6a51208a13 Merge pull request 'B2025-020 Fixed NULL reference error while running the Refresh Transitions administrator tool.' (#527) from B2025-020_UpdateTransitions into Development
Looks good.
Ready for QA.
2025-02-26 11:48:06 -05:00
jjenko 0749f5e724 B2025-020 Fixed NULL reference error while running the Refresh Transitions administrator tool. 2025-02-26 11:07:17 -05:00
jjenko f65644f553 Merge pull request 'B2025-018 PROMS - Issues with folder order in tree view.' (#526) from B2025-018 into Development
good for testing phase
2025-02-21 16:05:19 -05:00
mschill dc74da6e86 B2025-018 PROMS - Issues with folder order in tree view. 2025-02-21 15:52:16 -05:00
jjenko 301c4c2c97 Merge pull request 'C2025-019 RO Editor - Update the Orphaned RO Record text file to save in the current RO folder instead of the users appdata folder.' (#525) from C2025-019 into Development
Good for testing phase.
2025-02-20 16:04:06 -05:00
mschill 8ec820a7f7 C2025-019 RO Editor - Update the Orphaned RO Record text file to save in the current RO folder instead of the users appdata folder.
Found while using the WEP ROMOD database and the ROEPU folder.
Note for Word doc:  Update D.2.10 in the PROMS Manual for this update
2025-02-20 15:54:29 -05:00
jjenko 18734e0f85 Merge pull request 'B2025-015 RO Editor - PROMS will get stuck in a loop (hang) while placing RO.FST information in the plant database (loading RO's) when Unit Values contain brackets. Example is Point Beach data.' (#523) from B2025-015 into Development
good for testing phase
2025-02-20 10:08:52 -05:00
mschill 9980504c47 B2025-015 RO Editor - PROMS will get stuck in a loop (hang) while placing RO.FST information in the plant database (loading RO's) when Unit Values contain brackets. Example is Point Beach data.
Some of Point Beach RO's have curly braces in the RO return value for the units in P/C.  Found this on some (5-7) Annunciator RO values.  The definition of the return value (multiple return values) uses curly braces so PROMS cannot distinguish between brackets being part of a unit value or part of the format for multiple return values.

Equipment Designation, Main Steam (MS), Annunciators have examples of return values with curly braces.  Look at the Referenced Object Definition on the Annunciators tree node for the definition of the return value.
2025-02-20 10:03:05 -05:00
mschill 626960da9f Merge pull request 'C2025-014 The zoom setting on step level bookmarks in generated PDFs will now jump to the page containing the step (like it does when a section bookmark is selected) instead of zooming in on the step.' (#522) from C2025-014_PDF_Step_BckMrk_Zoom into Development
Looks Good - Ready for QA testing
2025-02-18 15:52:52 -05:00
jjenko 535728b982 C2025-014 The zoom setting on step level bookmarks in generated PDFs will now jump to the page containing the step (like it does when a section bookmark is selected) instead of zooming in on the step. 2025-02-18 15:39:55 -05:00
jjenko ace9672a2e Merge pull request 'B2025-019 RO Editor - When selecting an RO Definition, clicking the X in the corner or selecting Cancel prompts you to verify you want to close without saving changes when no changes were made if there is Parent/Child & applicability was never set for …' (#521) from B2025-019 into Development
good for testing phase (remember to build the Reference Objects project)
2025-02-18 15:38:10 -05:00
mschill 05a13861ac B2025-019 RO Editor - When selecting an RO Definition, clicking the X in the corner or selecting Cancel prompts you to verify you want to close without saving changes when no changes were made if there is Parent/Child & applicability was never set for the in-use fields. 2025-02-18 15:21:19 -05:00
jjenko 24374b85c1 Merge pull request 'C2024-038 - Bringing date control to the front so left side of box shows' (#520) from C2024-038_v2 into Development
good for testing phase
2025-02-18 09:01:05 -05:00
mschill 8c358f1e3c C2024-038 - Bringing date control to the front so left side of box shows 2025-02-18 07:42:35 -05:00
jjenko 289285f517 Merge pull request 'F2025-002 Per customer, remove the newly added Action Verbs from the PROMS ReplaceWords list.' (#519) from F2025-002_Farley into Development
Format only change.  Good for testing.
2025-02-17 15:12:22 -05:00
jjenko 3ee9e0f4eb F2025-002 Per customer, remove the newly added Action Verbs from the PROMS ReplaceWords list. 2025-02-17 15:12:06 -05:00
jjenko d6c924a51f Merge pull request 'B2025-016 – Quick Print Shortcut Key' (#518) from B2025-016 into Development
good for testing phase
2025-02-17 08:41:17 -05:00
mschill 3a739c5b64 B2025-016 – Quick Print Shortcut Key
Found during Functional Testing:
Using "ALT R" shortcut key shows that Quick Print PDF & Create PDF both then have "P" as their shortcut. Kept Create PDF/Print as Ctrl-P. Changed Quick Print to be shortcut of Ctrl-Q.
2025-02-17 08:21:16 -05:00
jjenko 3564f4ba8e Merge pull request 'C2024-038 PROMS – Summary of Changes report generation enhancements' (#517) from C2024-038 into Development
Good for testing phase
2025-02-14 15:21:08 -05:00
mschill 5ad9d81cc1 C2024-038 PROMS – Summary of Changes report generation enhancements
This is an upgrade item to add a method to exclude annotations and a way run the summary of changes report from a specific date.
2025-02-14 15:10:40 -05:00
jjenko 0292634374 Merge pull request 'We are reverting back to the last DotNetBar install. We found issues on the developer side of maintaining the dialogs and forms in PROMS.' (#515) from OrgDotNetBar into Development
Software Development Environment update.  No source control document  needed.
2025-02-11 15:06:39 -05:00
jjenko d4418b8d8a We are reverting back to the last DotNetBar install. We found issues on the developer side of maintaining the dialogs and forms in PROMS. 2025-02-11 15:02:58 -05:00
jjenko a33f136e77 Merge pull request 'B2025-011-Global-search-is-not-finding-question-marks' (#514) from B2025-011-Global-search-is-not-finding-question-marks into Development
good for testing phase
2025-02-11 09:07:12 -05:00
jjenko f85f8e9e2c Merge pull request 'B2025-013 PROMS –Admin Tool Tree Behavior' (#513) from B2025-013 into Development
good for testing phase
2025-02-10 11:04:07 -05:00
mschill 01541c9e0d B2025-013 PROMS –Admin Tool Tree Behavior 2025-02-10 10:57:01 -05:00
plarsen 4bfffc945a Merge remote-tracking branch 'origin/Development' into B2025-011-Global-search-is-not-finding-question-marks 2025-02-10 10:23:24 -05:00
plarsen 16509c2eab B2025-011-Global-search-is-not-finding-question-marks 2025-02-09 22:44:01 -05:00
jjenko bc1f85b657 Merge pull request 'DotNet 4.8.1 build of DotNetBar' (#511) from DotNetBar_net4.8.1 into Development
.Net 4.8.1 build of Dot Net Bar's dll
2025-02-07 10:36:55 -05:00
jjenko 6b0a5d60f4 DotNet 4.8.1 build of DotNetBar 2025-02-07 10:35:23 -05:00
jjenko 33439b63a0 Merge pull request 'Using Net 4.8.1 build of CSLA' (#510) from CLSA481Build into Development
.Net 4.8.1 build of CSLA.dll.
testing will be done during User Manual Updates and baseline print testing.
2025-02-06 16:04:27 -05:00
jjenko bb24d1207d Using Net 4.8.1 build of CSLA 2025-02-06 15:57:41 -05:00
jjenko 8fc477ec04 Merge pull request 'B2025-014 PROMS – RO Update Admin Tool Error when updating RO containing carats/deltas' (#509) from B2025-014 into Development
good for testing phase
2025-02-05 14:03:18 -05:00
mschill bf06c9e14f B2025-014 PROMS – RO Update Admin Tool Error when updating RO containing carats/deltas
While testing an update for C2025-0011, using BNPP data and ROs, the update ro values crashes at the next to the last procedure set which is folder called "PROMS Tests." It crashes with a null reference as it is not able to detect the format. This is to change this to use the “ActiveFormat” of the Working Folder instead of utilizing “MyFormat”.
2025-02-05 13:34:18 -05:00
jjenko 5a263107da Merge pull request 'B2025-012 PROMS – Searching Step Elements – All Step Types' (#507) from B2025-012 into Development
good for testing phase
2025-02-05 10:01:13 -05:00
mschill d30bb2e329 B2025-012 PROMS – Searching Step Elements – All Step Types
When searching for step elements (the Find Selected Step Elements option is selected) and "All Types." Is selected for step types, you incorrectly get the "No Types Selected" message box when clicking on search.
2025-02-05 08:38:18 -05:00
jjenko 8248bd8e47 Merge pull request 'C2025-011 PROMS – RO Update Admin Tool Memory Enhancements' (#506) from C2025-011 into Development
good for the testing phase
2025-02-04 13:47:24 -05:00
mschill 378653c536 C2025-011 PROMS – RO Update Admin Tool Memory Enhancements
The purpose of this upgrade is to improve the user experience when using the Admin tool to Update ROs. Currently for larger RO dbs (like Barakah) we can run up against memory constraints that do not allow all the ROs to be updated at one time. This is based upon some initial resource where some places were identified where we could improve memory usage.  Some of these should benefit PROMS as a whole while others will be specific to the RO Update option in Admin Tools.
2025-02-04 13:23:21 -05:00
jjenko f2d330bd0e Merge pull request 'F2025-001 Barakah provided us with format changes to add more signoffs to the "BNPP Single Column Format - 2021" in which they had made.' (#505) from F2025-001_BNPP into Development
format only change - ready for testing
2025-02-03 13:41:58 -05:00
jjenko c1c93cbdc4 F2025-001 Barakah provided us with format changes to add more signoffs to the "BNPP Single Column Format - 2021" in which they had made. 2025-02-03 13:40:18 -05:00
jjenko 47a14e143e Merge pull request 'C2019-025_Ability-to-Toggle-Replace-Words-3' (#503) from C2019-025_Ability-to-Toggle-Replace-Words-3 into Development
good for testing phase
2025-01-30 09:26:20 -05:00
plarsen b7aa85f4fc C2019-025_Ability-to-Toggle-Replace-Words-3 2025-01-30 09:22:51 -05:00
plarsen 90e25f3fcf C2019-025_Ability-to-Toggle-Replace-Words-3 2025-01-30 09:09:39 -05:00
jjenko d67e81d8a6 Merge pull request 'C2025-005 PROMS – Searching Step Elements' (#502) from C2025-005 into Development
good for testing phase
2025-01-29 15:31:59 -05:00
mschill 057915baaa C2025-005 PROMS – Searching Step Elements
When searching for step elements (the Find Selected Step Elements option is selected) and multiple procedure sets are selected, but the procedure sets use different formats, PROMS puts a message in the Results area that says "folders selected contain multiple formats". Need to expand this messaging to provide more clear information regarding which formats are causing the issue, so that they can more easily decide which sets to de-select rather than doing so randomly.  There is also a refresh issue where deselecting everything, it will not always refresh properly.
2025-01-29 15:26:29 -05:00
jjenko fe268b6122 Merge pull request 'C2019-025_Ability-to-Toggle-Replace-Words-2' (#501) from C2019-025_Ability-to-Toggle-Replace-Words-2 into Development
good for testing phase
2025-01-29 15:04:09 -05:00
plarsen ca61597863 C2019-025_Ability-to-Toggle-Replace-Words-2 2025-01-29 14:21:14 -05:00
jjenko a04def360d Merge pull request 'B2025-010 PROMS – Change ID Issues' (#500) from B2025-010 into Development
good for testing phase
2025-01-28 09:05:28 -05:00
mschill 5e43a8501b B2025-010 PROMS – Change ID Issues
Removing the change id via backspaces in the change id box in the step properties panel can cause PROMS to crash. Also, it doesn’t always remove the change id properly. Changing this to instead of updating every time text changes in the box, adding a save button. Also, adding some null exception error handling.
2025-01-27 16:09:19 -05:00
jjenko e893264075 Merge pull request 'C2019-025_Ability-to-Toggle-Replace-Words' (#499) from C2019-025_Ability-to-Toggle-Replace-Words into Development
OK for testing phase
2025-01-27 15:51:01 -05:00
plarsen cf20704811 C2019-025_Ability-to-Toggle-Replace-Words 2025-01-27 15:45:09 -05:00
plarsen 37c5b23a86 C2019-025_Ability-to-Toggle-Replace-Words 2025-01-27 13:38:48 -05:00
jjenko 82d8fe6e17 Merge pull request 'B2025-005 PROMS - Change Reports - Invalid Transitions showing Incorrectly' (#498) from B2025-005 into Development
good for testing phase
2025-01-24 15:53:37 -05:00
mschill 4ca3697845 B2025-005 PROMS - Change Reports - Invalid Transitions showing Incorrectly 2025-01-24 15:29:07 -05:00
plarsen 71130bd26b C2019-025_Ability-to-Toggle-Replace-Words 2025-01-24 10:12:43 -05:00
jjenko 37626d8f45 Merge pull request 'C2025-008 RO Editor – Remove redundant Save Failed message box' (#497) from C2025-008 into Development
Good for testing phase
2025-01-24 08:36:04 -05:00
mschill f95369d3a4 C2025-008 RO Editor – Remove redundant Save Failed message box 2025-01-24 08:02:24 -05:00
jjenko aa00891f8e Merge pull request 'B2025-008 PROMS - Display RO Step Properties - RO Tables' (#496) from B2025-008 into Development
good for testing phase
2025-01-23 16:13:56 -05:00
mschill d44f9ba2b6 B2025-008 PROMS - Display RO Step Properties - RO Tables 2025-01-23 15:50:52 -05:00
jjenko c3b7b1e5a4 Merge pull request 'B2025-007 RO Editor – RO Figure Default File extension' (#495) from B2025-007 into Development
good for testing phase
2025-01-23 11:06:24 -05:00
mschill f3309e4a40 B2025-007 RO Editor – RO Figure Default File extension 2025-01-23 11:02:15 -05:00
jjenko 8fa059c186 Merge pull request 'C2025-007 ROEditor - PROMPT to Confirm Deletion' (#494) from C2025-007 into Development
good for testing phase
2025-01-22 13:31:24 -05:00
mschill 96e61aea2b C2025-007 ROEditor - PROMPT to Confirm Deletion
When deleting a group or an RO in the RO Editor, consider adding a prompte for the user asking if they are sure they want to delete the ro/group.  Perhaps also add text to the message saying they may want to consider creating a zip file of the RO folder prior to deleting ROs/groups.
2025-01-22 12:45:27 -05:00
jjenko 565779c9c8 Merge pull request 'B2025-009 RO Editor - Disable the Save As button if it is a new RO that has not been saved yet.' (#493) from B2025-009 into Development
change ready for testing
2025-01-22 12:01:04 -05:00
mschill b4ccd682c3 B2025-009 RO Editor - Disable the Save As button if it is a new RO that has not been saved yet.
Adding a new RO:  when you click Save As, you get the Problem Saving Data message box. Should only be able to “Save As” if it has already been previously saved.
2025-01-22 11:57:57 -05:00
jjenko dba1331556 Merge pull request 'B2025-004 Remove dependency on stored procedure (GetDisplayTabdata).' (#492) from B2025-004_v2 into Development
changes good for testing phase
2025-01-22 10:39:24 -05:00
mschill 8803ae2274 B2025-004 Remove dependency on stored procedure (GetDisplayTabdata).
-- Found during testing that needed a few additional items that needed to not create hard errors
2025-01-22 10:35:44 -05:00
jjenko 69d09b7fc2 Merge pull request 'B2025-004 Remove dependency on stored procedure (GetDisplayTabdata).' (#491) from B2025-004 into Development
good for testing phase
2025-01-22 08:25:26 -05:00
jjenko 8ddfc8654e Merge pull request 'C2025-006_B2025-006 - C2025-006 RO Editor Figure wording update, B2025-006 RO Editor Figure Height or Width warning message update' (#490) from C2025-006_B2025-006 into Development
good for testing phase
2025-01-22 08:19:05 -05:00
mschill 7a3243e882 B2025-004 Remove dependency on stored procedure (GetDisplayTabdata). 2025-01-22 06:59:03 -05:00
mschill 4fc3b89e06 C2025-006_B2025-006 - C2025-006 RO Editor Figure wording update, B2025-006 RO Editor Figure Height or Width warning message update 2025-01-22 06:26:48 -05:00
jjenko a17419ac12 Merge pull request 'C2025-003 Enhanced Copy/Paste Upgrade - Add ability to copy/paste over enhanced master documents' (#487) from C2025-003 into Development
ready for testing phase
2025-01-21 10:48:00 -05:00
djankowski 88905132e7 Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2025-01-21 10:40:06 -05:00
mschill 111bed58d6 Merge pull request 'B2025-003 Chronology/Summary of Changes Reports' (#488) from B2025-003 into Development
Reviewed-on: #488

due to GIT restore from backup
2025-01-21 10:31:21 -05:00
mschill bed61324d6 C2025-003 Enhanced Copy/Paste Upgrade - Add ability to copy/paste over enhanced master documents 2025-01-20 14:43:54 -05:00
jjenko 1a889352b8 Merge pull request 'B2025-003 Chronology/Summary of Changes Reports' (#485) from B2025-003 into Development
ready for testing phase
2025-01-09 11:14:22 -05:00
mschill 5bba126a36 B2025-003 Chronology/Summary of Changes Reports 2025-01-09 11:08:30 -05:00
jjenko e01b955d46 Merge pull request 'F2024-088 - Per customer’s request, removed “Using”, “Faulted”, “Intact”, “Normal”, “On”, “Off”, “Locally”, “Manually”, “Fall”, “Rise”, and “Ruptured” from the ReplaceWords list' (#484) from F2024-088_FNP into Development
Format only change.  ready for testing phase
2024-12-17 09:48:30 -05:00
jjenko e3431b0e1e F2024-088 - Per customer’s request, removed “Using”, “Faulted”, “Intact”, “Normal”, “On”, “Off”, “Locally”, “Manually”, “Fall”, “Rise”, and “Ruptured” from the ReplaceWords list 2024-12-17 09:46:40 -05:00
jjenko b6d646b910 Merge pull request 'F2024-086 In the PROMS Manual format in the Attachments (Step Editor) With Border section type, the page number needs centered horizontally on the page (it's located between the section number and section title.' (#483) from F2024-086 into Development
good for testing phase
2024-12-12 08:44:08 -05:00
mschill bb679a2790 F2024-086 In the PROMS Manual format in the Attachments (Step Editor) With Border section type, the page number needs centered horizontally on the page (it's located between the section number and section title. 2024-12-12 08:36:29 -05:00
jjenko e3af0a6426 Merge pull request 'B2024-094 - Carats (as Deltas) print as question marks in tables when unit <u> is used in RO Definition Value' (#482) from B2024-094 into Development
good for testing phase
2024-12-12 08:33:12 -05:00
mschill b2108b9e5f B2024-094 - Carats (as Deltas) print as question marks in tables when unit <u> is used in RO Definition Value 2024-12-11 15:35:29 -05:00
jjenko d100002107 Merge pull request 'F2024-087 - Fixes printing sub-sections that go from continuous (single column sub-sections) to a separate (two column sub-section) so that the two column sub-section starts at the top of the page.' (#480) from F2024-097_Farley into Development
format only - good for testing phase
2024-12-11 11:14:44 -05:00
jjenko afd61303c5 F2024-087 - Fixes printing sub-sections that go from continuous (single column sub-sections) to a separate (two column sub-section) so that the two column sub-section starts at the top of the page. 2024-12-11 11:07:30 -05:00
jjenko d1c3e81a38 Merge pull request 'B2024-096 In the Ro Editor, allow <u> for a field name in the Referenced object Definition Return Value.' (#479) from B2024-096 into Development
good for testing phase
2024-12-10 09:00:22 -05:00
mschill 46419edfee B2024-096 In the Ro Editor, allow <u> for a field name in the Referenced object Definition Return Value. 2024-12-10 08:36:30 -05:00
jjenko 81c91d7866 Merge pull request 'C2024-037 Enhanced Print Section so that it can now be utilized for Sections that contain subsections.' (#478) from C2024-037 into Development
good for testing phase
2024-12-09 16:07:53 -05:00
mschill 34ee092919 C2024-037 Enhanced Print Section so that it can now be utilized for Sections that contain subsections.
Farley uses subsections in some of their AOP procedures.   The "Print Section" feature did not work for these sections - instead returning a message as if the pdf was already open.
2024-12-09 15:24:34 -05:00
jjenko d07344a88a Merge pull request 'B2024-095 In Admin Tools, added minimum heights to the left side panels above selecting items in the trees. Previously when the windows were resized the trees would overlap with buttons and notes.' (#477) from B2024-095 into Development
good for testing phase
2024-12-09 10:34:58 -05:00
mschill 66ae1c632b B2024-095 In Admin Tools, added minimum heights to the left side panels above selecting items in the trees. Previously when the windows were resized the trees would overlap with buttons and notes. 2024-12-09 08:00:15 -05:00
jjenko 7cc7b71edd Merge pull request 'B2024-067 Deleting Folders through Admin Tools missing some folders' (#476) from B2024-067 into Development
ready for testing phase
2024-12-05 15:51:32 -05:00
mschill a223dfd463 B2024-067 Deleting Folders through Admin Tools missing some folders 2024-12-05 15:27:46 -05:00
jjenko 61e8bc5ffa Merge pull request 'B2024-003_B2023-113_B2024-093 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in …' (#475) from B2024-003_B2023-113_B2024-093 into Development
good for testing phase
2024-12-03 15:22:47 -05:00
mschill bba52a736a B2024-003_B2023-113_B2024-093 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in it. Also, Dashes/Hyphens and Carets in RO TABLES were behaving differently in different data sets due to different fonts – this fixes so that carats when ConvertCaretToDelta is set in the format, will properly restore/store as Deltas. 2024-12-03 15:12:04 -05:00
jjenko c5d575a019 Merge pull request 'F2019-011 Wide step tabs were printing into text. Shifted Left Justification slightly (roughly 2 characters) to account for these / this spacing.' (#474) from F2019-011 into Development
ok for testing phase
2024-11-27 09:28:22 -05:00
mschill 08f8441aca F2019-011 Wide step tabs were printing into text. Shifted Left Justification slightly (roughly 2 characters) to account for these / this spacing. 2024-11-27 09:19:42 -05:00
jjenko 6bf116cbef Merge pull request 'B2023-095_U2022-004 - When Copy/Pasting Symbols, some of the symbols paste in an incorrect font' (#473) from B2023-095_U2022-004 into Development
good for testing phase
2024-11-25 14:51:35 -05:00
mschill cc96b3fa5b B2023-095_U2022-004 - When Copy/Pasting Symbols, some of the symbols paste in an incorrect font 2024-11-25 14:44:50 -05:00
jjenko b489452bd1 Merge pull request 'B2023-029 - Added format flag to Continuous Action Note and Continuous Action Caution so that the check box to include on the generated Continuous Action Summary is automatically checked' (#472) from B2023-039_bwd_byr into Development
format only change.
Ready for testing phase
2024-11-22 14:56:17 -05:00
jjenko fa4e3997e4 B2023-029 - Added format flag to Continuous Action Note and Continuous Action Caution so that the check box to include on the generated Continuous Action Summary is automatically checked 2024-11-22 14:55:12 -05:00
jjenko 7659cbbee6 Merge pull request 'B2023-074 - Fixed printing a section title, via the section properties check box, on a two-column step editor section.' (#471) from General_Debugging into Development
minor code change - no review needed.
OK for testing phase
2024-11-22 10:20:22 -05:00
jjenko 548b845f62 B2023-074 - Fixed printing a section title, via the section properties check box, on a two-column step editor section. 2024-11-22 10:10:57 -05:00
jjenko 4f733656a0 Merge pull request 'F2024-085 - Added a Conditional Time Critical Action high level step type to the EOP and AOP formats' (#470) from F2024-085_BVPS_ContTimeAction into Development
format only changes
2024-11-20 09:12:29 -05:00
jjenko f4ef244a10 F2024-085 - Added a Conditional Time Critical Action high level step type to the EOP and AOP formats 2024-11-20 09:10:46 -05:00
jjenko 839000d48c Merge pull request 'B2024-003_ B2023-113 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in it.' (#469) from B2024-003_B2023_113_GIT into Development
good for testing phase
2024-11-18 16:24:13 -05:00
mschill bcb8f419ee B2024-003_ B2023-113 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in it. 2024-11-18 16:17:07 -05:00
mschill 059c399240 Merge pull request 'B2021-094 - Fixed shortcut keystroke usage for the GoTo button <Shift><Ctrl><G> when used multiple times' (#468) from B2021-094_keystroke4GoTo into Development
Looks good - ready for QA
2024-11-18 14:59:13 -05:00
jjenko 13b3cd6bc4 B2021-094 - Fixed shortcut keystroke usage for the GoTo button <Shift><Ctrl><G> when used multiple times 2024-11-18 14:54:34 -05:00
jjenko 3cd4f4c5d9 Merge pull request 'C2024-028 Add an enhancement to Admin Tools -> Refresh Transitions. Transitions with bad links that cannot be auto-fixed, will now add an annotation of “Bad Transition Link” (which can then be searched for and manually resolved.)' (#467) from C2024-028 into Development
good for testing phase
2024-11-15 09:51:23 -05:00
mschill 02b20df652 C2024-028 Add an enhancement to Admin Tools -> Refresh Transitions. Transitions with bad links that cannot be auto-fixed, will now add an annotation of “Bad Transition Link” (which can then be searched for and manually resolved.) 2024-11-15 09:23:27 -05:00
jjenko 416bdf16e0 Merge pull request 'B2021-043 Step numbering is out of order in RO usage report if RO values exist on steps 10 or higher.' (#466) from B2021-043 into Development
good for testing phase
2024-11-13 14:40:33 -05:00
mschill 75a4f66714 B2021-043 Step numbering is out of order in RO usage report if RO values exist on steps 10 or higher. 2024-11-13 14:10:39 -05:00
mschill a5b9c26a97 Merge pull request 'F2024-078 - Adjust the spacing before and after the Note tab, along with the blank space (line) at the bottom of the Note box per the example supplied by the customer. Also made similar adjustments to the Caution tab and box.' (#465) from F2024-078_BVNoteSpacing into Development
Looks good - Ready for QA
2024-11-11 16:35:56 -05:00
jjenko 0aa476d9dd F2024-078 - Adjust the spacing before and after the Note tab, along with the blank space (line) at the bottom of the Note box per the example supplied by the customer. Also made similar adjustments to the Caution tab and box. 2024-11-11 15:56:55 -05:00
jjenko 0f4eec1df6 Merge pull request 'B2024-092 Add Initial Line/Ability to Disable to UI for South Texas' (#463) from B2024-092 into Development
good for testing phase
2024-11-11 08:28:36 -05:00
mschill 4bc73f847c B2024-092 Add Initial Line/Ability to Disable to UI for South Texas 2024-11-11 07:15:02 -05:00
jjenko e1271c16d9 Merge pull request 'B2024-090 If multiple tabs are left open, and Find is clicked before clicking on a tab, PROMS would crash.' (#462) from B2024-090 into Development
good for testing phase
2024-11-08 15:43:30 -05:00
mschill c7d2140e16 B2024-090 If multiple tabs are left open, and Find is clicked before clicking on a tab, PROMS would crash. 2024-11-08 15:37:49 -05:00
jjenko ac6ee6ff83 Merge pull request 'C2024-022 Add option to select by unit when generating a Time Critical Action Summary from the ribbon in a Parent document.' (#461) from C2024-022 into Development
good for testing phase
2024-11-07 15:24:47 -05:00
mschill 1507cf31ce C2024-022 Add option to select by unit when generating a Time Critical Action Summary from the ribbon in a Parent document. 2024-11-07 15:06:38 -05:00
jjenko aad04647ac Merge pull request 'C2024-021 Update the tool tip on the Time Critical Action Summary option (Step Properties panel) to reflect the Time Critical Action Summary text rather than the Continuous Action Summary text.' (#460) from C2024-021 into Development
good for testing phase
2024-11-07 10:54:58 -05:00
mschill 934d3977d8 C2024-021 Update the tool tip on the Time Critical Action Summary option (Step Properties panel) to reflect the Time Critical Action Summary text rather than the Continuous Action Summary text. 2024-11-07 10:08:26 -05:00
jjenko 03b0e52bef Merge pull request 'B2024-064 Improve user experience by providing more descriptive wording when cannot change the Applicability of a Step/Section.' (#459) from B2024-064 into Development
good for testing phase
2024-11-07 09:20:47 -05:00
mschill 1da2b8e87c B2024-064 Improve user experience by providing more descriptive wording when cannot change the Applicability of a Step/Section. 2024-11-07 09:13:40 -05:00
jjenko e3d16142ac Merge pull request 'C2024-025 Remove the tall box characters from the search results.' (#458) from C2024-025 into Development
Good for testing phase
2024-11-07 08:42:21 -05:00
mschill b972e40a28 C2024-025 Remove the tall box characters from the search results. 2024-11-07 08:26:26 -05:00
jjenko c508255ab3 Merge pull request 'C2024-026 Add feature to the transitions panel to allow user to hold currently selected procedure/set in the panel.' (#457) from C2024-026 into Development
good for testing phase
2024-11-05 13:21:31 -05:00
mschill e9ec884eb9 C2024-026 Add feature to the transitions panel to allow user to hold currently selected procedure/set in the panel. 2024-11-05 10:59:01 -05:00
jjenko 592d28e898 Merge pull request 'B2024-080 Add Image Thumbnails to Find Submenu items to be consistent with elsewhere in the application' (#456) from B2024-080 into Development
Good for testing phase
2024-11-05 10:53:06 -05:00
mschill b826fa6a20 B2024-080 Add Image Thumbnails to Find Submenu items to be consistent with elsewhere in the application 2024-11-05 10:48:52 -05:00
mschill 74c2a303da Merge pull request 'B2024-089 Loic to clean up transitioning to a section that does not have a section number. Also added and updated comments.' (#455) from B2024-089 into Development
Looks good to me.
Merging to Development - Ready for QA.
2024-11-04 16:46:34 -05:00
jjenko dcf50073e7 B2024-089 Loic to clean up transitioning to a section that does not have a section number. Also added and updated comments. 2024-11-04 14:39:41 -05:00
jjenko 375871012c Merge pull request 'F2024-084 - Adjusted tab spacing in Beaver Valley’s AOP format and added a space after the bullet in the Bulleted High-level step in the Beaver Valley SAMG format. For the AOP format needed to remove the general tab format setting TabPtsPerChar (tha…' (#453) from F2024-084 into Development
Format only change
2024-11-01 10:15:00 -04:00
jjenko b7b67cce69 F2024-084 - Adjusted tab spacing in Beaver Valley’s AOP format and added a space after the bullet in the Bulleted High-level step in the Beaver Valley SAMG format. For the AOP format needed to remove the general tab format setting TabPtsPerChar (that affects all of the sub-step tab spacing) in order to have all of the AOP sub-step tab spacing the same as the EOP format. 2024-11-01 10:12:52 -04:00
jjenko 6c22bff1fd Merge pull request 'C2024-034 RO Editor – Enhancement for when “Standard Fields” are modified.' (#452) from C2024-034 into Development
good for testing phase
2024-10-31 15:49:33 -04:00
mschill 0b12805d4a C2024-034 RO Editor – Enhancement for when “Standard Fields” are modified. 2024-10-31 15:44:28 -04:00
jjenko 4bac1a4628 Merge pull request 'C2024-035 RO Editor – Enhancement to Handle renaming of Setpoint Value.' (#451) from C2024-035 into Development
good for testing phase
2024-10-31 15:17:38 -04:00
mschill 2cf164c445 C2024-035 RO Editor – Enhancement to Handle renaming of Setpoint Value. 2024-10-31 15:11:04 -04:00
jjenko 11904e177b Merge pull request 'B2024-077 When searching Referenced Objects Reports, pick the RO and select a procedure set and the selection panel refreshes and you lose your selection. If the set has to be selected first then it should be at the top of the report panel.' (#449) from B2024-077 into Development
good for testing phase
2024-10-29 16:13:51 -04:00
mschill 527e6b5053 B2024-077 When searching Referenced Objects Reports, pick the RO and select a procedure set and the selection panel refreshes and you lose your selection. If the set has to be selected first then it should be at the top of the report panel.
Also fixed a small ancillary typo that I found while finding this.
2024-10-29 15:46:12 -04:00
jjenko 053ebca267 Merge pull request 'C2024-033 RO Editor – Clarify wording presented to user when utilizing new Move RO feature in RO Editor.' (#447) from C2024-033 into Development
ready for testing phase
2024-10-29 09:54:06 -04:00
jjenko 5e7fae9d47 Merge pull request 'F2024-082 - Added Dump, Modulate, Observe, Return, Proceed, Direct to the replace words list in all of the Farley formats' (#448) from F2024-082 into Development
format only change
2024-10-29 09:41:02 -04:00
jjenko 0e4ce99612 F2024-082 - Added Dump, Modulate, Observe, Return, Proceed, Direct to the replace words list in all of the Farley formats 2024-10-29 09:40:00 -04:00
mschill 3c75637752 C2024-033 RO Editor – Clarify wording presented to user when utilizing new Move RO feature in RO Editor. 2024-10-29 07:54:50 -04:00
jjenko fb890ded1f Merge pull request 'C2024-031 Option to Disable reopen closed tabs on PROMS reentry' (#445) from C2024-031 into Development
good for testing phase
2024-10-28 14:40:05 -04:00
jjenko 4399f31a83 Merge pull request 'F2024-079 - Set the flag to not uppercase the procedure and section titles in transitions in the background formats to make it consistent with the other Beaver Valley formats.' (#446) from F2024-079 into Development
format only change
2024-10-28 14:24:51 -04:00
jjenko ca4b21e593 F2024-079 - Set the flag to not uppercase the procedure and section titles in transitions in the background formats to make it consistent with the other Beaver Valley formats. 2024-10-28 13:59:14 -04:00
mschill 23a4edb610 C2024-031 Option to Disable reopen closed tabs on PROMS reentry 2024-10-28 13:28:35 -04:00
jjenko accc1c622c Merge pull request 'F2024-077 - Made the spacing between bullet tabs the step text consistent for bulleted sub-steps types and for multiple Cautions, Notes types' (#444) from F2024-077_BVtabs into Development
format only changes
2024-10-25 15:05:17 -04:00
jjenko e50ea6a5db F2024-077 - Made the spacing between bullet tabs the step text consistent for bulleted sub-steps types and for multiple Cautions, Notes types 2024-10-25 15:03:41 -04:00
jjenko 04ce6f55db Merge pull request 'CSM B2024-087 Fix RO Editor Inconsistencies' (#443) from B2024-087 into Development
ready for testing phase
2024-10-25 14:39:24 -04:00
mschill f0493e60d8 CSM B2024-087 Fix RO Editor Inconsistencies
Refresh issue in RO Definitions.  Modify an In Use field item that is not one of the Standard items, choose Continue, choose OK in the Text Definition Field. when prompted if want to Update Local or Generic definitions:

1. Prompt should contain table name (previously was not for Setpoint items)

2. If Select "Yes", Should refresh to new field name when return to previous screen / click ok to go back to RO Definition.
2024-10-25 14:33:20 -04:00
jjenko 13edc9c9ff Merge pull request 'F2024-080 Add Initial Line/Ability to Disable to UI for South Texas' (#442) from F2024-080 into Development
good for testing phase.
2024-10-25 10:12:10 -04:00
mschill fd0ea4404b F2024-080 Add Initial Line/Ability to Disable to UI for South Texas 2024-10-25 09:19:20 -04:00
jjenko df9d0f908a Merge pull request 'C2024-030 RO Editor Enhancement to include table name / explain the scope of changing a field definition Local vs Generic' (#441) from C2024-030 into Development
good for testing phase
2024-10-24 09:08:42 -04:00
mschill 779394ffd6 C2024-030 RO Editor Enhancement to include table name / explain the scope of changing a field definition Local vs Generic
When updating a field in a RO Definition, there is a prompt asking if changes should be Local or Generic --- Should change wording to explain that Local is local to that table (and include Table name in that wording)
2024-10-24 07:43:00 -04:00
jjenko a230ecef9b Merge pull request 'Just added space to a comment to force a new check-in of these Farely fomrat files' (#440) from General_Debugging into Development
no testing needed.  This is to try to resolve a Git and build issue with Farley format files on developer machines.
2024-10-23 16:42:06 -04:00
jjenko 061bcfdc0f Just added space to a comment to force a new check-in of these Farely fomrat files 2024-10-23 16:37:04 -04:00
jjenko aced10498b Merge pull request 'B2024-084 Fix Refresh Issue in RO Definitions.' (#439) from B2024-084 into Development
good for testing phase
2024-10-23 16:09:42 -04:00
mschill cd963d01e4 B2024-084 Fix Refresh Issue in RO Definitions.
Modify an In Use field item, choose Continue, choose OK in the Text Definition Field.  Hit Cancel in the next two windows, then open the RO Definition back up and the change is still there in the "In Use" column but not the Menu Value.    Close the RO Editor and re-open and the change was now gone as it's supposed to be.
2024-10-23 15:54:20 -04:00
jjenko 458dd5fff4 Merge pull request 'B2024-085 Fix Object Reference Error when Getting Schema for a RO database in SQL' (#438) from B2024-085 into Development
good for testing phase
2024-10-23 14:56:21 -04:00
mschill 0c342fa188 B2024-085 Fix Object Reference Error when Getting Schema for a RO database in SQL
After converting the Robinson ROs to SQL, upon changing an In Use field and clicking Continue, an "Error on Schema" message box displayed with an unhandled error exception.
2024-10-23 14:07:20 -04:00
jjenko 43b13443ab Merge pull request 'C2024-027 RO Editor – Add additional feature to allow Cut/Paste (Moving) a RO within the same table.' (#437) from CSM-C2024-027 into Development
Good for testing phase
2024-10-23 13:38:10 -04:00
mschill c867d4e4b1 C2024-027 RO Editor – Add additional feature to allow Cut/Paste (Moving) a RO within the same table. 2024-10-23 13:20:20 -04:00
jjenko 0f541142cc Merge pull request 'F2024-081- Removed the extra blank line after the Alternate High Level Step type. This was mistakenly changed during format cleanup. It is now restored to what it should be.' (#436) from F2024-081_Catawba into Development
Format only changes.
2024-10-23 12:01:19 -04:00
jjenko b0c55d09b0 F2024-081- Removed the extra blank line after the Alternate High Level Step type. This was mistakenly changed during format cleanup. It is now restored to what it should be. 2024-10-23 11:59:55 -04:00
jjenko ee71431210 Merge pull request 'F2024-076 - Added a line before the continue message in the background formats. Centered the bottom continue message for the step editor sections – all formats' (#435) from F2024-076_BV_ContinueMsg into Development
format only changes
2024-10-23 11:08:00 -04:00
jjenko a8196db676 F2024-076 - Added a line before the continue message in the background formats. Centered the bottom continue message for the step editor sections – all formats 2024-10-23 11:06:31 -04:00
jjenko 8dc78d49eb Merge pull request 'Delete .gitattributes' (#434) from remove_gitattributes into Development
changes are good. This should allow us to compare format files again.
2024-10-17 09:27:10 -04:00
jjenko 3999d1c49b Merge pull request 'C2020-049-Add-the-ability-for-PROMS-to-remember-open-procedure-tabs-fixed-print' (#433) from C2020-049-Add-the-ability-for-PROMS-to-remember-open-procedure-tabs-fixed-print into Development
good for testing phase
2024-10-17 09:25:22 -04:00
mschill aceb928dba Delete .gitattributes
remove gitattributes file
2024-10-17 09:17:01 -04:00
plarsen f17db695d3 C2020-049-Add-the-ability-for-PROMS-to-remember-open-procedure-tabs-fixed-print 2024-10-16 16:23:31 -04:00
jjenko 214dd8ec08 Merge pull request 'GIT_ATTRIBUTE_FILE - adjusting GIT settings so should be able to see diff of xml files in GIT (and not just Visual Studio history)' (#432) from GIT_ATTRIBUTE_FILE2 into Development
change approved - no testing needed for this.
2024-10-15 09:23:27 -04:00
jjenko 2f974d7b52 Merge pull request 'C2024-029 RO Editor - Referenced Object Definition Form - Add check if items changed before prompting to possibly save' (#431) from C2024-029 into Development
good for testing phase
2024-10-15 09:22:16 -04:00
mschill 9f1dce896f GIT_ATTRIBUTE_FILE - adjusting GIT settings so should be able to see diff of xml files in GIT (and not just Visual Studio history) 2024-10-15 08:58:15 -04:00
mschill a8294bb01a C2024-029 RO Editor - Referenced Object Definition Form - Add check if items changed before prompting to possibly save 2024-10-15 08:40:12 -04:00
jjenko 28e4bdda29 Merge pull request 'B2024-079 Consistency of adding_editing_removing fields in RO Editor - Referenced Object Definition Form' (#430) from B2024-079 into Development
change are good.  Ready for testing phase.
2024-10-14 16:36:39 -04:00
mschill 7d408df904 B2024-079 Consistency of adding_editing_removing fields in RO Editor - Referenced Object Definition Form 2024-10-14 16:17:19 -04:00
jjenko caec6adf8d Merge pull request 'F2024-075 (Farley) Action verbs should be bolded no matter if title case or lower case - all formats' (#429) from F2024-075_FarlyRplWrds into Development
Format only change. OK to test.
2024-10-14 14:08:11 -04:00
jjenko a38c0dbe33 F2024-075 (Farley) Action verbs should be bolded no matter if title case or lower case - all formats 2024-10-14 14:06:17 -04:00
jjenko d779d4ad50 Merge pull request 'GIT_ATTRIBUTE_FILE - adjusting GIT settings so should be able to see diff of xml files in GIT (and not just Visual Studio' (#428) from GIT_ATRIBUTE_FILE into Development
No testing needed.  This is just a Git configuration setting for the developers.
2024-10-10 16:30:22 -04:00
mschill 9b71ce0fee GIT_ATTRIBUTE_FILE - adjusting GIT settings so should be able to see diff of xml files in GIT (and not just Visual Studio 2024-10-10 15:51:11 -04:00
jjenko 8b18005b8e Merge pull request 'B2024-078 Bad Transition preventing editing of a substep. Can enter changed text, but then when move to another textbox, original text returns.' (#427) from B2024-078 into Development
changes good for testing phase.
2024-10-10 08:57:54 -04:00
mschill a550ef1b50 B2024-078 Bad Transition preventing editing of a substep. Can enter changed text, but then when move to another textbox, original text returns. 2024-10-10 08:38:35 -04:00
jjenko 63a60b32cc Merge pull request 'F2024-074 For Farley, Include the Cover Page in the total page count of the procedures' (#426) from F2024_074_FNP_CountCoverWithProcs into Development
format only change
2024-10-09 16:47:48 -04:00
jjenko ca4dc8d330 F2024-074 For Farley, Include the Cover Page in the total page count of the procedures 2024-10-09 16:45:38 -04:00
jjenko 0a52aa5c53 Merge pull request 'C2024-024 Simple Selection of Fields to add to Return Values and Menu Values' (#423) from C2024-024 into Development
file changes look good - ready for testing phase.
2024-10-09 14:02:53 -04:00
mschill 591fc03ca2 C2024-024 Simple Selection of Fields to add to Return Values and Menu Values 2024-10-09 13:12:29 -04:00
jjenko ebd7b1249f Merge pull request 'C2024-023 Autocomplete on Group Definition Accessory Page Access Values.' (#422) from C2024-023 into Development
Ok for testing phase
2024-10-08 15:17:31 -04:00
mschill 1b6eeaf4ad C2024-023 Autocomplete on Group Definition Accessory Page Access Values. 2024-10-08 15:02:47 -04:00
jjenko 1d3dac0e51 Merge pull request 'C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-5' (#421) from C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4 into Development
good for testing phase
2024-10-08 09:29:13 -04:00
plarsen 48da58b681 C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-5 2024-10-08 08:54:32 -04:00
mschill 68639eadf0 Merge pull request 'C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4' (#420) from C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4 into Development
Looked Good. Ready for QA Testing.
2024-10-07 11:51:36 -04:00
plarsen dc77984c10 C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4 2024-10-07 11:40:26 -04:00
plarsen 5b4e1cd694 C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4 2024-10-04 14:55:04 -04:00
plarsen 3fbd974fa9 C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4 2024-10-04 14:38:59 -04:00
jjenko b457496297 Merge pull request 'B2024-076 Correct Linking / Numbering when utilizing Paste Replace with Enhanced Steps over unlinked steps' (#419) from B2024-076 into Development
ready for testing phase
2024-10-04 13:20:09 -04:00
mschill dd83491169 B2024-076 Correct Linking / Numbering when utilizing Paste Replace with Enhanced Steps over unlinked steps 2024-10-04 12:46:23 -04:00
mschill a73a8fb993 Merge pull request 'C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-2' (#418) from C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-2 into Development
Code looked good. Ready for QA Testing.
2024-10-04 09:42:55 -04:00
plarsen fb7a99653d C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-2 2024-10-03 15:11:15 -04:00
jjenko 297d75a2b3 Merge pull request 'B2024-075 Correct Linking and Numbering when utilizing Paste Before and Paste After with Enhanced Steps as well as some related UI refresh issues.' (#415) from B2024-075 into Development
Good for testing phase
2024-10-02 11:48:58 -04:00
mschill 47c5bb159a B2024-075 Correct Linking and Numbering when utilizing Paste Before and Paste After with Enhanced Steps as well as some related UI refresh issues. 2024-10-02 11:31:04 -04:00
jjenko 610b2d178c Merge pull request 'C2017-031 Extend Copy / Paste Replace Functionality for Enhanced Background Steps' (#414) from C2017-031 into Development
Code changes look good. OK for testing phase.
2024-09-30 15:14:10 -04:00
mschill bb45e551a3 C2017-031 Extend Copy / Paste Replace Functionality for Enhanced Background Steps 2024-09-30 15:02:35 -04:00
jjenko 77cf6177dc Merge pull request 'F2023-136 Adjust formats to not count the cover page when calculating the page numbers for the Automatic Table of Contents.' (#412) from F2023-136_Farley into Development
Format only  changes - ready for testing
2024-09-27 10:41:26 -04:00
jjenko a830856df2 F2023-136 Adjust formats to not count the cover page when calculating the page numbers for the Automatic Table of Contents. 2024-09-27 10:34:16 -04:00
jjenko efe215f4d0 Merge pull request 'B2024-074 When Deleting annotations via the Administrative Tools -> Delete -> Delete Annotations, and checking if a procedure is checked out prior to deletion:' (#411) from B2024-074 into Development
code changes look good. ready for testing phase
2024-09-24 11:04:40 -04:00
mschill 5e2e2f841c B2024-074 When Deleting annotations via the Administrative Tools -> Delete -> Delete Annotations, and checking if a procedure is checked out prior to deletion:
1. If no Number for Procedure, Display Title.
2. If only deleting annotations from an individual procedure, verify can check out procedure.
2024-09-24 10:47:44 -04:00
plarsen 9da436ab2d Merge pull request 'B2024-070_072_Correct_Typos__Setpoint_ID__and__Category_of_Transitions' (#408) from B2024-070_072 into Development
Reviewed-on: #408
2024-09-16 15:05:15 -04:00
plarsen 5333b96c88 Merge pull request 'B2024-073 Correct Object Reference Error that can occur in debug mode when utilizing Edit item from the Debug toolbar at the bottom of the application. Note - this bug is only in Debug Mode / Is not customer facing.' (#409) from B2024-073_DebugMode_EditItem_ActiveParent_ObjectReferenceError into Development
Reviewed-on: #409
2024-09-16 15:00:50 -04:00
mschill 6561a11661 B2024-073 Correct Object Reference Error that can occur in debug mode when utilizing Edit item from the Debug toolbar at the bottom of the application. Note - this bug is only in Debug Mode / Is not customer facing. 2024-09-16 13:10:52 -04:00
mschill 1c9334a52b B2024-070_072_Correct_Typos__Setpoint_ID__and__Category_of_Transitions 2024-09-16 11:53:20 -04:00
jjenko 2e00693a33 Merge pull request 'B2024-068_069_check_if_current_annotation_is_not_selected_before_removal_of_annotation' (#407) from B2024-068_and_069 into Development
Ready for testing phase
2024-09-11 15:40:25 -04:00
mschill 8617ce4562 B2024-068_069_check_if_current_annotation_is_not_selected_before_removal_of_annotation 2024-09-11 15:34:22 -04:00
jjenko 78416ef452 Merge pull request 'F2024-071, F2024-072, F2024-073 for Farley added Action Verbs bolding, sub-section attachment types, paginate attachmens with procedure' (#406) from FarleyFormatChanges into Development
format only change
2024-09-11 14:36:36 -04:00
jjenko 9ad50af4dd F2024-071, F2024-072, F2024-073 for Farley added Action Verbs bolding, sub-section attachment types, paginate attachmens with procedure 2024-09-11 14:34:17 -04:00
jjenko a6f3d62a01 Merge pull request 'C2021-038-No-and_Cancel-button-2' (#405) from C2021-038-No-and_Cancel-button-2 into Development
ready for testing phase.
2024-09-11 10:47:39 -04:00
plarsen a25b5fc6b8 C2021-038-No-and_Cancel-button-2 2024-09-10 17:54:54 -04:00
jjenko 9e26e94e97 Merge pull request 'C2021-040-Change-dialog-box-when-canceling-import-procedure' (#403) from C2021-040-Change-dialog-box-when-canceling-import-procedure into Development
ready for testing phase
2024-09-09 15:12:08 -04:00
plarsen a571cb5f15 C2021-040-Change-dialog-box-when-canceling-import-procedure 2024-09-09 14:58:03 -04:00
plarsen 2e00c94d34 C2021-040-Change-dialog-box-when-canceling-import-procedure 2024-09-09 13:47:44 -04:00
jjenko f1506b9aee Merge pull request 'C2021-034-Change-applicability-dialog-box-response-from-Yes_No_Cancel-to-Yes_No' (#401) from C2021-034-Change-applicability-dialog-box-response-from-Yes_No_Cancel-to-Yes_No into Development
ready for testing phase
2024-09-06 08:37:45 -04:00
plarsen 2805471301 C2021-034-Change-applicability-dialog-box-response-from-Yes_No_Cancel-to-Yes_No 2024-09-05 16:50:06 -04:00
jjenko 89f55e091f Merge pull request 'B2024-065-Print-dialog-initalize-to-Working-Default-Level-Setting' (#400) from B2024-065-Print-dialog-initalize-to-Working-Default-Level-Setting into Development
ready for testing phase
2024-09-04 14:16:52 -04:00
plarsen da6c47d0ff B2024-065-Print-dialog-initalize-to-Working-Default-Level-Setting 2024-09-04 11:59:48 -04:00
jjenko 63cac73de3 Merge pull request 'B2024-063-Invalid-Format-message-box-displays-when-rev-date-empty-2' (#398) from B2024-063-Invalid-Format-message-box-displays-when-rev-date-empty-2 into Development
OK for testing phase
2024-08-27 11:08:30 -04:00
plarsen c8ed5b0565 B2024-063-Invalid-Format-message-box-displays-when-rev-date-empty-2 2024-08-27 11:04:23 -04:00
jjenko c6342fea49 Merge pull request 'B2024-060-Adding-a-picture-PROMS-crashes' (#396) from B2024-060-Adding-a-picture-PROMS-crashes into Development
Ok for testing phase
2024-08-27 10:33:56 -04:00
plarsen 7a3748f7e0 B2024-060-Adding-a-picture-PROMS-crashes 2024-08-26 11:11:03 -04:00
plarsen 516b479c0c B2024-060-Adding-a-picture-PROMS-crashes 2024-08-26 10:00:31 -04:00
jjenko a43e059733 Merge pull request 'F2024-070 - Add “DEVIATION:” to the enhanced background template after “KNOWLOEDGE/ABILITY”' (#395) from F2024-070_Catawba into Development
Format only change. ready for testing phase.
2024-08-22 11:26:17 -04:00
jjenko 0ac79f4e46 F2024-070 - Add “DEVIATION:” to the enhanced background template after “KNOWLOEDGE/ABILITY” 2024-08-22 11:24:17 -04:00
plarsen c06744b3bb B2024-060-Adding-a-picture-PROMS-crashes 2024-08-22 08:19:20 -04:00
jjenko 218a2c17a2 Merge pull request 'B2024-061- Added a null reference check in the save annotation code. Need for when Admin deletes the annotation while a user modified the text of it' (#394) from B2024-061 into Development
null reference check added to the code, tested locally before uploading
2024-08-21 11:45:10 -04:00
jjenko a629f6834b B2024-061- Added a null reference check in the save annotation code. Need for when Admin deletes the annotation while a user modified the text of it 2024-08-21 11:37:37 -04:00
jjenko bf5337cf63 B2024-062 printing a procedure that is empty displays the Empty Procedure message. WhenOK button is clicked, PROMS will exit the Print function.. (#393)
B2024-062
When you attempt to print a procedure that is empty (i.e. none of the sections are applicable to the selected Child to print), the Empty Procedure message appears. When you click the OK button PROMS will now simply exit the Print function instead of displaying the “Try Again” message box.

Reviewed-on: #393
Reviewed-by: Paul Larsen <plarsen@volian.com>
Co-authored-by: John Jenko <jjenko@volian.com>
Co-committed-by: John Jenko <jjenko@volian.com>
2024-08-20 12:25:42 -04:00
3069 changed files with 1165710 additions and 171946 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8" ?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="ResMimeType">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="Version">
<value>1.0.0.0</value>
</resheader>
<resheader name="Reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="Writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8" ?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="ResMimeType">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="Version">
<value>1.0.0.0</value>
</resheader>
<resheader name="Reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="Writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
@@ -0,0 +1,211 @@
using System;
using System.Collections;
using System.ComponentModel;
namespace DevComponents.AdvTree
{
///<summary>
/// A strongly-typed collection of <see cref="Cell"/> objects.
///</summary>
public class CellCollection:CollectionBase
{
#region Private Variables
private Node m_ParentNode=null;
#endregion
#region Internal Implementation
/// <summary>Creates new instance of the class.</summary>
public CellCollection()
{
}
/// <summary>
/// Adds new object to the collection.
/// </summary>
/// <param name="cell">Object to add.</param>
/// <returns>Index of newly added object.</returns>
public int Add(Cell cell)
{
return List.Add(cell);
}
/// <summary>
/// Returns reference to the object in collection based on it's index.
/// </summary>
public Cell this[int index]
{
get {return (Cell)(List[index]);}
set {List[index] = value;}
}
/// <summary>
/// Returns reference to the object in collection based on it's name. Returns null/nothing if cell with given name is not found.
/// </summary>
public Cell this[string name]
{
get
{
foreach (Cell item in List)
{
if (item.Name == name) return item;
}
return null;
}
}
/// <summary>
/// Gets the cell based on the column name. Node must be able to reach AdvTree control for this method to work.
/// </summary>
/// <param name="columnName">Column name.</param>
/// <returns>Cell object or null.</returns>
public Cell GetByColumnName(string columnName)
{
if (string.IsNullOrEmpty(columnName))
throw new ArgumentException("columnName argument must be non-empty non-null string with column name");
Node parentNode = this.ParentNode;
AdvTree tree = parentNode.TreeControl;
if (tree == null)
throw new NullReferenceException("AdvTree control cannot be reached. Node is not added to a tree.");
Cell cell = null;
if (parentNode.Parent != null && parentNode.Parent.NodesColumns.Count > 0)
{
int index= parentNode.Parent.NodesColumns.IndexOf(columnName);
if (index >= 0) cell = this[index];
}
else
{
int index = tree.Columns.IndexOf(columnName);
if (index >= 0) cell = this[index];
}
return cell;
}
/// <summary>
/// Inserts new object into the collection.
/// </summary>
/// <param name="index">Position of the object.</param>
/// <param name="value">Object to insert.</param>
public void Insert(int index, Cell value)
{
List.Insert(index, value);
}
/// <summary>
/// Returns index of the object inside of the collection.
/// </summary>
/// <param name="value">Reference to the object.</param>
/// <returns>Index of the object.</returns>
public int IndexOf(Cell value)
{
return List.IndexOf(value);
}
/// <summary>
/// Returns whether collection contains specified object.
/// </summary>
/// <param name="value">Object to look for.</param>
/// <returns>true if object is part of the collection, otherwise false.</returns>
public bool Contains(Cell value)
{
return List.Contains(value);
}
/// <summary>
/// Removes specified object from the collection.
/// </summary>
/// <param name="value"></param>
public void Remove(Cell value)
{
List.Remove(value);
}
protected override void OnRemoveComplete(int index,object value)
{
base.OnRemoveComplete(index,value);
Cell cell=value as Cell;
cell.SetParent(null);
if(m_ParentNode!=null)
m_ParentNode.OnCellRemoved(cell);
}
protected override void OnInsertComplete(int index,object value)
{
base.OnInsertComplete(index,value);
Cell cell=value as Cell;
if(cell.Parent!=null && cell.Parent!=m_ParentNode)
cell.Parent.Cells.Remove(cell);
cell.SetParent(m_ParentNode);
if(m_ParentNode!=null)
m_ParentNode.OnCellInserted(cell);
}
protected override void OnInsert(int index, object value)
{
if (m_ParentNode != null && m_ParentNode.Site != null && m_ParentNode.Site.DesignMode && this.List.Count > 0)
{
Cell cell = value as Cell;
if (cell.Site == null && this.List.Contains(cell)) this.List.Remove(cell);
}
base.OnInsert(index, value);
}
/// <summary>
/// Copies collection into the specified array.
/// </summary>
/// <param name="array">Array to copy collection to.</param>
/// <param name="index">Starting index.</param>
public void CopyTo(Cell[] array, int index)
{
List.CopyTo(array, index);
}
/// <summary>
/// Copies contained items to the Cell array.
/// </summary>
/// <param name="array">Array to copy to.</param>
internal void CopyTo(Cell[] array)
{
List.CopyTo(array,0);
}
private Cell _RootCell = null;
protected override void OnClear()
{
if (m_ParentNode != null && m_ParentNode.Site != null && m_ParentNode.Site.DesignMode && this.List.Count>0)
{
if (this[0].Site == null)
_RootCell = this[0];
}
base.OnClear();
}
protected override void OnClearComplete()
{
base.OnClearComplete();
if (_RootCell != null)
{
this.Add(_RootCell);
_RootCell = null;
}
}
protected override void OnSet(int index, object oldValue, object newValue)
{
base.OnSet(index, oldValue, newValue);
}
/// <summary>
/// Gets or sets the node this collection is associated with.
/// </summary>
[Browsable(false),DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public Node ParentNode
{
get {return m_ParentNode;}
}
/// <summary>
/// Sets the node collection belongs to.
/// </summary>
/// <param name="parent">Cell that is parent of this collection.</param>
internal void SetParentNode(Node parent)
{
m_ParentNode=parent;
}
#endregion
}
}
@@ -0,0 +1,105 @@
using System;
namespace DevComponents.AdvTree
{
/// <summary>
/// Represents event arguments for cell editing events.
/// </summary>
public class CellEditEventArgs : EventArgs
{
/// <summary>
/// Indicates the action that caused the event.
/// </summary>
public eTreeAction Action=eTreeAction.Code;
/// <summary>
/// Indicates the cell that is affected.
/// </summary>
public DevComponents.AdvTree.Cell Cell=null;
/// <summary>
/// Indicates new text that will be assigned to the cell if one is appropriate for given event.
/// </summary>
public string NewText="";
private ICellEditControl _Editor = null;
/// <summary>
/// Gets reference to the cell editor control.
/// </summary>
public ICellEditControl Editor
{
get
{
return _Editor;
}
}
/// <summary>
/// Indicates whether the current action is cancelled. For BeforeCellEdit event setting this
/// property to true will cancel the editing. For AfterCellEdit event setting this property to
/// true will cancel any changes made to the text and edits will not be accepted. For CellEditEnding
/// event setting this property to true will keep the cell in edit mode.
/// </summary>
public bool Cancel=false;
/// <summary>
/// Indicates whether editing operation was canceled by the end user, usually by pressing ESCAPE key.
/// </summary>
public readonly bool IsUserCanceled;
/// <summary>
/// Initializes new instance of CellEditEventArgs class.
/// </summary>
/// <param name="cell">Reference to Cell this event is raised for.</param>
/// <param name="action">Indicates the action that caused the event.</param>
/// <param name="newText">Indicates new text of the cell if it applies to given event.</param>
public CellEditEventArgs(Cell cell, eTreeAction action, string newText)
{
this.Action=action;
this.Cell=cell;
this.NewText=newText;
this.IsUserCanceled = false;
}
/// <summary>
/// Initializes new instance of CellEditEventArgs class.
/// </summary>
/// <param name="cell">Reference to Cell this event is raised for.</param>
/// <param name="action">Indicates the action that caused the event.</param>
/// <param name="newText">Indicates new text of the cell if it applies to given event.</param>
public CellEditEventArgs(Cell cell, eTreeAction action, string newText, ICellEditControl editor)
{
this.Action = action;
this.Cell = cell;
this.NewText = newText;
this.IsUserCanceled = false;
_Editor = editor;
}
/// <summary>
/// Initializes new instance of CellEditEventArgs class.
/// </summary>
/// <param name="cell">Reference to Cell this event is raised for.</param>
/// <param name="action">Indicates the action that caused the event.</param>
/// <param name="newText">Indicates new text of the cell if it applies to given event.</param>
/// <param name="isUserCanceled">Indicates whether action is canceled by the end user.</param>
public CellEditEventArgs(Cell cell, eTreeAction action, string newText, bool isUserCanceled)
{
this.Action = action;
this.Cell = cell;
this.NewText = newText;
this.IsUserCanceled = isUserCanceled;
}
/// <summary>
/// Initializes new instance of CellEditEventArgs class.
/// </summary>
/// <param name="cell">Reference to Cell this event is raised for.</param>
/// <param name="action">Indicates the action that caused the event.</param>
/// <param name="newText">Indicates new text of the cell if it applies to given event.</param>
/// <param name="isUserCanceled">Indicates whether action is canceled by the end user.</param>
public CellEditEventArgs(Cell cell, eTreeAction action, string newText, bool isUserCanceled, ICellEditControl editor)
{
this.Action = action;
this.Cell = cell;
this.NewText = newText;
this.IsUserCanceled = isUserCanceled;
_Editor = editor;
}
}
}
@@ -0,0 +1,570 @@
using System;
using System.Drawing;
using System.ComponentModel;
using DevComponents.DotNetBar;
namespace DevComponents.AdvTree
{
/// <summary>
/// Represents class that holds images for a cell.
/// </summary>
/// <remarks>
/// If you plan to use alpha-blended images we recommend using PNG-24 format which
/// supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support
/// alpha-blending when used through Image class.
/// </remarks>
[ToolboxItem(false), TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
public class CellImages
{
// Image variables
private System.Drawing.Image m_Image=null;
private System.Drawing.Image m_DisabledImageGenerated = null;
private int m_ImageIndex=-1; // Image index if image from ImageList is used
private System.Drawing.Image m_ImageMouseOver=null;
private int m_ImageMouseOverIndex=-1; // Image index if image from ImageList is used
private System.Drawing.Image m_ImageDisabled=null;
// private bool m_DisabledImageCustom=false;
private int m_ImageDisabledIndex=-1; // Image index if image from ImageList is used
private System.Drawing.Image m_ImageExpanded=null;
private int m_ImageExpandedIndex=-1;
private Cell m_ParentCell=null;
private Size m_LargestImageSize=Size.Empty;
/// <summary>
/// Initializes new instance of CellImages class.
/// </summary>
/// <param name="parentCell">Reference to parent cell.</param>
public CellImages(Cell parentCell)
{
m_ParentCell=parentCell;
}
#region Properties
internal System.Drawing.Image DisabledImageGenerated
{
get { return m_DisabledImageGenerated; }
set
{
m_DisabledImageGenerated = value;
}
}
/// <summary>
/// Gets or sets default cell image. Setting this property to valid image will
/// override any setting of ImageIndex property.
/// </summary>
/// <remarks>
/// <para>The image set through this property will be serialized with the cell. If you
/// plan to use ImageList then use <see cref="ImageIndex">ImageIndex</see>
/// property.</para>
/// <para>
/// <para>If you plan to use alpha-blended images we recommend using PNG-24 format
/// which supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1
/// do not support alpha-blending when used through Image class.</para>
/// </para>
/// </remarks>
/// <value>Image object or <strong>null (Nothing)</strong> if no image is assigned.</value>
[Browsable(true),DefaultValue(null),Category("Images"),Description("Indicates default cell image"), DevCoSerialize()]
public System.Drawing.Image Image
{
get {return m_Image;}
set
{
ChangeImage(ref m_Image, value);
}
}
/// <summary>
/// Resets Image property to it's default value (null, VB nothing).
/// </summary>
public void ResetImage()
{
TypeDescriptor.GetProperties(this)["Image"].SetValue(this, null);
}
/// <summary>
/// Gets or sets the image that is displayed when mouse is over the cell. Setting
/// this property to valid image will override any setting of ImageMouseOverIndex
/// property.
/// </summary>
/// <remarks>
/// If you plan to use alpha-blended images we recommend using PNG-24 format which
/// supports alpha-blending. As of this writting .NET Framework 1.0 and 1.1 do not support
/// alpha-blending when used through Image class.
/// </remarks>
[Browsable(true),DefaultValue(null),Category("Images"),Description("Indicates cell image when mouse is over the cell"), DevCoSerialize()]
public System.Drawing.Image ImageMouseOver
{
get {return m_ImageMouseOver;}
set
{
ChangeImage(ref m_ImageMouseOver, value);
}
}
/// <summary>
/// Resets ImageMouseOver to it's default value (null, VB nothing).
/// </summary>
public void ResetImageMouseOver()
{
TypeDescriptor.GetProperties(this)["ImageMouseOver"].SetValue(this, null);
}
/// <summary>
/// Gets or sets the image that is displayed when cell is disabled. If not assigned
/// disabled image is created from default cell image. Setting this property to valid image
/// will override any setting of ImageDisabledIndex property.
/// </summary>
/// <remarks>
/// If you plan to use alpha-blended images we recommend using PNG-24 format which
/// supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support
/// alpha-blending when used through Image class.
/// </remarks>
[Browsable(true), DefaultValue(null), Category("Images"), Description("Indicates disabled cell image")]
public System.Drawing.Image ImageDisabled
{
get { return m_ImageDisabled; }
set
{
ChangeImage(ref m_ImageDisabled, value);
}
}
/// <summary>
/// Resets ImageDisabled to it's default value (null, VB nothing).
/// </summary>
public void ResetImageDisabled()
{
this.ImageDisabled = null;
}
/// <summary>
/// Gets or sets image that is displayed when Node that this cell belongs to is
/// expanded. Setting this property to valid image will override any setting of
/// ImageExpandedIndex property.
/// </summary>
/// <remarks>
/// If you plan to use alpha-blended images we recommend using PNG-24 format which
/// supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support
/// alpha-blending when used through Image class.
/// </remarks>
[Browsable(true),DefaultValue(null),Category("Images"),Description("Indicates cell image when node associtaed with this cell is expanded"), DevCoSerialize()]
public System.Drawing.Image ImageExpanded
{
get {return m_ImageExpanded;}
set
{
ChangeImage(ref m_ImageExpanded, value);
}
}
/// <summary>
/// Resets ImageExpanded to it's default value (null, VB nothing).
/// </summary>
public void ResetImageExpanded()
{
TypeDescriptor.GetProperties(this)["ImageExpanded"].SetValue(this, null);
}
/// <summary>
/// Gets or sets the Index of default cell image from ImageList specified on AdvTree
/// control.
/// </summary>
/// <remarks>
/// If you plan to use alpha-blended images we recommend using PNG-24 format which
/// supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support
/// alpha-blending when used through Image class.
/// </remarks>
[Browsable(true),DefaultValue(-1),Category("ImageList Images"),Description("Indicates default cell image"), DevCoSerialize()]
public int ImageIndex
{
get {return m_ImageIndex;}
set
{
m_ImageIndex=value;
this.OnImageChanged();
}
}
private string _ImageKey = "";
/// <summary>
/// Gets or sets the key of the default cell image from ImageList specified on AdvTree control.
/// </summary>
[DefaultValue(""), Category("ImageList Images"), Description("Indicates the default cell image key"), DevCoSerialize()]
public string ImageKey
{
get { return _ImageKey; }
set
{
_ImageKey = value;
this.OnImageChanged();
}
}
/// <summary>
/// Property Editor support for ImageIndex selection
/// </summary>
[System.ComponentModel.Browsable(false),System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public System.Windows.Forms.ImageList ImageList
{
get
{
if(this.Parent!=null)
{
AdvTree tree=this.Parent.TreeControl;
if(tree!=null)
{
return tree.ImageList;
}
}
return null;
}
}
/// <remarks>
/// If you plan to use alpha-blended images we recommend using PNG-24 format which
/// supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support
/// alpha-blending when used through Image class.
/// </remarks>
/// <summary>
/// Gets or sets the Index of cell image when mouse is over the cell from ImageList
/// specified on AdvTree control.
/// </summary>
[Browsable(true),DefaultValue(-1),Category("ImageList Images"),Description("Indicates cell image when mouse is over the cell"), DevCoSerialize()]
public int ImageMouseOverIndex
{
get {return m_ImageMouseOverIndex;}
set
{
m_ImageMouseOverIndex=value;
this.OnImageChanged();
}
}
private string _ImageMouseOverKey = "";
/// <remarks>
/// If you plan to use alpha-blended images we recommend using PNG-24 format which
/// supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support
/// alpha-blending when used through Image class.
/// </remarks>
/// <summary>
/// Gets or sets the key of cell image when mouse is over the cell from ImageList
/// specified on AdvTree control.
/// </summary>
[Browsable(true), DefaultValue(""), Category("ImageList Images"), Description("Indicates cell image when mouse is over the cell"), DevCoSerialize()]
public string ImageMouseOverKey
{
get { return _ImageMouseOverKey; }
set
{
_ImageMouseOverKey = value;
this.OnImageChanged();
}
}
/// <remarks>
/// If you plan to use alpha-blended images we recommend using PNG-24 format which
/// supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support
/// alpha-blending when used through Image class.
/// </remarks>
/// <summary>
/// Gets or sets the Index of disabled cell image from ImageList specified on AdvTree
/// control.
/// </summary>
[Browsable(true), DefaultValue(-1), Category("ImageList Images"), Description("Indicates disabled cell image")]
public int ImageDisabledIndex
{
get { return m_ImageDisabledIndex; }
set
{
m_ImageDisabledIndex = value;
this.OnImageChanged();
}
}
private string _ImageDisabledKey = "";
/// <remarks>
/// If you plan to use alpha-blended images we recommend using PNG-24 format which
/// supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support
/// alpha-blending when used through Image class.
/// </remarks>
/// <summary>
/// Gets or sets the key of disabled cell image from ImageList specified on AdvTree
/// control.
/// </summary>
[Browsable(true), DefaultValue(""), Category("ImageList Images"), Description("Indicates disabled cell image")]
public string ImageDisabledKey
{
get { return _ImageDisabledKey; }
set
{
_ImageDisabledKey = value;
this.OnImageChanged();
}
}
/// <remarks>
/// If you plan to use alpha-blended images we recommend using PNG-24 format which
/// supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support
/// alpha-blending when used through Image class.
/// </remarks>
/// <summary>
/// Gets or sets the Index of cell image from ImageList specified on AdvTree control
/// that is used when Node associated with this cell is expanded
/// </summary>
[Browsable(true),DefaultValue(-1),Category("ImageList Images"),Description("Indicates expanded cell image"), DevCoSerialize()]
public int ImageExpandedIndex
{
get {return m_ImageExpandedIndex;}
set
{
m_ImageExpandedIndex=value;
this.OnImageChanged();
}
}
private string _ImageExpandedKey = "";
/// <remarks>
/// If you plan to use alpha-blended images we recommend using PNG-24 format which
/// supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support
/// alpha-blending when used through Image class.
/// </remarks>
/// <summary>
/// Gets or sets the key of cell image from ImageList specified on AdvTree control
/// that is used when Node associated with this cell is expanded
/// </summary>
[Browsable(true), DefaultValue(""), Category("ImageList Images"), Description("Indicates expanded cell image"), DevCoSerialize()]
public string ImageExpandedKey
{
get { return _ImageExpandedKey; }
set
{
_ImageExpandedKey = value;
this.OnImageChanged();
}
}
/// <summary>
/// Gets or sets the parent node of the cell.
/// </summary>
[Browsable(false),DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public Cell Parent
{
get {return m_ParentCell;}
set {m_ParentCell=value;}
}
/// <summary>
/// Gets whether CellImages object should be serialized or not. If object has all
/// default values then this property will return <strong>false</strong>.
/// </summary>
internal bool ShouldSerialize
{
get
{
if(m_Image==null && m_ImageDisabled==null && m_ImageDisabledIndex==-1 &&
m_ImageExpanded==null && m_ImageExpandedIndex==-1 && m_ImageIndex==-1 &&
m_ImageMouseOver==null && m_ImageMouseOverIndex==-1)
return false;
return true;
}
}
/// <summary>
/// Returns largest image size in this set of images.
/// </summary>
internal Size LargestImageSize
{
get
{
return m_LargestImageSize;
}
}
#endregion
#region Methods
/// <summary>Makes a copy of a CellImages object.</summary>
public virtual CellImages Copy()
{
CellImages ci=new CellImages(null);
ci.Image=this.Image;
// ci.ImageDisabled=this.ImageDisabled;
// ci.ImageDisabledIndex=this.ImageDisabledIndex;
ci.ImageExpanded = this.ImageExpanded == null ? null : (Image) this.ImageExpanded.Clone();
ci.ImageExpandedIndex=this.ImageExpandedIndex;
ci.ImageIndex=this.ImageIndex;
ci.ImageMouseOver=this.ImageMouseOver == null? null : (Image)this.ImageMouseOver.Clone();
ci.ImageMouseOverIndex=this.ImageMouseOverIndex;
ci.ImageDisabledKey = this.ImageDisabledKey;
ci.ImageExpandedKey = this.ImageExpandedKey;
ci.ImageKey = this.ImageKey;
ci.ImageMouseOverKey = this.ImageMouseOverKey;
return ci;
}
#endregion
#region Internals
/// <summary>
/// Changes the image and invokes largest image size calculation if the
/// image size truly changed.
/// </summary>
/// <param name="currentImage"></param>
/// <param name="newImage"></param>
private void ChangeImage(ref System.Drawing.Image currentImage, System.Drawing.Image newImage)
{
// Early out if no real change
if (currentImage == newImage)
return;
// Hold onto previous image
System.Drawing.Image previousImage = currentImage;
// Assign new image
currentImage = newImage;
// If either current or previous is null, or the sizes don't match,
// we need to resize ourselves and the parent.
if (previousImage == null || currentImage == null || GetImageSize(previousImage) != GetImageSize(currentImage))
{
RefreshLargestImageSize();
if (this.Parent != null)
this.Parent.OnImageChanged();
}
// Dispose the generated disabled image, if applicable.
DisposeGeneratedDisabledImage();
}
private Size GetImageSize(Image image)
{
try
{
return image.Size;
}
catch
{
return Size.Empty;
}
}
private void OnImageChanged()
{
RefreshLargestImageSize();
if (this.Parent != null)
this.Parent.OnImageChanged();
DisposeGeneratedDisabledImage();
}
public void Dispose()
{
DisposeGeneratedDisabledImage();
if (BarUtilities.DisposeItemImages || _AutoDispose)
{
BarUtilities.DisposeImage(ref m_Image);
BarUtilities.DisposeImage(ref m_ImageDisabled);
BarUtilities.DisposeImage(ref m_ImageExpanded);
BarUtilities.DisposeImage(ref m_ImageMouseOver);
}
}
internal void DisposeGeneratedDisabledImage()
{
if (m_DisabledImageGenerated != null)
{
m_DisabledImageGenerated.Dispose();
m_DisabledImageGenerated = null;
}
}
internal void RefreshLargestImageSize()
{
m_LargestImageSize=Size.Empty;
AdjustSize(m_Image,ref m_LargestImageSize);
AdjustSize(m_ImageDisabled,ref m_LargestImageSize);
AdjustSize(m_ImageExpanded,ref m_LargestImageSize);
AdjustSize(m_ImageMouseOver,ref m_LargestImageSize);
AdjustSize(GetImageByIndex(m_ImageIndex),ref m_LargestImageSize);
AdjustSize(GetImageByIndex(m_ImageDisabledIndex),ref m_LargestImageSize);
AdjustSize(GetImageByIndex(m_ImageExpandedIndex),ref m_LargestImageSize);
AdjustSize(GetImageByIndex(m_ImageMouseOverIndex),ref m_LargestImageSize);
AdjustSize(GetImageByKey(_ImageKey), ref m_LargestImageSize);
AdjustSize(GetImageByKey(_ImageDisabledKey), ref m_LargestImageSize);
AdjustSize(GetImageByKey(_ImageExpandedKey), ref m_LargestImageSize);
AdjustSize(GetImageByKey(_ImageMouseOverKey), ref m_LargestImageSize);
}
private void AdjustSize(System.Drawing.Image image, ref Size size)
{
if(image!=null)
{
if(image.Width>size.Width)
size.Width=image.Width;
if(image.Height>size.Height)
size.Height=image.Height;
}
}
/// <summary>
/// Returns image from image list based on the image index.
/// </summary>
/// <param name="imageIndex">Index of the image to return.</param>
/// <returns>Image object from image list.</returns>
internal System.Drawing.Image GetImageByIndex(int imageIndex)
{
if (imageIndex >= 0 && this.Parent != null && this.Parent.TreeControl != null && this.Parent.TreeControl.ImageList != null && this.Parent.TreeControl.ImageList.Images.Count > 0)
{
try
{
return this.Parent.TreeControl.ImageList.Images[imageIndex];
}
catch
{
return null;
}
}
else
return null;
}
/// <summary>
/// Returns image from image list based on the image key.
/// </summary>
/// <param name="key">Key of the image to return.</param>
/// <returns>Image object from image list.</returns>
internal System.Drawing.Image GetImageByKey(string key)
{
if (string.IsNullOrEmpty(key)) return null;
Cell parent = this.Parent;
if (parent == null) return null;
AdvTree tree = parent.TreeControl;
if (tree == null || tree.ImageList == null || !tree.ImageList.Images.ContainsKey(key)) return null;
return tree.ImageList.Images[key];
}
private bool _AutoDispose = false;
/// <summary>
/// Indicates whether assigned images are automatically disposed when the cell and node are disposed. Default value is false.
/// </summary>
[Browsable(false), DefaultValue(false)]
public bool AutoDispose
{
get { return _AutoDispose; }
set
{
_AutoDispose = value;
}
}
#endregion
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,583 @@
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Collections.Generic;
using System.Windows.Forms;
namespace DevComponents.AdvTree
{
/// <summary>
/// Represents collection for ColumnHeader objects.
/// </summary>
public class ColumnHeaderCollection : CollectionBase
{
#region Private Variables
private Node _ParentNode = null;
private AdvTree _Parent = null;
#endregion
#region Internal Implementation
/// <summary>
/// Default constructor.
/// </summary>
public ColumnHeaderCollection()
{
}
/// <summary>
/// Gets or sets the node this collection is associated with.
/// </summary>
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public Node ParentNode
{
get { return _ParentNode; }
}
/// <summary>
/// Sets the node collection belongs to.
/// </summary>
/// <param name="parent">ColumnHeader that is parent of this collection.</param>
internal void SetParentNode(Node parent)
{
_ParentNode = parent;
}
internal AdvTree Parent
{
get { return _Parent; }
set { _Parent = value; }
}
/// <summary>
/// Adds new object to the collection.
/// </summary>
/// <param name="ch">Object to add.</param>
/// <returns>Index of newly added object.</returns>
public int Add(ColumnHeader ch)
{
return List.Add(ch);
}
/// <summary>
/// Returns reference to the object in collection based on it's index.
/// </summary>
public ColumnHeader this[int index]
{
get { return (ColumnHeader)(List[index]); }
set { List[index] = value; }
}
/// <summary>
/// Returns reference to the object in collection based on it's name.
/// </summary>
public ColumnHeader this[string name]
{
get
{
int index = IndexOf(name);
if (index == -1) return null;
return this[index];
}
set { this[IndexOf(name)] = value; }
}
/// <summary>
/// Inserts new object into the collection.
/// </summary>
/// <param name="index">Position of the object.</param>
/// <param name="value">Object to insert.</param>
public void Insert(int index, ColumnHeader value)
{
List.Insert(index, value);
}
/// <summary>
/// Returns index of the object inside of the collection.
/// </summary>
/// <param name="value">Reference to the object.</param>
/// <returns>Index of the object.</returns>
public int IndexOf(ColumnHeader value)
{
return List.IndexOf(value);
}
/// <summary>
/// Returns index of the object inside of the collection.
/// </summary>
/// <param name="name">Name of column to return index for.</param>
/// <returns>Index of the column or -1 if column not found.</returns>
public int IndexOf(string name)
{
for (int i = 0; i < this.List.Count; i++)
{
if (this[i].Name == name) return i;
}
return -1;
}
/// <summary>
/// Returns index of the object inside of the collection based on column DataFieldName.
/// </summary>
/// <param name="dataFieldName">DataFieldName of column to return index for.</param>
/// <returns>Index of the column or -1 if column not found.</returns>
public int IndexOfDataField(string dataFieldName)
{
dataFieldName = dataFieldName.ToLower();
for (int i = 0; i < this.List.Count; i++)
{
if (this[i].DataFieldName.ToLower() == dataFieldName) return i;
}
return -1;
}
/// <summary>
/// Returns index of the object inside of the collection based on column DataFieldName.
/// </summary>
/// <param name="fieldName">DataFieldName of column to return index for.</param>
/// <returns>Index of the column or -1 if column not found.</returns>
internal int IndexOfField(string fieldName)
{
fieldName = fieldName.ToLower();
for (int i = 0; i < this.List.Count; i++)
{
ColumnHeader header = this[i];
if (header.Tag is BindingMemberInfo && ((BindingMemberInfo)header.Tag).BindingField.ToLower() == fieldName)
return i;
if (header.DataFieldName.ToLower() == fieldName) return i;
if (header.Name == fieldName) return i;
}
return -1;
}
/// <summary>
/// Returns whether collection contains specified object.
/// </summary>
/// <param name="value">Object to look for.</param>
/// <returns>true if object is part of the collection, otherwise false.</returns>
public bool Contains(ColumnHeader value)
{
return List.Contains(value);
}
protected override void OnSet(int index, object oldValue, object newValue)
{
if (oldValue is ColumnHeader)
{
ColumnHeader header = (ColumnHeader)oldValue;
if (header.SortDirection != eSortDirection.None) IsSorted = false;
}
if (newValue is ColumnHeader)
{
ColumnHeader header = (ColumnHeader)newValue;
if (header.SortDirection != eSortDirection.None) IsSorted = true;
}
base.OnSet(index, oldValue, newValue);
}
/// <summary>
/// Removes specified object from the collection.
/// </summary>
/// <param name="value"></param>
public void Remove(ColumnHeader value)
{
List.Remove(value);
}
protected override void OnRemoveComplete(int index, object value)
{
if (value is ColumnHeader)
{
ColumnHeader header = (ColumnHeader)value;
if (header.SortDirection != eSortDirection.None) IsSorted = false;
header.HeaderSizeChanged -= new EventHandler(this.HeaderSizeChanged);
header.SortCells -= new SortCellsEventHandler(SortCellsHandler);
header.MouseDown -= new System.Windows.Forms.MouseEventHandler(ColumnMouseDown);
header.MouseUp -= new System.Windows.Forms.MouseEventHandler(ColumnMouseUp);
header.Parent = null;
}
InvalidateDisplayIndexes();
UpdateTreeLayout();
base.OnRemoveComplete(index, value);
}
protected override void OnInsertComplete(int index, object value)
{
if (value is ColumnHeader)
{
((ColumnHeader)value).HeaderSizeChanged += new EventHandler(this.HeaderSizeChanged);
((ColumnHeader)value).SortCells += new SortCellsEventHandler(SortCellsHandler);
((ColumnHeader)value).MouseDown += new System.Windows.Forms.MouseEventHandler(ColumnMouseDown);
((ColumnHeader)value).MouseUp += new System.Windows.Forms.MouseEventHandler(ColumnMouseUp);
((ColumnHeader)value).Parent = this;
}
InvalidateDisplayIndexes();
UpdateTreeLayout();
base.OnInsertComplete(index, value);
}
[System.Reflection.Obfuscation(Exclude = true)]
private void ColumnMouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
AdvTree tree = GetTree();
if (tree != null)
tree.InvokeColumnHeaderMouseUp(sender, e);
}
[System.Reflection.Obfuscation(Exclude = true)]
private void ColumnMouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
AdvTree tree = GetTree();
if (tree != null)
tree.InvokeColumnHeaderMouseDown(sender, e);
}
private AdvTree GetTree()
{
AdvTree tree = _Parent;
if (tree == null && _ParentNode != null)
tree = _ParentNode.TreeControl;
return tree;
}
/// <summary>
/// Occurs before the cells are sorted.
/// </summary>
[Description("Occurs before the cells are sorted.")]
public event SortCellsEventHandler SortCells;
protected virtual void OnSortCells(SortEventArgs e)
{
if (SortCells != null)
SortCells(this, e);
}
private void SortCellsHandler(object sender, SortEventArgs e)
{
ColumnHeader ch = (ColumnHeader)sender;
int i = this.IndexOf(ch);
IComparer comparer = null;
if (e.ReverseSort)
{
if (ch.SortComparerReverse != null)
comparer = ch.SortComparerReverse;
else
comparer = new NodeComparerReverse(i);
}
else
{
if (ch.SortComparer != null)
comparer = ch.SortComparer;
else
comparer = new NodeComparer(i);
}
if (e.Comparer == null)
e.Comparer = comparer;
else
comparer = e.Comparer;
OnSortCells(e);
if (e.Cancel)
return;
if (_Parent != null)
{
_Parent.Nodes.Sort(comparer);
}
else if (_ParentNode != null)
_ParentNode.Nodes.Sort(comparer);
}
private bool _UpdatingSortDirection = false;
/// <summary>
/// Called when SortDirection property on column header is set to value other than None.
/// </summary>
/// <param name="header">Ref to column header</param>
internal void SortDirectionUpdated(ColumnHeader header)
{
if (_UpdatingSortDirection) return;
_UpdatingSortDirection = true;
try
{
if (header.SortDirection == eSortDirection.None)
{
IsSorted = false;
return;
}
IsSorted = true;
foreach (ColumnHeader col in this.List)
{
if (col != header && col.SortDirection != eSortDirection.None)
col.SortDirection = eSortDirection.None;
}
}
finally
{
_UpdatingSortDirection = false;
}
}
private bool _IsSorted;
/// <summary>
/// Gets whether a column that is part of this collection has SortDirection set.
/// </summary>
public bool IsSorted
{
get { return _IsSorted; }
internal set { _IsSorted = value; }
}
internal void UpdateSort()
{
if (!_IsSorted) return;
foreach (ColumnHeader header in this.List)
{
if (header.SortDirection != eSortDirection.None)
{
header.Sort(header.SortDirection == eSortDirection.Descending);
break;
}
}
}
private void UpdateTreeLayout()
{
if (_Parent != null)
{
_Parent.InvalidateNodesSize();
_Parent.Invalidate();
if (_Parent.Nodes.Count == 0)
_Parent.RecalcLayout();
else
_Parent.SetPendingLayout();
}
else if (_ParentNode != null)
{
AdvTree tree = _ParentNode.TreeControl;
if (tree != null)
{
tree.InvalidateNodeSize(_ParentNode);
tree.Invalidate();
}
}
}
private void HeaderSizeChanged(object sender, EventArgs e)
{
UpdateTreeLayout();
}
/// <summary>
/// Copies collection into the specified array.
/// </summary>
/// <param name="array">Array to copy collection to.</param>
/// <param name="index">Starting index.</param>
public void CopyTo(ColumnHeader[] array, int index)
{
List.CopyTo(array, index);
}
/// <summary>
/// Copies contained items to the ColumnHeader array.
/// </summary>
/// <param name="array">Array to copy to.</param>
internal void CopyTo(ColumnHeader[] array)
{
List.CopyTo(array, 0);
}
protected override void OnClear()
{
foreach (ColumnHeader item in this)
{
item.HeaderSizeChanged -= new EventHandler(this.HeaderSizeChanged);
item.SortCells -= new SortCellsEventHandler(SortCellsHandler);
item.MouseDown -= new System.Windows.Forms.MouseEventHandler(ColumnMouseDown);
item.MouseUp -= new System.Windows.Forms.MouseEventHandler(ColumnMouseUp);
item.Parent = null;
}
IsSorted = false;
base.OnClear();
}
/// <summary>
/// A map of display index (key) to index in the column collection (value). Used to quickly find a column from its display index.
/// </summary>
internal List<int> DisplayIndexMap
{
get
{
if (!_IsDisplayIndexValid)
{
UpdateDisplayIndexMap();
}
return _DisplayIndexMap;
}
}
/// <summary>
/// Gets the display index for specified column.
/// </summary>
/// <param name="column">Column that is part f ColumnHeaderCollection</param>
/// <returns>Display index or -1 column is not part of this collection.</returns>
public int GetDisplayIndex(ColumnHeader column)
{
int index = this.IndexOf(column);
UpdateDisplayIndexMap();
for (int i = 0; i < _DisplayIndexMap.Count; i++)
{
if (_DisplayIndexMap[i] == index) return i;
}
return -1;
}
/// <summary>
/// Returns the column that is displayed at specified display index..
/// </summary>
/// <param name="displayIndex">0 based display index.</param>
/// <returns>ColumnHeader</returns>
public ColumnHeader ColumnAtDisplayIndex(int displayIndex)
{
UpdateDisplayIndexMap();
return this[_DisplayIndexMap[displayIndex]];
}
private List<int> _DisplayIndexMap = new List<int>();
private bool _IsDisplayIndexValid = false;
private void UpdateDisplayIndexMap()
{
if (_IsDisplayIndexValid) return;
_IsDisplayIndexValid = true;
_DisplayIndexMap.Clear();
List<IndexToDisplayIndex> workingMap = new List<IndexToDisplayIndex>();
bool isAllDefault = true;
for (int i = 0; i < Count; i++)
{
int displayIndex = this[i].DisplayIndex;
if (displayIndex != -1) isAllDefault = false;
workingMap.Add(new IndexToDisplayIndex(i, displayIndex));
}
if (!isAllDefault)
workingMap.Sort(new DisplayIndexComparer());
foreach (IndexToDisplayIndex item in workingMap)
{
_DisplayIndexMap.Add(item.Index);
}
}
/// <summary>
/// Gets reference to last visible column or null if there is no last visible column.
/// </summary>
public DevComponents.AdvTree.ColumnHeader LastVisibleColumn
{
get
{
List<int> displayMap = DisplayIndexMap;
for (int i = displayMap.Count - 1; i >=0; i--)
{
if (this[displayMap[i]].Visible) return this[displayMap[i]];
}
return null;
}
}
/// <summary>
/// Gets reference to first visible column or null if there is no first visible column.
/// </summary>
public DevComponents.AdvTree.ColumnHeader FirstVisibleColumn
{
get
{
List<int> displayMap = DisplayIndexMap;
for (int i = 0; i < displayMap.Count; i++)
{
if (this[displayMap[i]].Visible) return this[displayMap[i]];
}
return null;
}
}
#region IndexToDisplayIndex Class
private class IndexToDisplayIndex
{
public int Index = -1;
public int DisplayIndex = -1;
/// <summary>
/// Initializes a new instance of the IndexToDisplayIndex class.
/// </summary>
/// <param name="index"></param>
/// <param name="displayIndex"></param>
public IndexToDisplayIndex(int index, int displayIndex)
{
Index = index;
DisplayIndex = displayIndex;
}
}
#endregion
#region DisplayIndexComparer
private class DisplayIndexComparer : IComparer<IndexToDisplayIndex>
{
#region IComparer<IndexToDisplayIndex> Members
public int Compare(IndexToDisplayIndex x, IndexToDisplayIndex y)
{
if (x.DisplayIndex == y.DisplayIndex)
{
return x.Index - y.Index;
}
else
{
return x.DisplayIndex - y.DisplayIndex;
}
}
#endregion
}
#endregion
internal void DisplayIndexChanged(ColumnHeader column, int newDisplayIndex, int oldDisplayIndex)
{
InvalidateDisplayIndexes();
if (_UpdatingDisplayIndexes) return;
if (_Parent != null && !_Parent.IsUpdateSuspended)
UpdateTreeLayout();
else if (_ParentNode != null && _ParentNode.TreeControl != null && !_ParentNode.TreeControl.IsUpdateSuspended)
UpdateTreeLayout();
}
/// <summary>
/// Invalidates the display indexes and causes them to be re-evaluated on next layout.
/// </summary>
public void InvalidateDisplayIndexes()
{
_IsDisplayIndexValid = false;
}
#endregion
private Rectangle _Bounds = Rectangle.Empty;
internal void SetBounds(System.Drawing.Rectangle totalBounds)
{
_Bounds = totalBounds;
}
/// <summary>
/// Gets the column header rendering bounds.
/// </summary>
[Browsable(false)]
public Rectangle Bounds
{
get { return _Bounds; }
}
internal bool UsesRelativeSize = false;
private bool _UpdatingDisplayIndexes = false;
internal bool UpdatingDisplayIndexes
{
get { return _UpdatingDisplayIndexes; }
set { _UpdatingDisplayIndexes = value; }
}
}
}
@@ -0,0 +1,324 @@
using System;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using DevComponents.DotNetBar;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
namespace DevComponents.AdvTree
{
internal class ColumnHeaderControl : Control
{
#region Constructor
/// <summary>
/// Initializes a new instance of the ColumnHeaderControl class.
/// </summary>
public ColumnHeaderControl()
{
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.Opaque, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.Selectable, false);
this.SetStyle(ControlStyles.StandardDoubleClick | ControlStyles.StandardClick, true);
}
#endregion
#region Internal Implementation
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
DisplayHelp.FillRectangle(g, this.ClientRectangle, this.BackColor);
if (_Columns == null)
{
return;
}
AdvTree tree = GetTree();
if (tree != null)
{
SmoothingMode sm = g.SmoothingMode;
TextRenderingHint th = g.TextRenderingHint;
if (tree.AntiAlias)
{
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.TextRenderingHint = DisplayHelp.AntiAliasTextRenderingHint;
}
//Creates the drawing matrix with the right zoom;
if (tree.Zoom != 1)
{
System.Drawing.Drawing2D.Matrix mx = GetTranslationMatrix(tree.Zoom);
//use it for drawing
g.Transform = mx;
}
tree.NodeDisplay.PaintColumnHeaders(_Columns, g, true);
int columnMoveMarkerIndex = _ColumnMoveMarkerIndex;
if (columnMoveMarkerIndex >= 0)
DevComponents.AdvTree.Display.ColumnHeaderDisplay.PaintColumnMoveMarker(g, tree, columnMoveMarkerIndex, _Columns);
if (tree.AntiAlias)
{
g.SmoothingMode = sm;
g.TextRenderingHint = th;
}
}
base.OnPaint(e);
}
private int _ColumnMoveMarkerIndex = -1;
/// <summary>
/// Gets or sets the column move marker that marks insertion point for column that is dragged. Marker is drawn before the column specified by this index.
/// </summary>
internal int ColumnMoveMarkerIndex
{
get { return _ColumnMoveMarkerIndex; }
set
{
_ColumnMoveMarkerIndex = value;
this.Invalidate();
}
}
/// <summary>
/// Returns mouse position which is translated if control Zoom is not equal 1
/// </summary>
/// <param name="x">X coordinate</param>
/// <param name="y">Y coordinate</param>
/// <returns></returns>
private Point GetLayoutPosition(float zoom, int x, int y)
{
if (zoom == 1)
return new Point(x, y);
Point[] p = new Point[] { new Point(x, y) };
using (System.Drawing.Drawing2D.Matrix mx = GetTranslationMatrix(zoom))
{
mx.Invert();
mx.TransformPoints(p);
}
return p[0];
}
private System.Drawing.Drawing2D.Matrix GetTranslationMatrix(float zoom)
{
System.Drawing.Drawing2D.Matrix mx = new System.Drawing.Drawing2D.Matrix(zoom, 0, 0, zoom, 0, 0);
return mx;
}
private AdvTree GetTree()
{
return this.Parent as AdvTree;
}
private ColumnHeaderCollection _Columns = null;
/// <summary>
/// Gets or sets the column header collection to be rendered.
/// </summary>
public ColumnHeaderCollection Columns
{
get { return _Columns; }
set { _Columns = value; }
}
private Cursor _OldCursor = null;
private ColumnHeader _MouseOverColumnHeader = null;
protected override void OnMouseMove(MouseEventArgs e)
{
AdvTree tree = GetTree();
Point p = GetLayoutPosition(tree.Zoom, e.X, e.Y);
ColumnHeader ch = tree.GetColumnAt(p.X, p.Y, _Columns);
if (_MouseOverColumnHeader != ch)
{
if (_MouseOverColumnHeader != null)
_MouseOverColumnHeader.InternalMouseLeave(e);
_MouseOverColumnHeader = ch;
if (_MouseOverColumnHeader != null)
{
_MouseOverColumnHeader.InternalMouseEnter(e);
Interop.WinApi.ResetHover(this);
}
}
if (ch != null)
{
ch.InternalMouseMove(e);
}
if (e.Button == MouseButtons.Left && _MouseDownHeader != null && tree.AllowUserToReorderColumns && (Math.Abs(_MouseDownPoint.X-e.X)>1))
{
tree.StartColumnReorder(p.X, p.Y);
return;
}
if (tree == null || e.Button != MouseButtons.None || !tree.AllowUserToResizeColumns) return;
if (tree.CanResizeColumnAt(p.X, p.Y))
{
if (_OldCursor == null)
{
_OldCursor = this.Cursor;
this.Cursor = Cursors.VSplit;
}
}
else
{
ReleaseCursor();
}
base.OnMouseMove(e);
}
ColumnHeader _MouseDownHeader = null;
private Point _MouseDownPoint = Point.Empty;
protected override void OnMouseDown(MouseEventArgs e)
{
AdvTree tree = GetTree();
Point p = Point.Empty;
bool canResize = false;
_MouseDownPoint = e.Location;
if (tree != null)
{
p = GetLayoutPosition(tree.Zoom, e.X, e.Y);
}
if (tree != null && tree.AllowUserToResizeColumns && e.Button == MouseButtons.Left)
canResize = tree.CanResizeColumnAt(p.X, p.Y);
if (tree != null)
{
p = GetLayoutPosition(tree.Zoom, e.X, e.Y);
ColumnHeader ch = tree.GetColumnAt(p.X, p.Y, _Columns);
if (ch != null)
{
_MouseDownHeader = ch;
if (!canResize)
ch.OnMouseDown(e);
}
}
if (tree == null || e.Button != MouseButtons.Left || !tree.AllowUserToResizeColumns) return;
if (canResize)
{
tree.StartColumnResize(p.X, p.Y);
}
this.Invalidate();
base.OnMouseDown(e);
}
protected override void OnMouseHover(EventArgs e)
{
if (Control.MouseButtons == MouseButtons.None)
{
AdvTree tree = GetTree();
Point p = this.PointToClient(Control.MousePosition);
p = GetLayoutPosition(tree.Zoom, p.X, p.Y);
ColumnHeader ch = tree.GetColumnAt(p.X, p.Y, _Columns);
if (ch != null)
{
ch.InternalMouseHover(e);
}
}
base.OnMouseHover(e);
}
protected override void OnMouseUp(MouseEventArgs e)
{
ReleaseCursor();
_MouseDownPoint = Point.Empty;
if (_MouseDownHeader!=null)
{
_MouseDownHeader.OnMouseUp(e);
_MouseDownHeader = null;
}
this.Invalidate();
base.OnMouseUp(e);
}
protected override void OnClick(EventArgs e)
{
AdvTree tree = GetTree();
Point p = Point.Empty;
if (tree != null)
{
Point tp = tree.PointToClient(Control.MousePosition);
p = GetLayoutPosition(tree.Zoom, tp.X, tp.Y);
ColumnHeader ch = tree.GetColumnAt(p.X, p.Y, _Columns);
if (ch != null)
{
ch.OnClick(e);
}
}
this.Invalidate();
base.OnClick(e);
}
internal DateTime IgnoreDoubleClickTime = DateTime.MinValue;
protected override void OnDoubleClick(EventArgs e)
{
AdvTree tree = GetTree();
Point p = Point.Empty;
if (tree != null)
{
Point tp = tree.PointToClient(Control.MousePosition);
p = GetLayoutPosition(tree.Zoom, tp.X, tp.Y);
ColumnHeader ch = tree.GetColumnAt(p.X, p.Y, _Columns);
if (ch != null)
{
DateTime now = DateTime.Now;
if (IgnoreDoubleClickTime != DateTime.MinValue && now.Subtract(IgnoreDoubleClickTime).TotalMilliseconds <= SystemInformation.DoubleClickTime)
{
IgnoreDoubleClickTime = DateTime.MinValue;
return;
}
IgnoreDoubleClickTime = DateTime.MinValue;
ch.OnDoubleClick(e);
}
}
this.Invalidate();
base.OnDoubleClick(e);
}
private void ReleaseCursor()
{
if (_OldCursor != null)
{
this.Cursor = _OldCursor;
_OldCursor = null;
}
}
protected override void OnMouseLeave(EventArgs e)
{
if (_MouseOverColumnHeader != null)
{
_MouseOverColumnHeader.InternalMouseLeave(e);
_MouseOverColumnHeader = null;
}
if (Control.MouseButtons != MouseButtons.Left)
ReleaseCursor();
base.OnMouseLeave(e);
}
#endregion
}
}
@@ -0,0 +1,151 @@
using System;
using System.ComponentModel;
namespace DevComponents.AdvTree
{
/// <summary>
/// Represents the width of the Column. Supports absolute width in Pixels and
/// relative width as percentage of the width of parent control.
/// </summary>
[ToolboxItem(false) ,System.ComponentModel.DesignTimeVisible(false),TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
public class ColumnWidth
{
private int m_Relative=0;
private int m_Absolute=0;
internal event EventHandler WidthChanged;
/// <summary>
/// Creates new instance of the object.
/// </summary>
public ColumnWidth()
{
}
/// <summary>
/// Gets or sets relative width expressed as percentage between 1-100. 0 indicates that
/// absolute width will be used.
/// </summary>
/// <remarks>
/// Relative width is expressed as percentage between 1-100 of the parent controls
/// width. 0 indicates that absolute width will be used. Absolute width always takes
/// priority over relative width. For example value of 30 assigned to this property
/// indicates that width of the column will be 30% of the total client width of the
/// control.
/// </remarks>
[DefaultValue(0),Browsable(true),Description("Gets or sets relative width in percent. Valid values are between 1-100 with 0 indicating that absolute width will be used.")]
public int Relative
{
get {return m_Relative;}
set
{
if(m_Relative!=value)
{
m_Relative=value;
OnSizeChanged();
}
}
}
/// <summary>Gets or sets the absolute width of the column in pixels.</summary>
/// <remarks>
/// Absolute width always takes precedence over the relative width of the
/// column.
/// </remarks>
[DefaultValue(0),Browsable(true),Description("Gets or sets the absolute width of the column in pixels.")]
public int Absolute
{
get {return m_Absolute;}
set
{
if(m_Absolute<0)
return;
if(m_Absolute!=value)
{
m_Absolute=value;
if(m_Absolute!=0)
m_Relative=0;
OnSizeChanged();
}
}
}
internal void SetAbsolute(int value)
{
m_Absolute = value;
}
internal int GetWidth(int containerWidth)
{
if (m_Absolute > 0)
return m_Absolute;
if(m_Relative>0)
return (100 / m_Relative) * containerWidth;
return 0;
}
private void OnSizeChanged()
{
if(WidthChanged!=null)
WidthChanged(this,new EventArgs());
}
private bool _AutoSize = false;
/// <summary>
/// Gets or sets whether column width is automatically set based on the column's content. Default value is false.
/// When set absolute and relative size values are ignored.
/// </summary>
[DefaultValue(false), Description("Indicates whether column is sized based on the content.")]
public bool AutoSize
{
get { return _AutoSize; }
set
{
if (_AutoSize != value)
{
_AutoSize = value;
OnSizeChanged();
}
}
}
internal void SetAutoSize(bool autoSize)
{
_AutoSize = autoSize;
}
private bool _AutoSizeMinHeader = false;
/// <summary>
/// Gets or sets whether column auto-width is set to minimum of the column header text width. Applies to AutoSize=true only.
/// </summary>
[DefaultValue(false), Description("Indicates whether column auto-width is set to minimum of the column header text width. Applies to AutoSize=true only.")]
public bool AutoSizeMinHeader
{
get { return _AutoSizeMinHeader; }
set
{
_AutoSizeMinHeader = value;
OnSizeChanged();
}
}
private int _AutoSizeWidth = 0;
/// <summary>
/// Gets the auto-size calculated width of the column after tree layout is performed and column has AutoSize=true.
/// </summary>
[Browsable(false)]
public int AutoSizeWidth
{
get { return _AutoSizeWidth; }
// internal set
// {
// _AutoSizeWidth = value;
// }
}
internal void SetAutoSizeWidth(int value)
{
_AutoSizeWidth = value;
}
}
}
@@ -0,0 +1,30 @@
using System;
namespace DevComponents.AdvTree
{
/// <summary>
/// Provides event arguments for command button events.
/// </summary>
public class CommandButtonEventArgs:EventArgs
{
/// <summary>
/// Default constructor.
/// </summary>
/// <param name="action">Action type.</param>
/// <param name="node">Context node.</param>
public CommandButtonEventArgs(eTreeAction action, Node node)
{
this.Action=action;
this.Node=node;
}
/// <summary>
/// Indicates the action type that caused the event.
/// </summary>
public eTreeAction Action=eTreeAction.Code;
/// <summary>
/// Indicates the node action is peformed on.
/// </summary>
public DevComponents.AdvTree.Node Node=null;
}
}
@@ -0,0 +1,154 @@
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
namespace DevComponents.AdvTree
{
/// <summary>
/// Represents collection of connector points for a node.
/// </summary>
public class ConnectorPointsCollection:CollectionBase
{
#region Private Variables
private Node m_ParentNode=null;
#endregion
#region Internal Implementation
/// <summary>
/// Default constructor.
/// </summary>
public ConnectorPointsCollection()
{
}
/// <summary>
/// Gets or sets the node this collection is associated with.
/// </summary>
[Browsable(false),DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public Node ParentNode
{
get {return m_ParentNode;}
}
/// <summary>
/// Sets the node collection belongs to.
/// </summary>
/// <param name="parent">Node that is parent of this collection.</param>
internal void SetParentNode(Node parent)
{
m_ParentNode=parent;
}
/// <summary>
/// Adds new object to the collection.
/// </summary>
/// <param name="p">Object to add.</param>
/// <returns>Index of newly added object.</returns>
public int Add(Point p)
{
return List.Add(p);
}
/// <summary>
/// Adds range of objects to the array.
/// </summary>
/// <param name="ap">Array to add.</param>
public void AddRange(Point[] ap)
{
foreach(Point p in ap)
this.Add(p);
}
/// <summary>
/// Copies objects of the collection to the array.
/// </summary>
/// <returns></returns>
public Point[] ToArray()
{
Point[] ap=new Point[this.Count];
this.CopyTo(ap);
return ap;
}
/// <summary>
/// Returns reference to the object in collection based on it's index.
/// </summary>
public Point this[int index]
{
get {return (Point)(List[index]);}
set {List[index] = value;}
}
/// <summary>
/// Inserts new object into the collection.
/// </summary>
/// <param name="index">Position of the object.</param>
/// <param name="value">Object to insert.</param>
public void Insert(int index, Point value)
{
List.Insert(index, value);
}
/// <summary>
/// Returns index of the object inside of the collection.
/// </summary>
/// <param name="value">Reference to the object.</param>
/// <returns>Index of the object.</returns>
public int IndexOf(Point value)
{
return List.IndexOf(value);
}
/// <summary>
/// Returns whether collection contains specified object.
/// </summary>
/// <param name="value">Object to look for.</param>
/// <returns>true if object is part of the collection, otherwise false.</returns>
public bool Contains(Point value)
{
return List.Contains(value);
}
/// <summary>
/// Removes specified object from the collection.
/// </summary>
/// <param name="value"></param>
public void Remove(Point value)
{
List.Remove(value);
}
protected override void OnRemoveComplete(int index,object value)
{
base.OnRemoveComplete(index,value);
}
protected override void OnInsertComplete(int index,object value)
{
base.OnInsertComplete(index,value);
}
/// <summary>
/// Copies collection into the specified array.
/// </summary>
/// <param name="array">Array to copy collection to.</param>
/// <param name="index">Starting index.</param>
public void CopyTo(Point[] array, int index)
{
List.CopyTo(array, index);
}
/// <summary>
/// Copies contained items to the ColumnHeader array.
/// </summary>
/// <param name="array">Array to copy to.</param>
internal void CopyTo(Point[] array)
{
List.CopyTo(array,0);
}
protected override void OnClear()
{
base.OnClear();
}
#endregion
}
}
@@ -0,0 +1,243 @@
using System;
using System.Text;
using DevComponents.Editors;
using System.Windows.Forms;
using DevComponents.Editors.DateTimeAdv;
namespace DevComponents.AdvTree
{
#if FRAMEWORK20
#region Integer Custom Editor
internal class IntegerCellEditor : IntegerInput, ICellEditControl
{
#region ICellEditControl Members
public void BeginEdit()
{
#if (FRAMEWORK20)
this.MinimumSize = new System.Drawing.Size(32, 10);
#endif
}
public void EndEdit()
{
this.Dispose();
}
public object CurrentValue
{
get
{
if (this.FreeTextEntryMode && this.IsKeyboardFocusWithin)
this.ApplyFreeTextValue();
return this.Text;
}
set
{
if (value is int)
this.Value = (int)value;
else if (value == null)
this.ValueObject = null;
else
{
string s = Utilities.StripNonNumeric(value.ToString());
int i = 0;
#if FRAMEWORK20
int.TryParse(s, out i);
#else
try
{
i = int.Parse(s);
}
catch { }
#endif
this.Value = i;
}
}
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter || keyData == Keys.Tab)
{
if (EditComplete != null)
EditComplete(this, new EventArgs());
return true;
}
else if (keyData == Keys.Escape)
{
if (CancelEdit != null)
CancelEdit(this, new EventArgs());
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
public event EventHandler EditComplete;
public event EventHandler CancelEdit;
public bool EditWordWrap
{
get { return false; }
set { }
}
#endregion
}
#endregion
#region Double Custom Editor
internal class DoubleCellEditor : DoubleInput, ICellEditControl
{
#region ICellEditControl Members
public void BeginEdit()
{
#if (FRAMEWORK20)
this.MinimumSize = new System.Drawing.Size(32, 10);
#endif
}
public void EndEdit()
{
this.Dispose();
}
public object CurrentValue
{
get
{
if (this.FreeTextEntryMode && this.IsKeyboardFocusWithin)
this.ApplyFreeTextValue();
return this.Text;
}
set
{
if (value is int)
this.Value = (int)value;
else if (value == null)
this.ValueObject = null;
else
{
string s = Utilities.StripNonNumeric(value.ToString());
double i = 0;
#if FRAMEWORK20
double.TryParse(s, out i);
#else
try
{
i = double.Parse(s);
}
catch { }
#endif
this.Value = i;
}
}
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter || keyData == Keys.Tab)
{
if (EditComplete != null)
EditComplete(this, new EventArgs());
return true;
}
else if (keyData == Keys.Escape)
{
if (CancelEdit != null)
CancelEdit(this, new EventArgs());
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
public event EventHandler EditComplete;
public event EventHandler CancelEdit;
public bool EditWordWrap
{
get { return false; }
set { }
}
#endregion
}
#endregion
#region Date-Time Custom Editor
internal class DateTimeCellEditor : DateTimeInput, ICellEditControl
{
#region Constructor
/// <summary>
/// Initializes a new instance of the DateTimeCellEditor class.
/// </summary>
public DateTimeCellEditor()
{
this.BackgroundStyle.BorderColor = System.Drawing.Color.Transparent;
}
#endregion
#region ICellEditControl Members
public void BeginEdit()
{
this.MinimumSize = new System.Drawing.Size(70, 10);
}
public void EndEdit()
{
this.Dispose();
}
public object CurrentValue
{
get
{
return this.Text;
}
set
{
if (value is DateTime)
this.Value = (DateTime)value;
else if (value == null)
this.ValueObject = null;
else if(value is string)
{
DateTime date = DateTime.MinValue;
if (DateTime.TryParse((string)value, out date))
this.Value = date;
}
}
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter || keyData == Keys.Tab)
{
if (EditComplete != null)
EditComplete(this, new EventArgs());
return true;
}
else if (keyData == Keys.Escape)
{
if (CancelEdit != null)
CancelEdit(this, new EventArgs());
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
public event EventHandler EditComplete;
public event EventHandler CancelEdit;
public bool EditWordWrap
{
get { return false; }
set { }
}
#endregion
}
#endregion
#endif
}
@@ -0,0 +1,328 @@
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using DevComponents.DotNetBar;
using DevComponents.DotNetBar.Rendering;
namespace DevComponents.AdvTree.Display
{
/// <summary>
/// Represents cell display class.
/// </summary>
internal class CellDisplay
{
public CellDisplay()
{
}
private static Office2007CheckBoxItemPainter _CheckBoxPainter;
public static Office2007CheckBoxItemPainter CheckBoxPainter
{
get { return _CheckBoxPainter; }
set { _CheckBoxPainter = value; }
}
public static Office2007CheckBoxColorTable ColorTable = null;
public static void PaintCell(NodeCellRendererEventArgs ci)
{
if(ci.Cell.CheckBoxVisible)
CellDisplay.PaintCellCheckBox(ci);
if(!ci.Cell.Images.LargestImageSize.IsEmpty)
CellDisplay.PaintCellImage(ci);
CellDisplay.PaintText(ci);
}
public static void PaintCellCheckBox(NodeCellRendererEventArgs ci)
{
if(!ci.Cell.CheckBoxVisible)
return;
Cell cell = ci.Cell;
Rectangle r = cell.CheckBoxBoundsRelative;
r.Offset(ci.CellOffset);
if (ci.CheckBoxImageChecked != null)
{
Image img = ci.CheckBoxImageChecked;
if (cell.CheckState == System.Windows.Forms.CheckState.Unchecked)
img = ci.CheckBoxImageUnChecked;
else if (cell.CheckState == System.Windows.Forms.CheckState.Indeterminate)
img = ci.CheckBoxImageIndeterminate;
if (img != null)
ci.Graphics.DrawImage(img, r);
}
else if (_CheckBoxPainter != null)
{
Office2007CheckBoxStateColorTable ct = GetCheckBoxStateColorTable(ci);
if (cell.CheckBoxStyle == eCheckBoxStyle.CheckBox)
{
_CheckBoxPainter.PaintCheckBox(ci.Graphics, r, ct, cell.CheckState);
}
else
{
_CheckBoxPainter.PaintRadioButton(ci.Graphics, r, ct, cell.Checked);
}
}
else
{
System.Windows.Forms.ButtonState state = System.Windows.Forms.ButtonState.Normal;
if (ci.Cell.Checked)
state = System.Windows.Forms.ButtonState.Checked;
System.Windows.Forms.ControlPaint.DrawCheckBox(ci.Graphics, r, state);
}
}
private static Office2007CheckBoxStateColorTable GetCheckBoxStateColorTable(NodeCellRendererEventArgs e)
{
Cell cell = e.Cell;
if (ColorTable != null && BarFunctions.IsOffice2007Style(e.ColorScheme.Style))
{
Office2007CheckBoxColorTable ct = ColorTable;
if (!cell.GetEnabled())
return ct.Disabled;
//else if (cell.IsMouseDown)
// return ct.Pressed;
//else if (cell.IsMouseOver)
// return ct.MouseOver;
return ct.Default;
}
else
{
ColorScheme cs = e.ColorScheme;
// Create color table based on the ColorScheme object...
Office2007CheckBoxStateColorTable ct = new Office2007CheckBoxStateColorTable();
if (!cell.GetEnabled())
{
ct.CheckBackground = new LinearGradientColorTable(cs.MenuBackground, Color.Empty);
ct.CheckBorder = cs.ItemDisabledText;
ct.CheckInnerBorder = cs.ItemDisabledText;
ct.CheckInnerBackground = new LinearGradientColorTable();
ct.CheckSign = new LinearGradientColorTable(cs.ItemDisabledText, Color.Empty);
ct.Text = cs.ItemDisabledText;
}
//else if (cell.IsMouseDown)
//{
// ct.CheckBackground = new LinearGradientColorTable(cs.MenuBackground, Color.Empty);
// ct.CheckBorder = cs.ItemPressedBorder;
// ct.CheckInnerBorder = cs.ItemPressedBorder;
// ct.CheckInnerBackground = new LinearGradientColorTable(cs.ItemPressedBackground, cs.ItemPressedBackground2);
// ct.CheckSign = new LinearGradientColorTable(cs.ItemPressedText, Color.Empty);
// ct.Text = cs.ItemPressedText;
//}
//else if (cell.IsMouseOver)
//{
// ct.CheckBackground = new LinearGradientColorTable(cs.MenuBackground, Color.Empty);
// ct.CheckBorder = cs.ItemHotBorder;
// ct.CheckInnerBorder = cs.ItemHotBorder;
// ct.CheckInnerBackground = new LinearGradientColorTable(cs.ItemHotBackground, cs.ItemHotBackground2);
// ct.CheckSign = new LinearGradientColorTable(cs.ItemHotText, Color.Empty);
// ct.Text = cs.ItemHotText;
//}
else
{
ct.CheckBackground = new LinearGradientColorTable(cs.MenuBackground, Color.Empty);
ct.CheckBorder = cs.PanelBorder;
ct.CheckInnerBorder = ColorBlendFactory.SoftLight(cs.PanelBorder, Color.White);
ct.CheckInnerBackground = new LinearGradientColorTable(cs.MenuBackground, Color.Empty);
ct.CheckSign = new LinearGradientColorTable(cs.ItemText, Color.Empty);
ct.Text = cs.ItemText;
}
return ct;
}
}
public static void PaintCellImage(NodeCellRendererEventArgs ci)
{
if(ci.Cell.Images.LargestImageSize.IsEmpty)
return;
Rectangle r=ci.Cell.ImageBoundsRelative;
r.Offset(ci.CellOffset);
Image image = CellDisplay.GetCellImage(ci.Cell);
if(image!=null)
{
Size imageSize = Dpi.ImageSize(image.Size);
ci.Graphics.DrawImage(image, r.X + (r.Width - imageSize.Width) / 2,
r.Y + (r.Height - imageSize.Height) / 2, imageSize.Width, imageSize.Height);
}
}
public static void PaintText(NodeCellRendererEventArgs ci)
{
Cell cell = ci.Cell;
if (cell.HostedControl == null && cell.HostedItem == null && (cell.DisplayText == "" || ci.Style.TextColor.IsEmpty) || cell.TextContentBounds.IsEmpty)
return;
Rectangle bounds = ci.Cell.TextContentBounds;
bounds.Offset(ci.CellOffset);
Graphics g = ci.Graphics;
if (cell.HostedControl != null)
{
if (!cell.HostedControl.Visible)
cell.HostedControl.Visible = true;
return;
}
else if (cell.HostedItem != null)
{
BaseItem item = cell.HostedItem;
if (item.ItemAlignment == eItemAlignment.Near)
item.LeftInternal = bounds.X;
else if (item.ItemAlignment == eItemAlignment.Far)
item.LeftInternal = bounds.X + (bounds.Width - item.WidthInternal);
else if (item.ItemAlignment == eItemAlignment.Center)
item.LeftInternal = bounds.X + (bounds.Width - item.WidthInternal) / 2;
if (item.DisplayRectangle.Height < bounds.Height)
item.TopInternal = bounds.Y + (bounds.Height - item.DisplayRectangle.Height) / 2;
else
item.TopInternal = bounds.Y;
item.Displayed = true;
Region oldClip = g.Clip;
Rectangle cb = bounds;
cb.Inflate(2, 1);
g.SetClip(cb, CombineMode.Intersect);
item.Paint(ci.ItemPaintArgs);
if (oldClip != null)
{
g.Clip = oldClip;
oldClip.Dispose();
}
return;
}
Font font = ci.Style.Font;
if (bounds.Width > 1 && bounds.Height > 1)
{
//eTextFormat textFormat = ci.Style.TextFormat;
//textFormat = textFormat & ~(textFormat & eTextFormat.HidePrefix);
//textFormat |= eTextFormat.NoPrefix;
if (cell.TextMarkupBody == null)
{
TextDrawing.DrawString(g, cell.DisplayText, font, ci.Style.TextColor, bounds, ci.Style.TextFormat);
}
else
{
DevComponents.DotNetBar.TextMarkup.MarkupDrawContext d = new DevComponents.DotNetBar.TextMarkup.MarkupDrawContext(g, font, ci.Style.TextColor, false);
d.HotKeyPrefixVisible = !((ci.Style.TextFormat & eTextFormat.HidePrefix) == eTextFormat.HidePrefix);
Rectangle mr = Rectangle.Empty;
eStyleTextAlignment lineAlignment = ci.Style.TextLineAlignment;
if (lineAlignment == eStyleTextAlignment.Center)
{
mr = new Rectangle(bounds.X, bounds.Y + (bounds.Height - cell.TextMarkupBody.Bounds.Height) / 2, cell.TextMarkupBody.Bounds.Width, cell.TextMarkupBody.Bounds.Height);
}
else if (lineAlignment == eStyleTextAlignment.Near)
{
mr = new Rectangle(bounds.X, bounds.Y, cell.TextMarkupBody.Bounds.Width, cell.TextMarkupBody.Bounds.Height);
}
else // Far
{
mr = new Rectangle(bounds.X, bounds.Y + (bounds.Height - cell.TextMarkupBody.Bounds.Height), cell.TextMarkupBody.Bounds.Width, cell.TextMarkupBody.Bounds.Height);
}
cell.TextMarkupBody.Bounds = mr;
cell.TextMarkupBody.Render(d);
}
}
}
private static Image GetCellImage(Cell cell)
{
Image img=cell.Images.Image;
bool enabled = cell.GetEnabled();
if (!enabled && (cell.Images.ImageDisabled != null || cell.Images.ImageDisabledIndex >= 0 || cell.Images.DisabledImageGenerated != null))
{
if (cell.Images.DisabledImageGenerated != null) return cell.Images.DisabledImageGenerated;
if (cell.Images.ImageDisabled != null) return cell.Images.ImageDisabled;
if (cell.Images.ImageDisabledIndex >= 0) return cell.Images.GetImageByIndex(cell.Images.ImageDisabledIndex);
}
if(img == null && !string.IsNullOrEmpty(cell.Images.ImageKey))
img = cell.Images.GetImageByKey(cell.Images.ImageKey);
if (img == null && cell.Images.ImageIndex >= 0)
img = cell.Images.GetImageByIndex(cell.Images.ImageIndex);
if (!enabled && img is Bitmap)
{
cell.Images.DisposeGeneratedDisabledImage();
cell.Images.DisabledImageGenerated = ImageHelper.CreateGrayScaleImage(img as Bitmap);
if (cell.Images.DisabledImageGenerated != null) return cell.Images.DisabledImageGenerated;
return img;
}
if(cell.IsMouseOver && (cell.Images.ImageMouseOver!=null || cell.Images.ImageMouseOverIndex>= 0 || !string.IsNullOrEmpty(cell.Images.ImageMouseOverKey)))
{
if (cell.Images.ImageMouseOver != null)
img = cell.Images.ImageMouseOver;
else if (cell.Images.ImageMouseOverIndex >= 0)
img = cell.Images.GetImageByIndex(cell.Images.ImageMouseOverIndex);
else
img = cell.Images.GetImageByKey(cell.Images.ImageMouseOverKey);
}
else if(cell.Parent.Expanded && (cell.Images.ImageExpanded!=null || cell.Images.ImageExpandedIndex>= 0 || !string.IsNullOrEmpty(cell.Images.ImageExpandedKey)))
{
if (cell.Images.ImageExpanded != null)
img = cell.Images.ImageExpanded;
else if (cell.Images.ImageExpandedIndex >= 0)
img = cell.Images.GetImageByIndex(cell.Images.ImageExpandedIndex);
else
img = cell.Images.GetImageByKey(cell.Images.ImageExpandedKey);
}
return img;
}
public static Font GetCellFont(AdvTree tree, Cell cell)
{
Font font=tree.Font;
ElementStyle style=null;
if(cell.StyleNormal!=null)
{
style=cell.StyleNormal;
}
else
{
if(tree.NodeStyle!=null)
style=tree.NodeStyle;
else
style=new ElementStyle();
if(tree.CellStyleDefault!=null)
style=tree.CellStyleDefault;
else
style=ElementStyle.GetDefaultCellStyle(style);
}
if(style!=null && style.Font!=null)
font=style.Font;
return font;
}
}
/// <summary>
/// Represents information necessary to paint the cell on canvas.
/// </summary>
internal class CellDisplayInfo
{
public ElementStyle Style=null;
public System.Drawing.Graphics Graphics=null;
public Cell ContextCell=null;
public Point CellOffset=Point.Empty;
public CellDisplayInfo()
{
}
public CellDisplayInfo(ElementStyle