2016-11-09 1 views
0

J'écris un Enterprise Architect C# Add-in pour valider la valeur balisée car un 0 par défaut apparaît dans l'espace de valeur balisé lorsque j'utilise la valeur balisée de Type = Integer. J'ai donné la valeur étiquetée de Type = String et la validation de la valeur entrée par l'utilisateur. J'utilise le code suivant.Validation de valeur balisée via les compléments C# dans Enterprise Architect

public bool EA_OnNotifyContextItemModified(EA.Repository Repository, string GUID, EA.ObjectType ot) 
     { 


       string test_value; 
       bool isInteger; 
       int integer_converted; 
       if (ot == EA.ObjectType.otElement) 
       { 

         EA.Element element = (EA.Element)Repository.GetElementByGuid(GUID); 
         EA.TaggedValue tag = element.TaggedValues.GetByName("MAX-BASE-TYPE-SIZE"); 
         test_value = tag.Value; 
         if (string.IsNullOrEmpty(test_value)) 
         { 
          Session.Repository.WriteOutput("EA", "Enter any Value", 1); 
         } 
         else 
         { 
          isInteger = int.TryParse(test_value, out integer_converted); 
          if (isInteger == false) 
          { 

           string empty = " "; 
           tag.Value = empty; 
           tag.Update(); 
           Session.Repository.WriteOutput("EA", "Enter Integer Value" + " " + tag.Name + ":" + "", 1); 
          } 
         } 
        } 

       } 
      } 


      return true; 
} 

Le problème est, le remplacement de la valeur étiquetée invalide avec une chaîne vide ne se produit que lorsque je ferme les propriétés de l'élément fenêtre et ouvrez à nouveau l'élément. Comment afficher la valeur étiquetée mise à jour avec une chaîne vide lorsque je déplace le curseur sur la valeur étiquetée suivante de l'élément lui-même au lieu de fermer et de rouvrir l'élément à chaque fois.

Veuillez nous aider. Merci d'avance.

+0

Si vous construisez un addin, pourquoi coller à la fenêtre de propriété EA ..? Construisez votre propre formulaire pour ajouter des valeurs étiquetées à un élément afin de pouvoir facilement le valider ..! – Arshad

+0

Je dois avoir des valeurs étiquetées de type = RefGUID, RefGUIDList pour cet élément, c'est pourquoi j'essaye de valider les valeurs – rashmi

+0

vous pouvez obtenir toutes ces valeurs même dans votre fenêtre personnalisée na. – Arshad

Répondre

0

Il n'y a pas de solution élégante. Vous devez actualiser l'affichage du modèle et afficher à nouveau l'élément dans le navigateur comme (pseudo code):

repository.RefreshModelView(element.PackageID) 
repository.ShowInProjectView(element) 
+0

@Kilian lorsque j'utilise RefreshModelView (element.PackageID) EA arrête de travailler parfois.J'ai fatigué en utilisant seulement ShowInProjectView (élément) il ne fonctionne que pour la première fois quand l'élément est déplacé et abandonné et cesse de travailler sur la prochaine fois. .Trouvez de l'aide .. – rashmi

+0

Que voulez-vous dire par "arrête de travailler"? –

+0

Je reçois un Windows "Enterprise Architect-UML outil de développement a cessé de fonctionner" message pop-up – rashmi