User (Legacy) Posted January 7, 2005 Report Share Posted January 7, 2005 Does ChartFX support Undo/Redo of user changes to charts? If not directly, is there a data/attribute change event that I can register for to see what is being changed and the before and after so that I can store this information in my own undo/redo stack? Thanks, Greg Link to comment Share on other sites More sharing options...
Software FX Posted January 7, 2005 Report Share Posted January 7, 2005 The Personalization menu allow you to revert back to the original chart (before you started to make changes) and it also allows you to save the chart's settings at an specific point in time (and later restore it). There is no way of storing the specific changes made to the chart for every user action, this would require a very complex API to identify the myriad of changes that can be made by the user, some of which are hard to express in terms of "properties" (for example the user dragged a point changing its X and Y value). There are several events fired to allow you to maintain a "dirty" state if you want to provide your users whit the option for saving the chart before closing the form (InternalCommand, DataChangedByUser, etc.). You could save the chart before these changes occur using the Export method and although you won't be able to tell what changed you will be able to revert the changes by Importing the previously saved template. -- FP Software FX Link to comment Share on other sites More sharing options...
User (Legacy) Posted January 8, 2005 Author Report Share Posted January 8, 2005 I actually don't think an undo/redo stack is that difficult. The way I suggest handling of situations when multiple things change is to simply put multiple actions in a single transaction. i.e. Record Begin transaction command; record do this, record do that, record do another, record End transaction command. If your developers would like to discuss this, I'll be glad to. As for your personalization, I do not see documentation saying that I can record this information to a memory (which I could store to my own undo stack). Also, is there an estimate or range of how large this data object is? Thanks, Greg "SoftwareFX Support" <noreply@softwarefx.com> wrote in message news:yUM2W$Q9EHA.3492@webserver3.softwarefx.com... > The Personalization menu allow you to revert back to the original chart > (before you started to make changes) and it also allows you to save the > chart's settings at an specific point in time (and later restore it). > > There is no way of storing the specific changes made to the chart for > every user action, this would require a very complex API to identify the > myriad of changes that can be made by the user, some of which are hard to > express in terms of "properties" (for example the user dragged a point > changing its X and Y value). > > There are several events fired to allow you to maintain a "dirty" state if > you want to provide your users whit the option for saving the chart before > closing the form (InternalCommand, DataChangedByUser, etc.). You could > save the chart before these changes occur using the Export method and > although you won't be able to tell what changed you will be able to revert > the changes by Importing the previously saved template. > > -- > FP > Software FX > Link to comment Share on other sites More sharing options...
Software FX Posted January 8, 2005 Report Share Posted January 8, 2005 >> I actually don't think an undo/redo stack is that difficult. I agree, even though we all know the devil is in the details. The code required to "replay" a specific command in the stack could become large given the number of objects and properties we have. It would be tempting to use reflection in this situation but I am not sure it would work in low trust scenarios. Saving the entire chart template could become large if the user modifies a lot of properties. We have discussed supporting an undo/redo stack but we think it is really worth in some of our extensions (like OLAP) where you can easily get lost after executing a couple of actions and want to go back. In the case of a normal chart it is not clear if supporting an undo stack is necessary as the changes you do in the chart are really cosmetic (color changes, gallery, etc.) >> Also, is there an estimate or range of how large this data object is? We do not have any numbers as it depends on the number of series, the existence of per-point attributes, titles, etc. You can easily get a more accurate estimate by doing Chart1.Export(FileFormat.BinaryTemplate,stream) and get the stream size. As always we appreciate your feedback and welcome any ideas/suggestions that would help us improve our product. -- JC Software FX "Greg" <greg@nowhere.com> wrote in message news:E%23K2V3a9EHA.3492@webserver3.softwarefx.com... >I actually don't think an undo/redo stack is that difficult. The way I >suggest handling of situations when multiple things change is to simply put >multiple actions in a single transaction. i.e. Record Begin transaction >command; record do this, record do that, record do another, record End >transaction command. > > If your developers would like to discuss this, I'll be glad to. > > As for your personalization, I do not see documentation saying that I can > record this information to a memory (which I could store to my own undo > stack). Also, is there an estimate or range of how large this data object > is? > > Thanks, > Greg > > > "SoftwareFX Support" <noreply@softwarefx.com> wrote in message > news:yUM2W$Q9EHA.3492@webserver3.softwarefx.com... >> The Personalization menu allow you to revert back to the original chart >> (before you started to make changes) and it also allows you to save the >> chart's settings at an specific point in time (and later restore it). >> >> There is no way of storing the specific changes made to the chart for >> every user action, this would require a very complex API to identify the >> myriad of changes that can be made by the user, some of which are hard to >> express in terms of "properties" (for example the user dragged a point >> changing its X and Y value). >> >> There are several events fired to allow you to maintain a "dirty" state >> if you want to provide your users whit the option for saving the chart >> before closing the form (InternalCommand, DataChangedByUser, etc.). You >> could save the chart before these changes occur using the Export method >> and although you won't be able to tell what changed you will be able to >> revert the changes by Importing the previously saved template. >> >> -- >> FP >> Software FX >> > > Link to comment Share on other sites More sharing options...
Software FX Posted January 8, 2005 Report Share Posted January 8, 2005 To clarify my comments: I did not mean that are incapable of implementing multi-level undo-redo, I have personally implemented this in several occasions, it is simply a matter of cost-benefit. At this point, we consider that the resources (man hours) for developing this feature can be put to better use developing other features that will have a greater impact in the quality of our product. Your request is certainly noted and we strive to satisfy all of our customers, I was just trying to be honest and instead of saying "sure we will add this in the next version" I wanted to give you some insight on what the reasons are for this feature not being there. As JC said, for the kind of operation you can do through the Chart FX UI, we feel the one level undo provided by Personalization is adequate for most of our users, this may change as the product evolves. -- FP Software FX, Inc. Link to comment Share on other sites More sharing options...
User (Legacy) Posted January 9, 2005 Author Report Share Posted January 9, 2005 I will try the export to a memory stream (without data) to see how large this is. For my interest, it is precisely the ability for the user to undo each individual "cosmetic" change that is my interest. If I have to re-create your user editors in order to maintain my undo/redo state, I'll lose a significant advantage of your system. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.