This week I succeed with reading the source values/evaluated values and started with real editing.
So, for each rule 3 kinds of views are available:
- Source
- Evaluated
- Package (Source String)
1. Source |
In this view are displayed source values for properties, and user can edit the value.
All the changes are reflected in the second - Evaluated View.
2. Evaluated |
In this view are displayed evaluated values for properties, and user can only view (text boxes are disabled).
3. Source String |
I added this view in order to offer the user a clear view of the part of .autopkg file, which is edited from the first tab - Source Value. Source String tab is in a view only mode - not for editing.
For the Undo/Redo functionality I used Monitored Undo Framework from http://muf.codeplex.com/
The Root of the History is MainViewModel and it keeps the stack of changes for all View Models (Source Values). After Editing a Source Value, user can navigate to the Evaluated tab and see the changes (I think is especially interesting/important to see the reevaluated values when source value have parameters, ex: glib[${flavor}] or "libffi[${flavor}]-${libffi-dep-version}-${arch}-${libffi-dep-publickeytoken}"). When user press undo/redo having focus on the evaluated tab, the reevaluated undo/redo undo is shown ( is not needed to navigate back to the source values to perform undo/redo - both view models are updated/synchronized).
Next week problems to solve:
- WPF Focus Issue - when perform undo/redo for the different rules located on different tabs, to set the focus on the corresponding control - tab, textbox etc.
- Support editing and undo/redo for the collections - ex: list of assemblies for the manifest rules, list of files, required package collections
- Create User control 'Editable List for the Collections'
- Create the Dynamic view for the #define rule
For this rule the view is different, because there are no fixed properties which are expected,
so the list of properties could be like :
#define {
general-description : "GLib is a general-purpose utility library for C, mostly used with GTK and GNOME.";
};
#define {
package-version : 2.32.3.7;
author-version : 2.32.3;
outercurve-publickeytoken : 1e373a58e25250cb;
deps-publickeytoken : "${outercurve-publickeytoken}";
libintl-dep-version : 0.18.1;
libintl-dep-publickeytoken : "${deps-publickeytoken}";
libffi-dep-version : 3.0.10;
libffi-dep-publickeytoken : "${deps-publickeytoken}";
zlib-dep-version : 1.2.5;
zlib-dep-publickeytoken : "${outercurve-publickeytoken}";
flavor : "${comp??vc10}";
arch : "${plat??x86}";
};
No comments:
Post a Comment