Ejemplo n.º 1
0
        /// <summary>
        /// Färbt alle Methodennamen gelb und Eigenschaftsnamen weiß, damit fals sie Keywords enthalten weiß bleiben.
        /// </summary>
        /// <param name="dtm">Das Datamodel damit nach den Methoden und Eigenschaftsnamen gesucht werden kann.</param>
        public void GiveColorNames(Datamodel.Datamodel dtm)
        {
            foreach (UML_Class umlClass in dtm.umlClasses)
            {
                foreach (UML_Method umlMethod in umlClass.umlMethods)
                {
                    GetNames <UML_Method>(umlMethod, Color.Khaki, "(", false);
                }

                foreach (UML_Attribute umlAttribute in umlClass.umlAttributes)
                {
                    GetNames <UML_Attribute>(umlAttribute, Color.White, " { get;", false);
                }
                GetNames <UML_Class>(umlClass, Color.MediumAquamarine, "class ", true);
            }


            foreach (UML_Interface umlInterface in dtm.umlInterfaces)
            {
                foreach (UML_Method umlMethod in umlInterface.umlMethods)
                {
                    GetNames <UML_Method>(umlMethod, Color.Khaki, "(", false);
                }

                foreach (UML_Attribute umlAttribute in umlInterface.umlAttributes)
                {
                    GetNames <UML_Attribute>(umlAttribute, Color.White, " { get;", false);
                }
                GetNames <UML_Interface>(umlInterface, Color.LightGreen, "interface ", true);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Beschreibt die Preview-TextBox, indem es aus dem Datamodel die Klassen ausliest
        /// und bei jeder Klassendatei den gesamten Inhalt ausliest
        /// </summary>
        /// <param name="FilePath_Output">der Ausgabepfad damit der Reader weiss, wo er lesen soll</param>
        /// <param name="dtm">das Datamodel, um die erstellten Klassen zu ermitteln</param>
        /// <returns>true, wenn keine Exception ausgelöst wurde.</returns>
        public bool WritePrewiev(string FilePath_Output, Datamodel.Datamodel dtm)
        {
            try
            {
                PreviewTextBox.Text = "";

                // Die Dateien im Ausgabepfad werden nacheinander mit StreamReader gelesen und in die PreviewTextBox geschrieben.
                foreach (UML_Class umlClass in dtm.umlClasses)
                {
                    string filePath = FilePath_Output + "\\" + umlClass.name + ".cs";
                    AddingFileToTextBox(filePath);
                }

                foreach (UML_Interface umlInterface in dtm.umlInterfaces)
                {
                    string filePath = FilePath_Output + "\\" + umlInterface.name + ".cs";
                    AddingFileToTextBox(filePath);
                }
                // Der Text wird wie in Visual Studio gefärbt
                GiveColorKeywords();
                GiveColorNames(dtm);
            }
            catch (Exception)
            {
                new Form2("Wir bitten um Entschuldigung, da ist etwas im System falsch gelaufen. Bitte wenden Sie sich an den Hersteller!").ShowDialog();
                this.Show();
            }
            return(true);
        }
Ejemplo n.º 3
0
 private static bool StartProcess(string filePath_Model, string filePath_Output)
 {
     Reader.Reader       reader    = new Reader.Reader(filePath_Model);
     Datamodel.Datamodel datamodel = reader.getDatamodel();
     Generator.Generator generator = new Generator.Generator(filePath_Output, datamodel);
     return(generator.generateCode());
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Erstellt Reader und Generator und führt deren Interface-Methoden aus.
 /// </summary>
 /// <param name="filePath_Model">Gibt dem Reader den Dateipfad mit.</param>
 /// <param name="filePath_Output">Gibt dem Generator den Ausgabepfad mit.</param>
 public Datamodel.Datamodel ExchangeData(string filePath_Model, string filePath_Output)
 {
     Reader.Reader       reader    = new Reader.Reader(filePath_Model);
     Datamodel.Datamodel datamodel = reader.getDatamodel();
     Generator.Generator generator = new Generator.Generator(filePath_Output, datamodel);
     if (generator.generateCode())
     {
         return(datamodel);
     }
     else
     {
         return(null);
     }
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Interface-Methode StartProcess(). Wenn Berechtigung auf Graphml-Datei erlaubt ist,
        /// ruft sie ExchangeData() auf. Fängt Exceptions auf und gibt ihre Messages der GUI zurück.
        /// </summary>
        /// <param name="filePath_Model">Graphml-Dateipfad als string vom GUI</param>
        /// <param name="filePath_Output">Ausgabepfad als string vom GUI</param>
        /// <returns>string, wenn eine Exception abgefangen wird oder null, wenn nicht </returns>
        public string StartProcess(string filePath_Model, string filePath_Output, out Datamodel.Datamodel dtm)
        {
            if (CheckPermission(filePath_Output))
            {
                try
                {
                    dtm = ExchangeData(filePath_Model, filePath_Output);

                    return(null);
                }
                catch (DatamodelMissingContentException e)
                {
                    dtm = null;
                    return(e.Message);
                }
                catch (DatamodelMissingInformationException e)
                {
                    dtm = null;
                    return(e.Message);
                }
                catch (InvalidUMLShapesException e)
                {
                    dtm = null;
                    return(e.Message);
                }
                catch (InvalidMethodParameterException e)
                {
                    dtm = null;
                    return(e.Message);
                }
                // Wenn eine andere, für den Nutzer unwichtige, Exception ausgelöst wird, wird der Text zurückgegeben.
                catch (Exception)
                {
                    dtm = null;
                    return("Wir bitten um Entschuldigung, da ist etwas im System falsch gelaufen. Bitte wenden Sie sich an den Hersteller!");
                }
            }
            // Wenn CheckPermission false zurückgibt, wird der entsprechende Text zurückgegeben.
            else
            {
                dtm = null;
                return("Dateien konnten im ausgewählten Verzeichnis nicht erstellt werden. Schreibberechtigung verweigert! Bitte überprüfen Sie die Eigenschaften des Verzeichnisses oder ändern Sie den Ausgabeort!");
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Main method creating the whole datamodel
        /// </summary>
        /// <param name="filepath"> Path of the file which was received from Controller Component</param>
        /// <returns></returns>
        public Datamodel.Datamodel createDatamodel()
        {
            Datamodel.Datamodel datamodel = null;
            datamodel = new Datamodel.Datamodel();
            List <UML_Base> baseModel = AnalyzeNode();

            foreach (var item in baseModel)
            {
                if (item.GetType() == typeof(UML_Class) && baseModel != null)
                {
                    datamodel.umlClasses.Add((UML_Class)item);
                }

                if (item.GetType() == typeof(UML_Interface) && baseModel != null)
                {
                    datamodel.umlInterfaces.Add((UML_Interface)item);
                }
            }

            return(datamodel);
        }
Ejemplo n.º 7
0
 // Interface Method to get datamodel for other components
 public CodeGenerator.Datamodel.Datamodel getDatamodel()
 {
     Datamodel.Datamodel datamodel = createDatamodel();
     return(datamodel);
 }