public class AnnAutomation
The AnnAutomation class links an AnnContainer object and an IAnnAutomationControl object together.
An automated annotation application usually creates one AnnAutomation object per annotation window. Therefore, a single document application typically has one AnnAutomation object, one AnnContainer and one IAnnAutomationControl object together. A multiple document application has one AnnAutomation per annotation form.
For more information, refer to Implementing Annotations
using Leadtools.Annotations.Automation;
using Leadtools.Annotations.Engine;
using Leadtools.Codecs;
using Leadtools.Controls;
using Leadtools.Annotations.WinForms;
using Leadtools.Annotations.Rendering;
using Leadtools.Annotations.Designers;
public void AnnAutomationManager_FindObjectById()
{
// find the line automation object
AnnAutomationObject obj = _automation.Manager.FindObjectById(AnnObject.LineObjectId);
if (obj != null)
{
obj.ObjectTemplate.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Blue"), LeadLengthD.Create(2));
}
// Check if it is active
AnnAutomations annAutomations = _automation.Manager.Automations;
foreach(AnnAutomation annAutomation in annAutomations)
Console.WriteLine($"Is AnnAutomation Active?: {annAutomation.Active}");
// Restarting _automation without objects
StartupNoObjects();
// There should be no Automation Objects
Console.WriteLine($"Number of Annotation Objects Available: {_automation.Manager.Objects.Count}");
// Create Default Automation Objects
_automation.Manager.CreateDefaultObjects();
Console.WriteLine($"Number of Created Annotation Objects: {_automation.Manager.Objects.Count}");
foreach (AnnAutomationObject defaultObject in _automation.Manager.Objects)
{
defaultObject.RunDesignerType = typeof(AnnRunDesigner);
Console.WriteLine($"ID: {defaultObject.Id} | {defaultObject.Name} | Draw Designer Type: {defaultObject.DrawDesignerType.Name} | Edit Designer Type: {defaultObject.EditDesignerType.Name} | Run Designer Type: {defaultObject.RunDesignerType.Name}");
}
}
public void StartupNoObjects()
{
_viewer = new AutomationImageViewer();
_viewer.Image = RasterImage.CreateGrayscale(500, 500, 8, 100);
_manager = new AnnAutomationManager();
_automation = new AnnAutomation(_manager, _viewer);
_automation.Active = true;
_automation.Container.Size = new LeadSizeD(500, 500);
_automation.AutomationControl.RenderingEngine = new AnnWinFormsRenderingEngine();
}