User Profile & Activity

Jimmy Petrus Administrator
Page
of 18
Posted: December 7, 2010 1:48 AM

Yiannis,

Isn't the expander button already in the right-side by default? Did you mean to put it to the left-side instead?

Posted: December 7, 2010 1:23 AM

2010 R2 will include UXCurrencyEditor with sophisticated currency editing experiences, such as value and decimal spinning, automatic format as you type, and more.

You can login to http://dev2.intersoftpt.com to read the complete roadmap.

Thanks,
Jimmy

Posted: December 6, 2010 10:17 PM

It's actually announced here: http://intersoftpt.wordpress.com/2010/11/12/the-next-clientui-roadmap-unveiled/

Lots of input controls, all kind of date and time picker, masked text box, and more.

Hth,
Jimmy

Chris,

The UXDesktop requires the TaskBar to perform minimize and maximize command because TaskBar is responsible to "perform" the minimize logic and "determines" the largest boundary for a maximized window, this conforms to desktop UI/UX standards.

The good news is the TaskBar property in UXDesktop is defined with ITaskBar interface type, so you can actually implement any kind of task bar user interface as long as you implement the ITaskBar interface. You can learn more about the concept here.

So in your case, yes, you can do whatever you desire for your custom task bar to do when a minimize or maximize command occur. This is done in your implementation of the ITaskBar interface, which has the following signature:

    public interface ITaskBar : IAnimationProvider
{
Dock DockPosition { get; set; }
ISItemsControl Owner { get; set; }

Point GetPositionOffset();
Size GetSizeBoundary();
WindowStateData GetWindowStateData(string targetState);
bool PerformWindowOperation(IWindow window, string operation);
bool PrepareWindowOperation(IWindow window, string operation);
}

If your task bar doesn't implement any docking capability, you may want to always set it to Dock.Bottom (considering the most common task bar position).

The PrepareWindowOperation and PerformWindowOperation are executed consecutively when a window demands an operation in the task bar. You generally perform preparation in the PrepareWindowOperation (i.e, preparing animation and storyboard if any).

The GetPositionOffset and GetSizeBoundary tells UXDesktop the position and the size of your task bar. You need to return the correct coordinate of your task bar location, UXDesktop automatically knows what to do when performing maximize command.

Note: The interface is defined in Intersoft.Client.Framework assembly.

Hope this helps,
Jimmy

Posted: December 6, 2010 10:00 PM

Chris,

The UXDesktop has built-in arrangement that use "cascading" implementation by default.

It's very possible to implement your own built-in window arrangement since the arrangement was implemented "loosely coupled" using commanding.

The window arrangement is generally executed under WindowCommands.ArrangeLayout command. So if you have additional implementation, or wish to override the default implementation completely, you can do so by adding a command binding to the ArrangeLayout command against the UXDesktop instance (or static class handler).

Then you implement your custom arrangement logic in the CanExecute and Executed handler of the command binding, and simply set e.Handled = true to override default behavior.

Using this approach, all arrangement commands (invoked either via API, commanding or internally in UXDesktop), automatically redirects the window arrangement logic to your new implementation.

Hope this helps,
Jimmy

Posted: December 6, 2010 9:01 AM

Glad to hear you figured out the problem. Let me know if you found any glitches when integrating it to the UI.

Posted: December 2, 2010 7:49 AM

Bill, sure thing. You can reach me at jimmyps [at] intersoftpt.com.

Thanks,
Jimmy

Posted: December 1, 2010 6:28 AM

I initially didn't see any relations between the UI and the error that you encountered, but thought that you may add an object in the "callback" context, thus I suggest you using the BeginInvoke technique.

Based on your error stack trace, I still didn't see the relation between the dialog box and the "business rules". At a glance, this seems to be a constraint in DF in which a collection shouldn't be modified while it's being enumerated. Generally, your business rules wouldn't affect the Views, and vice versa.

I suggest you to replicate the problem "without" using dialog box/UI and see if you can successfully perform subsequent edits within the callback context. I presume that you should get the same exception here, I would be definitely interested if your results show otherwise.


Posted: December 1, 2010 1:40 AM

Added to our feature request database as work item #862.

Many thanks for your feedback!

Regards,
Jimmy

Posted: December 1, 2010 1:36 AM

Bill,

Thank you for providing more information about your scenario,

Okay, it appears that you're trying to modify the collection of the results passed from the collection in the event raised by DevForce, which is not allowed in this context.

The solution is to call the Open method in the next thread by using CrossPlatform library included in Intersoft Client Framework.

The code example is as follows:

CrossPlatform.BeginInvoke(
new Action(delegate
{
// your code here
}));

Let me know if that solves your problem.


Hope this helps,
Jimmy
All times are GMT -5. The time now is 7:39 PM.
Previous Next