The Actipro Blog

All the latest UI control development news from Actipro

More Windows Workflow Designer Sample Updates

BlogPostBanner

Back in August, we posted a blog entry showing off a sample we created, where a hosted Windows Workflow Designer instance is integrated with our WPF Docking/MDI and SyntaxEditor controls to dramatically improve the designer UI.  We then posted a second update describing several more enhancements that were made.

Today we posted a third update to the sample, which adds these new features…

  • Updated to properly commit changes on editor focus loss.
  • Updated the language to be a single instance instead of getting created for each editor instance, which improves performance.
  • Updated to focus editor properly on the first mouse click.
  • Added proper notifications of the expression editor's events.

Variable1

These and our prior updates dramatically improve the end user experience when working in a rehosted Windows Workflow Designer scenario.

Summary

If you rehost the Windows Workflow Designer in your WPF apps and would like our example, please contact us and we'll be happy to share it with you!

For those customers who downloaded either of the prior versions, this update is at the same URL as before.

TaskDownload TaskLiveDemo TaskBuyNow

Filed under: Actipro, New features, WPF

SyntaxEditor - Search Pane Result Highlights

PostBannerSyntaxEditorDevNotes

In our last post, we announced that incremental search result highlights werecoming to SyntaxEditor for WPF, WinRT/XAML, and Silverlight in the next maintenance release.  These are highlights that show where each match of the incremental search text is within the document, making it easy for the end user to see the matches without having to iterate through each one.

We also are making this feature available for those who have search panes in their apps and want to be able to highlight matching results as the user enters find text in the search pane.

How It Works

Each editor view now has a new property on it named HighlightedResultSearchOptions that can be set to any ISearchOptions value.  When it is set, a worker thread searches the document for matches and highlights them.

SearchResultHighlighting

In the screenshot above, we type in a TextBox and in the TextBox.TextChanged event handler, update the value of the view's HighlightedResultSearchOptions property.  Highlights then appear for the find text matches, which is "doc" in this case.

Summary

The search result highlights help the end user quickly see where matches are without the need to cycle through them, and can be wired up to any search pane.  This feature is coming in the next maintenance release.

TaskDownload TaskLiveDemo TaskBuyNow

SyntaxEditor - Incremental Search Result Highlights

PostBannerSyntaxEditorDevNotes

In our last post, we announced that incremental search features were coming to SyntaxEditor for WPF, WinRT/XAML, and Silverlight in the next maintenance release.

We are working on an ancillary feature to that, which we hope to also have completed soon.  This feature automatically highlights matching results when doing an incremental search.

How It Works

To start incremental search mode, press Ctrl+I and start typing some characters. The characters will be accumulated into a find text string and used to search the document for the next instance of the find text, which will be selected.  For this sample, I have pressed Ctrl+I and then "r".

SearchHighlights1

All of the instances of the letter r in the editor have been highlighted.  Now I will continue to type out the full word "random".

SearchHighlights2

All of the instances of the word random are now highlighted.  The first instance is selected.  Pressing Ctrl+I at this point would move the selection to the next highlighted instance..

Summary

The search result highlights help the end user quickly see where matches are without the need to cycle through them.  We hope to have this feature in the next maintenance release.

TaskDownload TaskLiveDemo TaskBuyNow

SyntaxEditor - Incremental Search

PostBannerSyntaxEditorDevNotes

Another new feature is coming to SyntaxEditor for WPF, WinRT/XAML, and Silverlight in the next maintenance release: incremental search.

What is Incremental Search?

Incremental search is a way for the end user to quickly search for text in a document without needing to interact with search dialogs or panes.  With a couple keyboard strokes, the end user can instantly start searching for text.

How It Works

To start incremental search mode, press Ctrl+I and start typing some characters. The characters will be accumulated into a find text string and used to search the document for the next instance of the find text, which will be selected.

IncrementalSearch

Press Ctrl+I to move to the next match, or Ctrl+Shift+I to move to the previous match. Continue typing characters to append to the find text. Backspace can be used to remove characters from the find text. Esc can be used to deactivate incremental search mode.

The WPF and WinRT versions are capable of showing custom cursors while incremental search is active, enabling the end user to have a visual indicator of the current mode.  Silverlight unfortunately doesn't allow for custom mouse cursors.  It is recommended that all platforms also show some sort of status bar indicator.  In the screenshot above, you can see how the StatusBar is updated as I type to show the current find text.

Summary

Incremental search is already available in SyntaxEditor for WinForms and will now be in the other SyntaxEditor platforms after the next maintenance releases.

TaskDownload TaskLiveDemo TaskBuyNow

WinRT XAML Controls 2013.2 Released

WinRTBlogPostBanner

The Actipro WinRT XAML Controls 2013.2 have been released and are now ready for download.  This version adds a complete port of our SyntaxEditor control and related add-ons, and also adds a number of new controls to existing products.

Major new features are described below.  See the announcement post for the detailed list of enhancements and updates.

A new WinRT XAML Studio bundle option is available that includes SyntaxEditor, Charts, Micro Charts, and our Shared Library.  The pricing saves you 40% over purchasing those products individually!  Best of all, once you have an active WinRT XAML Studio subscription, you will receive any new control products added to the bundle for free while your subscription is active.

If you are an existing customer of our individual WinRT/XAML controls and would like to switch to studio bundle at a discounted price, please contact our sales team.

ProductHeadingGenericSyntaxEditor

SyntaxEditor Control

Our SyntaxEditor control is fully ported and now is available for use in WinRT/XAML apps!  This code editor control lets you make any sort of IDE, script, or expression editor app.

SyntaxEditorSDIEditor

SyntaxEditor is a powerful text editing control that is packed with features for efficient code editing, including syntax highlighting, code outlining, parsing, line numbers, block selection, IntelliPrompt UI, zooming, adornments, single-line mode, and much more. It is built on top of our next-generation extensible text/parsing framework and has many of the same code editing features found in the Visual Studio code editor.  The WinRT/XAML version shares a codebase with the WPF and Silverlight versions of SyntaxEditor, making it easy to transition code between platforms.

Now you can build your own apps, just like our free Code Writer app in the Windows Store.

LL(*) Parser Framework

The LL(*) Parser Framework is Actipro's own framework for constructing robust text parsers that work standalone or with code editor controls like SyntaxEditor. The framework features grammars that are written in C#/VB using EBNF-like notation, customizable AST construction, advanced error handling/reporting, easy code injection, a complete debugger UI, and much more.

The framework is included with the SyntaxEditor control for WinRT/XAML.

.NET Languages Add-on

The SyntaxEditor .NET Languages Add-on is an optional add-on that provides automated IntelliPrompt completion lists, parameter info, quick info, code snippets, code outlining, parsing, AST construction, syntax error reporting, a resolver, formatting, and more for C# and Visual Basic documents.

Web Languages Add-on

The SyntaxEditor Web Languages Add-on is an optional add-on that provides automated IntelliPrompt quick info, code outlining, parsing, AST construction, syntax error reporting, end tag auto-complete, formatting, and more for XML documents.  It also includes advanced JavaScript editing with code outlining, parsing, syntax error reporting, formatting and more.

ProductHeadingGenericCharts

PieChart

A new pie chart control has been added to complement our other bar, line, area, and scatter chart offerings.

Pie

The pie chart supports advanced features like multiple label positioning and display options, legend display, nesting of multiple series, hierarchical data, and more.

DonutChart

Donut

Donut charts have been added as well.  All the same features found in pie charts are found in donut charts, and the hole radius is fully configurable.

Axis Tick Labels for Percentage Stacked Charts

PercentageStackingChart

When using stacking bar or area charts with the percentage axis option, the percentage value labels now display on the axis.

Improved Scatter Chart Samples

ScatterChart

A new and improved scatter sample has been added.

Dark Theme Support

Dark themes are now fully supported out-of-the-box.

ProductHeadingGenericMicroCharts

Multiple Part Property Paths in XPath and YPath

The XY charts now allow multi-part property paths to be specified in their XPath and YPath binding values.

Dark Theme Support

Dark themes are now fully supported out-of-the-box for controls like box plot and candlestick.

ProductHeadingGenericShared

RadialSlider Control

RadialSlider is a circular slider that can be used to input any scalar value.

RadialSlider

In the example above, a couple RadialSlider and RingSlice controls are combined to build a timer app.

RingSlice Control

RingSlice renders a portion of a ring at designated angles and radius.

RingSlice

The slice's start and end angles can be bound to any data and its appearance can be fully customized.  Make dotted lines, add different end cap styles, etc.

CircularThumb Control

CircularThumb is a thumb gripper with a circular shape and arrow adornment.  It is what the end user interacts with in a RadialSlider, as seen in the screenshot above.

TaskDownload TaskLiveDemo TaskBuyNow

Filed under: Actipro, New product, WinRT, XAML

SyntaxEditor Adding Multi-Line Editing Features

PostBannerSyntaxEditorDevNotes

We've got an exciting new SyntaxEditor feature to announce that's been desired by a number of customers.  And best of all, it's coming to all our supported platforms:  WPF, Silverlight, WinRT/XAML (coming very shortly), and WinForms.

The new feature is the ability to edit multiple lines when a block selection is active, also known as column editing.  First, let's review block selections.

Block Selection

Block selection occurs when you hold Shift+Alt and press the arrow keys.  For instance if you press the Shift+Alt+Down shortcut a couple times, you create a block selection that in previous versions would end up selecting the entire three lines since its selection was zero-width (no real characters were selected).  If you then pressed Shift+Alt+Right, it would make a rectangular selection that is three lines tall and one character wide.

At this point you could extend the selection further and then copy it, move to a new location in the document, paste it, and the entire block would be pasted in place there.  This is a very handy editing feature in some scenarios.

Changes to Block Selection

In the next SyntaxEditor releases, we have altered how things work when you have the zero-width block selection.  Again this is the scenario where you start with no selection and press Shift+Alt+Down a couple times.  In the updated code, we now no longer show selection over all the lines and instead, render a thin line that displays where the block selection is.

BlockEditing1

In the screenshot above, you can see the blue lines that indicate the location of the zero-width block selection.

BlockEditing2

If we extend the block selection to the right, it become a rectangle that covers the class attributes.  We now can delete that by pressing Del.

Multi-Line Editing

Now let's get onto a demonstration of the new features coming for multi-line editing.

BlockEditing3

Again, I've created a zero-width block selection and now I'll start typing.

BlockEditing4

I've typed in the div tag again but I only did it once.  It automatically entered the characters I typed on each line that was part of the zero-width block selection.  That's pretty neat!

Not only does normal character typing work while doing multi-line editing, but Tab (indent), Shift+Tab (outdent), Del (delete next character), Backspace (delete previous character), Shift+Del (delete to next word start), and Shift+Backspace (delete to previous word start) also do.  For instance if I press Backspace to delete the last character I typed, the result is this:

BlockEditing5

The last character I typed (a >) is now gone in all three lines.

Summary

These sorts for multi-line editing features can really help increase productivity in a number of editing scenarios.  They will be included in the next releases of our WPF, Silverlight, and WinForms controls.  And they will be included in the upcoming WinRT version of SyntaxEditor as well.

SyntaxEditor for WinRT - Ready for Beta Testing

PostBannerSyntaxEditorDevNotes

The WinRT XAML port of our popular SyntaxEditor syntax-highlighting code editor control is now development complete and we're looking for beta testers to help make sure it's production ready for it's launch after Windows 8.1 is released.

The SyntaxEditor port includes our LL(*) Parser Framework, as well as shows off the advanced premium language add-ons: .NET Languages Add-on (C# and VB), and the Web Languages Add-on (XML and JavaScript).

Launcher

Note that Visual Studio 2013 RC (or later) and Windows 8.1 are required for this beta.

Please contact us if you would like to assist us by helping to test the control and its add-ons in your Windows 8.1 apps.  In your e-mail to us, give a brief overview of how you intend to use the product.

We look forward to hearing from you!

SyntaxEditor Is Coming to Windows 8.1

PostBannerSyntaxEditorDevNotes

The WinRT XAML port of our popular SyntaxEditor syntax-highlighting code editor control is nearly development complete! 

While the SyntaxEditor control itself has been used as the foundation of our free Code Writer app for a while now, we haven't had the SyntaxEditor control available to our customers yet to use in their own apps.  That's about to change.  The 2013.2 release of our WinRT XAML controls will include all the recent updates to our Charts and Micro Charts, as well as the new SyntaxEditor port and ports of its .NET Languages Add-on and Web Languages Add-ons.

First Look at a Demo

Let's see a screen of the WinRT version of our SDI Code Editor demo:

CodeEditor

Here we have a SyntaxEditor contro showing off the advanced C# language that is part of the .NET Languages Add-on.  With SyntaxEditor you can easily add text and code editing functionality to your Windows 8.1 apps.  It supports custom language creation, and as seen above, has some pre-built languages available with features like automated IntelliPrompt popups.

Beta Testers Wanted

We're really excited to get this finished up and into your hands.  If you are interested in helping us beta test SyntaxEditor for WinRT XAML, please contact our sales team (if you haven't already).  We expect the beta to be ready in the next week or two.

Silverlight Controls 2013.2 Released

BlogPostBanner

Actipro Silverlight Controls 2013.2 have been released and is now available for download. 

Major new features are described below.  See the announcement post for the detailed list of enhancements and updates.

ProductHeadingSilverlightCharts

PieChart

A new pie chart control has been added to complement our other bar, line, area, and scatter chart offerings.

Pie

The pie chart supports advanced features like multiple label positioning and display options, legend display, nesting of multiple series, hierarchical data, and more.

DonutChart

Donut

Donut charts have been added as well.  All the same features found in pie charts are found in donut charts, and the hole radius is fully configurable.

Axis Tick Labels for Percentage Stacked Charts

PercentageStackingChart

When using stacking bar or area charts with the percentage axis option, the percentage value labels now display on the axis.

Improved Scatter Chart Samples

ScatterChart

A new and improved scatter sample has been added.

ProductHeadingSilverlightSyntaxEditor

Web Languages Add-on - Advanced JavaScript Language Implementation

A new advanced JavaScript language implementation has been added to the Web Languages Add-on.

JavaScript

The syntax language features syntax highlighting, parsing, AST building, syntax error reporting, code outlining, delimiter auto-complete, smart indent, text formatting, and code block selection.

See a summary of the new language in this previous blog post.

Word Wrap

The Silverlight version of SyntaxEditor now supports word wrap features as of 2013.2.  These features have been a common request in the past.

WordWrap

Word wrapped text now also appears on printouts.

Delimiter Auto-Completion

Delimiter auto-complete is where the user types a start delimiter and a related end delimiter is auto-inserted after the caret.

DelimiterAutoComplete

In the screenshot above, the { character was typed and the } character was auto-inserted.  This feature has been added to several of the languages in our add-ons.

Delimiter Indent Provider

Curly brace auto-indent can now be easily added to any language, and it has been added to our C# and JavaScript languages in the add-ons.

When the caret is in the middle of a curly brace pair, pressing Enter normally will move the close curly brace to the next line with the caret right in front of it.  If you have an indent provider for your language, the close curly brace will be indented properly however it's still not an ideal situation because you generally want the caret to be on its own line before the close curly brace's line.

CurlyBraceIndent

This scenario is where curly brace auto-indent comes in!  This feature injects a new blank line in between the braces, indents one more level, and positions the caret on that line.

Indentation Guides

Indentation guides are subtle vertical lines that render at each tab stop on lines prior to the first non-whitespace character.  They help visually align the indentation of visible code blocks.

You can see the silver indentation guide lines in the tab stops within this screenshot:

IndentationGuides

Whitespace-only lines are intelligent and render indentation guides based on the tab stop level of surrounding text.

Improved Code Fragments Performance

Lexer and token scanning performance has been improved when using our code fragments feature, which allows you to set header and footer text to surround the document's text for purposes of parsing.

Improved Printing Support

A custom highlighting style registry can now be set explicitly for printouts.  This is ideal if your editor is in a dark theme since then you can use an alternate highlighting style registry designed for light backgrounds on printouts.

Rendering of printouts has also been improved when the syntax highlighting option is off.

.NET Languages Add-on - IntelliPrompt Parameter Info for Array Indexers

Automated parameter info support has been added when the end user edits array indexers.

.NET Languages Add-on - Customizing Completion Items Sample

A new sample is now included that shows how to add and remove items from the C# and VB automated IntelliPrompt completion list.  This ability lets you filter out certain completion list items or add your own custom ones before the list is displayed to the end user.

ProductHeadingSilverlightViews

InertiaScrollViewer

The InertiaScrollViewer control is a drop-in replacement for the native WPF/Silverlight ScrollViewer control but allows you to scroll content using touch, similar to what you're used to on Windows 8 and mobile devices.

It reacts to dragging, flicking, mouse wheel, and normal mouse operation via the scrollbars. You can adjust properties like EasingFunction, VelocityTimeRatio, and VelocityDistanceRatio to fully control how inertia scrolling looks and feels.

Our main Sample Browser pages have been updated with InertiaScrollViewer, allowing full touch interaction and navigation within them.

TaskDownload TaskLiveDemo TaskBuyNow

More Windows Workflow Designer Editing Enhancements

BlogPostBanner

A couple weeks ago we posted a blog entry showing off a sample we created, where a hosted Windows Workflow Designer instance is integrated with our WPF Docking/MDI and SyntaxEditor controls to dramatically improve the designer UI.

Since that post, we've had a number of customers request the sample that we created, and we have been happy to pass it along.  In today's post, I wanted to announce that we've updated the sample yet some more, adding automated variable IntelliPrompt features!

Variable1

In the screenshot above, two variables are declared: myText (a string) and anotherVar (a boolean).  I pressed Ctrl+Space in the expression editor (a SyntaxEditor control) to display the completion list.  The myText variable shows up properly as a string.

Variable2

Next, I moved to the assignment expression (another SyntaxEditor control) and typed anotherVar. to get the members of that variable.  SyntaxEditor's .NET Languages Add-on kicks in again here and shows the members appropriate for a boolean value.

Summary

These sorts of features really improve the editing experience for your customers.  If you rehost the Windows Workflow Designer in your WPF apps and would like our example, please contact us and we'll pass it along.

For those customers who downloaded the first version, this update (along with some other tweaks) is at the same URL as before.

TaskDownload TaskLiveDemo TaskBuyNow

Filed under: Actipro, WPF