TaskMessageBox

Espacio de nombres: Digi21.DigiNG.Plugin.TaskPanel
Ensamblado: Digi21.DigiNG

Tarea del panel de tareas que, al hacer doble clic, muestra un cuadro de mensaje con un texto y el botón Aceptar. Sirve para dar una explicación más larga que el texto de la tarea.

public sealed class TaskMessageBox : TaskBase

Herencia: TaskBase → TaskMessageBox. Implementa ITask.

La clase está en el ensamblado Digi21.DigiNG, no en Digi21.DigiNG.Plugin como el resto de tareas de su espacio de nombres. El paquete NuGet Digi21.DigiNG.Plugin depende del paquete Digi21.DigiNG, así que una extensión que usa el primero tiene acceso a la clase.

La tarea se añade al panel con Digi3D.Tasks.Add.

Constructores

public TaskMessageBox()
public TaskMessageBox(string title, string description, TaskSeverity severity, string drawingFile, string module)
public TaskMessageBox(string title, string description, TaskSeverity severity, string drawingFile, string module, ITask[] children)
Parámetro Descripción
title Texto de la tarea en el panel de tareas.
description Texto del cuadro de mensaje. No hay ninguna propiedad que lo devuelva o lo cambie.
severity Gravedad de la tarea, de la enumeración TaskSeverity.
drawingFile Archivo de dibujo al que se refiere la tarea. Admite null.
module Nombre del módulo que ha generado la tarea, por ejemplo el nombre de la orden. Admite null.
children Tareas hijas.

El constructor sin parámetros deja la descripción a null, así que el cuadro de mensaje sale vacío. Como la descripción solo se asigna en el constructor, usa uno de los otros dos constructores.

Propiedades

Propiedades heredadas de TaskBase: Title, Severity, DrawingFile, Module y Children.

Métodos

Método Descripción
void Execute() Digi3D.AI lo llama al hacer doble clic en la tarea. Muestra un cuadro de mensaje modal con la descripción y el botón Aceptar, y vuelve cuando el usuario lo cierra.

Ejemplo

Esta orden añade un aviso por cada código del archivo de dibujo que solo tienen entidades eliminadas. Al hacer doble clic en una tarea, un cuadro de mensaje explica el aviso:

using Digi21.Digi3D;
using Digi21.DigiNG.Plugin.Command;
using Digi21.DigiNG.Plugin.TaskPanel;
using Digi21.Tasks;

namespace Ejemplos;

[Command(Name = "CODIGOS_SIN_ENTIDADES")]
public class CodigosSinEntidades : Command
{
    public CodigosSinEntidades()
    {
        Initialize += (sender, e) =>
        {
            var archivo = Digi21.DigiNG.DigiNG.DrawingFile;
            var usados = archivo
                .Where(entidad => !entidad.Deleted)
                .SelectMany(entidad => entidad.Codes)
                .Select(código => código.Name)
                .ToHashSet();

            var todos = archivo
                .SelectMany(entidad => entidad.Codes)
                .Select(código => código.Name)
                .Distinct();

            foreach (var código in todos.Where(código => !usados.Contains(código)))
            {
                Digi3D.Tasks.Add(new TaskMessageBox(
                    $"Código {código} sin entidades",
                    $"Todas las entidades con el código {código} están eliminadas.",
                    TaskSeverity.Warning,
                    archivo.Path,
                    "CODIGOS_SIN_ENTIDADES"));
            }
            Digi3D.Tasks.Show();

            Dispose();
        };
    }
}