Commit Graph

45 Commits

Author SHA1 Message Date
cygon
734d06f7bb Dissolved dependency on Nuclex.Support.Transactions by dropping two progress reporting helpers 2024-06-14 17:39:10 +02:00
cygon
1bb2363a07 Changed license to Apache License 2.0 2024-06-14 16:42:33 +02:00
Markus Ewald
857917aad5 Added alternative .NET 4.6.2 project; MultiPageViewForm now has a default constructor just so it doesn't upset the Windows Forms designer
git-svn-id: file:///srv/devel/repo-conversion/nuwi@57 d2e56fa2-650e-0410-a79f-9358c0239efd
2023-10-03 12:35:14 +00:00
Markus Ewald
db68a9741e The multi page view can now deal with multi page view models that change the active page from a different thread (as it should be, in WPF all bound property change notifications are allowed to come from any thread)
git-svn-id: file:///srv/devel/repo-conversion/nuwi@56 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-16 20:06:34 +00:00
Markus Ewald
e16af9dee9 Added properties to access the active page view and page view model
git-svn-id: file:///srv/devel/repo-conversion/nuwi@55 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-13 22:23:28 +00:00
Markus Ewald
b69488f9a6 Page switching now with 100% less flickering; page switching to a null view model is allowed now
git-svn-id: file:///srv/devel/repo-conversion/nuwi@54 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-13 22:07:48 +00:00
Markus Ewald
91432c5209 The progress spinner can now tell its optimal size required to show the entire status text but overlap as few controls as possible; began implementing a generic version of a multi page view model and matching view with caching
git-svn-id: file:///srv/devel/repo-conversion/nuwi@53 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-13 21:26:12 +00:00
Markus Ewald
17ec2d0f69 The progress spinner can now also show a status message beneath it (optional)
git-svn-id: file:///srv/devel/repo-conversion/nuwi@52 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-13 11:57:01 +00:00
Markus Ewald
bb672c59f8 Code cleanup; added one of my long-winded explanations for why the progress spinner does things the way it's doing
git-svn-id: file:///srv/devel/repo-conversion/nuwi@51 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-13 11:31:05 +00:00
Markus Ewald
7439c31390 Added a progress spinner control that should work on top of WinForms even with its poor transparent control support
git-svn-id: file:///srv/devel/repo-conversion/nuwi@50 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-13 11:20:18 +00:00
Markus Ewald
2b908f18eb The window manager can now also create just view models (without immediately binding a view); added MultiPageViewModel as a base class for the common case of view models that embed multi pages they can switch between; added missing copyright statement for the late checked synchronization context
git-svn-id: file:///srv/devel/repo-conversion/nuwi@49 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-13 10:30:19 +00:00
Markus Ewald
a17926d02e ViewControl and ViewForm were not actually reacting when their data context changed -- fixed; view models can now delay their search for a main window (needed to synchronize change notifications to the main threads because of those shitty WinForms controls); WindowManager now accepts ...Page as a postfix for a view name, too
git-svn-id: file:///srv/devel/repo-conversion/nuwi@48 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-11 18:05:06 +00:00
Markus Ewald
b405fe957b Wrapped WinForms' common dialogs into a service, too, in case a view model wants to ask the user to select a file (view models requesting views by activating other view models or services is okay -- it's testable, decoupled and said views/services are fully replaceable)
git-svn-id: file:///srv/devel/repo-conversion/nuwi@47 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-07 18:32:14 +00:00
Markus Ewald
0f70f53f18 Created a service to display message boxes (view models that want to report errors are usually in a shitty situation - now for simple applications view models can send and error message that will either be displayed or used by a unit test to check the view model is actually failing as expected)
git-svn-id: file:///srv/devel/repo-conversion/nuwi@46 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-07 18:03:11 +00:00
Markus Ewald
14d0ea1371 Added threaded action to wrap sub-actions a view model can perform (this can either be scheduled individually or on the parent threaded view model); added missing copyright statement; more unit tests
git-svn-id: file:///srv/devel/repo-conversion/nuwi@45 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-07 17:36:40 +00:00
Markus Ewald
9aa64c4dac Added a placeholder auto binding system to automate binding of views to view models without writing so much boilerplate code
git-svn-id: file:///srv/devel/repo-conversion/nuwi@44 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-06 18:34:47 +00:00
Markus Ewald
826f2eb763 Created a window manager that will automatically locate the matching view to a view model and set up the view's data context for binding; also added an interface through which other services can track the active window (i.e. to display message boxes so view models don't have to drag around a view reference just for that)
git-svn-id: file:///srv/devel/repo-conversion/nuwi@43 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-06 18:04:10 +00:00
Markus Ewald
e728a182c5 Added some 'dialog view models' that fire events when a dialog is to be closed (this allows ok and cancel buttons to be normally bound, allowing the view model to be unit tested and to run code upon receiving an ok click, the event then signaling to the dialog that it should close with the specified result)
git-svn-id: file:///srv/devel/repo-conversion/nuwi@42 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-06 07:30:41 +00:00
Markus Ewald
4ef5dd9430 Cleaned and added a base class for view models with background processing tha uses the new ThreadedAction class to do its background processing; added a view binding interface for WinForms that emulates the WPF design
git-svn-id: file:///srv/devel/repo-conversion/nuwi@41 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-06 07:00:27 +00:00
Markus Ewald
435935691a Updated copyright statement and pasted it where it was missing; some cosmetic fixes
git-svn-id: file:///srv/devel/repo-conversion/nuwi@40 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-01 20:06:36 +00:00
Markus Ewald
c71700f8e6 ContainerListView unit test is now also explicit so the test suite can run on headless systems
git-svn-id: file:///srv/devel/repo-conversion/nuwi@39 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-21 16:26:45 +00:00
Markus Ewald
d5895e2e7d Made more tests explicit so this library can be compiled on a headless system
git-svn-id: file:///srv/devel/repo-conversion/nuwi@38 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-21 15:50:07 +00:00
Markus Ewald
ac9431bb4b Made the TestProgressAssignment test explicit because it cannot run in headless mode
git-svn-id: file:///srv/devel/repo-conversion/nuwi@37 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-21 15:33:39 +00:00
Markus Ewald
b635bb21de Switched to an ObservableList in response to the change to Nuclex.Support
git-svn-id: file:///srv/devel/repo-conversion/nuwi@35 d2e56fa2-650e-0410-a79f-9358c0239efd
2011-10-25 14:59:46 +00:00
Markus Ewald
082e73aab5 Minor documentation change for readability
git-svn-id: file:///srv/devel/repo-conversion/nuwi@30 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-03-30 11:05:26 +00:00
Markus Ewald
8d092bd9e8 Removed the EmbeddedControlCollection (it's not being used anymore at all); fixed flickering of the ContainerListView control
git-svn-id: file:///srv/devel/repo-conversion/nuwi@29 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-02-18 18:40:44 +00:00
Markus Ewald
9a5252f461 Fixed the remaining issues in the ContainerListView control; minor documentation improvements
git-svn-id: file:///srv/devel/repo-conversion/nuwi@28 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-11-03 19:41:14 +00:00
Markus Ewald
985f2622aa Switched ContainerListView to use the new ObservableCollection class for embedded controls instead of its custom collection; updated ProgressReporterForm to match current coding conventions
git-svn-id: file:///srv/devel/repo-conversion/nuwi@27 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-04-01 19:38:32 +00:00
Markus Ewald
112e5993ef Followup-Change to the rename from Waitable to Transaction; fixes several comments which were still referring to "Progression", the stone-age name of the concept; fixed a minor grammatical error in the comments
git-svn-id: file:///srv/devel/repo-conversion/nuwi@26 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-14 18:06:31 +00:00
Markus Ewald
4c24b82836 The ProgressReporterForm was still referring to "progressions" (old name for the request class) in some places - fixed; improved code documentation
git-svn-id: file:///srv/devel/repo-conversion/nuwi@25 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-10-29 20:50:55 +00:00
Markus Ewald
39f1e6a4c9 Project is now architecture-independent since Nuclex.Support (which is used by Nuclex.Windows.Forms) is no longer bound to x86 (XNA dependencies have been moved to Nuclex.Game)
git-svn-id: file:///srv/devel/repo-conversion/nuwi@24 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-08-14 21:19:02 +00:00
Markus Ewald
1063c4f0f2 Fixed a glaring bug in the ProgressReporter which could throw exceptions into the ProgressChanged event handler (race condition between dialog setup and first progress message)
git-svn-id: file:///srv/devel/repo-conversion/nuwi@21 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-06-18 19:20:25 +00:00
Markus Ewald
2a7d04ce45 Updated ProgressReporterForm to reflect the latest changes to the Tracking framework; renamed WeightedProgression.cs to WeightedWaitable.cs in order to match the previous name changed of the class contained therein; improved documentation of the Camera class
git-svn-id: file:///srv/devel/repo-conversion/nuwi@19 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-27 18:34:17 +00:00
Markus Ewald
b93bb04f5f Switched assemblies to always use 32 bit runtime (most are using the XNA runtime, so the AnyCPU configuration would only wreak havoc on x64 platforms); progress reporter window is no longer resizable
git-svn-id: file:///srv/devel/repo-conversion/nuwi@14 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-12-10 20:22:55 +00:00
Markus Ewald
1de87c2c00 Added a tool strip host for the tracking bar, allowing it to be embedded inside a status bar; fixed a bug in the progress reporter form that would prevent AsyncAbort() from actually being called when the user clicked on the cancel button; AsyncProgressBar no longer changes the style of the progress bar, this is now up to the user; ProgressReporterForm now switches ProgressBar between Marquee and Blocks styles on its own; various formatting enhancements
git-svn-id: file:///srv/devel/repo-conversion/nuwi@13 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-12-04 20:54:42 +00:00
Markus Ewald
5c913cc48a Improved AsyncProgressBar documentation and fine tuned the progress bar's behavior
git-svn-id: file:///srv/devel/repo-conversion/nuwi@11 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-12 18:52:41 +00:00
Markus Ewald
4261d9b449 Ported the ProgressReporter and the TrackingBar to the AsyncProgressBar control to eliminate the very similar code both controls were using to perform thread synchronization
git-svn-id: file:///srv/devel/repo-conversion/nuwi@10 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-22 21:55:35 +00:00
Markus Ewald
4734c35111 Extracted and improved the code used to asynchronously update a progress bar without blocking in order to remove similar code from the progress dialog and the tracking bar
git-svn-id: file:///srv/devel/repo-conversion/nuwi@9 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-19 21:16:20 +00:00
Markus Ewald
c5fba24733 Added a progress reporting form that provides a convenient way to lock up the user interface during all-exclusive background processes
git-svn-id: file:///srv/devel/repo-conversion/nuwi@8 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-17 19:33:18 +00:00
Markus Ewald
19c55f370e Fully implemented the tracking bar control which will now act as a specialized progress bar for tracking progressions
git-svn-id: file:///srv/devel/repo-conversion/nuwi@7 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-16 19:00:02 +00:00
Markus Ewald
6af905e107 Fixed a small typo
git-svn-id: file:///srv/devel/repo-conversion/nuwi@5 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-22 18:17:01 +00:00
Markus Ewald
b6257ae0e9 Added empty class for planned TrackingBar control; copied CPL statement in front of all source files
git-svn-id: file:///srv/devel/repo-conversion/nuwi@4 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-11 21:23:35 +00:00
Markus Ewald
f36cfeb68f Upgraded to NUnit 2.4.0
git-svn-id: file:///srv/devel/repo-conversion/nuwi@3 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-04-13 19:31:53 +00:00
Markus Ewald
ed2eb1443e The ContainerListView control should now be working the way it way intended to
git-svn-id: file:///srv/devel/repo-conversion/nuwi@2 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-04-02 18:49:05 +00:00
Markus Ewald
a82371fa93 Initial import of Nuclex.Windows.Forms, containing a special ListView control that can contain embedded controls in its cells
git-svn-id: file:///srv/devel/repo-conversion/nuwi@1 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-03-30 19:52:40 +00:00