|
Click on a bullet heading to expand:
- Application window
- Windows form with MDI support
- MRU file list
- Layout and option settings persisted between executions
- Object palette (left)
- Dynamically loads with objects based on current document type
- Large or small icon view
- Card Editor window (center)
- Faithfully reproduces the card and receipt printer's fonts and
other characteristics for true WYSIWYG
- Duplicates most of Visual Studio's form editor functions
- Grid, snap to grid
- Align controls
- Evenly space controls
- Multiple control selection
- Cut/Copy/Paste, drag and drop
- Multi-level undo/redo
- Rulers in three selectable units
- Custom toolbar
- Properties window (right)
- Fully modeless property grid
- Property changes support full undo/redo, even with multiple
objects selected
- Edits common properties for multiple control selections
|
2004 — LDC Direct, Ltd. Co.
Introduction
For many years, LDC had an application which their in-house designers used to
create prepaid card templates. Originally written in Visual C++, the application
lacked the ability to design receipts for roll paper, and was beginning to look
dated. It also was not sufficiently user-friendly for end-users. LDC
wanted a new application that could be maintained by their in-house staff, and
used by their end-users.
Architecture
The application was a Windows forms MDI application with a basic menu,
toolbar, and status bar, an Object palette window, and a Properties window. For
the two document types (die-cut card and roll receipt) there were MDI editor
windows that could be created. Each of the editor windows hosted a set of
graphical objects that could be created and manipulated.
Visual Basic .NET was chosen as it fit LDC's maintenance requirement as well
as being an efficient development platform. The project made extensive use of
object inheritance and polymorphism to implement the editors as well as the
graphical objects. Object properties and metadata were used to expose the
object's properties that were editable by the Properties window. The documents
were stored in XML format, listing the document's objects and property values,
again driven by the object's properties and metadata.
Click on the application image to get a full-sized picture and look at the
design features.
Development
Working from their requirements document, I designed and implemented the
entire application.
Technologies
- Visual Studio .NET 2003
- Visual Basic .NET
- Windows forms
- Custom Windows forms controls
Special Features
The
dialog box to the right shows the String Editor, which is used to edit the
FormatString property of a DataField object. It was implemented as a custom
property editor.
A DataField object is a composite object consisting of a concatenation of
string literals, date/time fields, and database fields. The String edit
box shows a representation of the entire object, with the date/time and database
field objects enclosed in braces. As you move the edit cursor into a field, the
entire field is selected and its properties are displayed in the Field
properties grid to the right. As with the main application's Properties
window, multiple field selections here will show the common properties in the
Field properties grid.
The Insert Date/Time Field and Insert Database Field buttons
may be used to insert fields at the insertion point.
ConclusionThe project included over 14,000 lines of Visual Basic
.NET code, 14
character set bitmaps, 9 object icons, and 35 toolbar bitmaps. The successful
completion of this project proves that a full-featured visual object editor can
be implemented using the .NET framework.
|