protected virtual void AimlDateiRemoved(IArbeitsbereichDatei datei)
 {
     if (this.DateiRemovedEvent != null)
     {
         this.DateiRemovedEvent(this, new EventArgs <IArbeitsbereichDatei>(datei));
     }
 }
예제 #2
0
 protected virtual void AktDateiChangedEvent(IArbeitsbereichDatei datei)
 {
     if (this.AktDateiChanged != null)
     {
         this.AktDateiChanged(this, new EventArgs <IArbeitsbereichDatei>(datei));
     }
 }
예제 #3
0
        private void AIMLDateiChangedZeigen()
        {
            IArbeitsbereichDatei aktuelleDatei = this.AktuelleDatei;

            if (aktuelleDatei != null)
            {
                if (aktuelleDatei.ReadOnly)
                {
                    this.toolStripButtonSave.Enabled                = false;
                    this.toolStripButtonDelete.Enabled              = false;
                    this.toolStripButtonFehlerZeigen.Enabled        = aktuelleDatei.HatFehler;
                    this.toolStripButtonAIMLDateiUmbenennen.Enabled = false;
                }
                else
                {
                    this.toolStripButtonSave.Enabled                = aktuelleDatei.IsChanged;
                    this.toolStripButtonDelete.Enabled              = true;
                    this.toolStripButtonFehlerZeigen.Enabled        = aktuelleDatei.HatFehler;
                    this.toolStripButtonAIMLDateiUmbenennen.Enabled = true;
                }
            }
            else
            {
                this.toolStripButtonFehlerZeigen.Enabled        = false;
                this.toolStripButtonSave.Enabled                = false;
                this.toolStripButtonDelete.Enabled              = false;
                this.toolStripButtonAIMLDateiUmbenennen.Enabled = false;
            }
        }
 public void AlleVerweiseDieserDateiEntfernen(IArbeitsbereichDatei datei)
 {
     if (datei is AIMLDatei)
     {
         this.AlleVerweiseDieserAIMLDateiEntfernen((AIMLDatei)datei);
     }
 }
예제 #5
0
        private void toolStripButtonUmbenennen_Click(object sender, EventArgs e)
        {
            IArbeitsbereichDatei aktuelleDatei = this.AktuelleDatei;

            if (aktuelleDatei == null)
            {
                return;
            }
            bool abgebrochen = false;
            bool flag        = false;

            while (!flag)
            {
                string str1 = InputBox.Show(ResReader.Reader.GetString("BitteNeuenNamenFuerAIMLDatei"), ResReader.Reader.GetString("AIMLDateiUmbenennen"), aktuelleDatei.Titel, out abgebrochen);
                if (string.IsNullOrEmpty(str1))
                {
                    abgebrochen = true;
                }
                if (abgebrochen)
                {
                    flag = true;
                }
                else
                {
                    string str2 = str1.Trim();
                    if (aktuelleDatei.Titel == str2)
                    {
                        flag = true;
                    }
                    else
                    {
                        string str3 = string.Format("\\{0}.aiml", (object)str2);
                        foreach (object obj in aktuelleDatei.Unterverzeichnisse)
                        {
                            str3 = string.Format("\\{0}", obj) + str3;
                        }
                        string str4   = this._arbeitsbereich.Arbeitsverzeichnis + "\\" + str3;
                        bool   cancel = false;
                        aktuelleDatei.Save(out cancel);
                        if (!cancel)
                        {
                            string grundWennNichtErfolgreich;
                            if (this.AIMLDateiUmbenennen(aktuelleDatei.Dateiname, str4, out grundWennNichtErfolgreich))
                            {
                                this._arbeitsbereich.Dateiverwaltung.Dateien.Remove(aktuelleDatei);
                                this.AktuelleDatei = this._arbeitsbereich.Dateiverwaltung.LadeEinzelneAimlDateiDirektOhneKopieEin(str4, this._arbeitsbereich);
                                flag = true;
                                this.AIMLDateienNeuAnzeigen(true);
                            }
                            else
                            {
                                int num = (int)MessageBox.Show(grundWennNichtErfolgreich, ResReader.Reader.GetString("KonnteAIMLDateiNichtUmbenennen"));
                                Debugger.GlobalDebugger.Protokolliere("Konnte AIMLDatei '" + aktuelleDatei.Dateiname + "' nicht umbenennen:" + grundWennNichtErfolgreich, Debugger.ProtokollTypen.Fehlermeldung);
                            }
                        }
                    }
                }
            }
        }
예제 #6
0
 protected virtual void AimlDateiRemoved(IArbeitsbereichDatei datei)
 {
     if (this.DateiRemovedEvent == null)
     {
         return;
     }
     this.DateiRemovedEvent((object)this, new EventArgs <IArbeitsbereichDatei>(datei));
 }
예제 #7
0
 protected virtual void AktDateiChangedEvent(IArbeitsbereichDatei datei)
 {
     if (this.AktDateiChanged == null)
     {
         return;
     }
     this.AktDateiChanged((object)this, new EventArgs <IArbeitsbereichDatei>(datei));
 }
예제 #8
0
        private void toolStripButtonUmbenennen_Click(object sender, EventArgs e)
        {
            IArbeitsbereichDatei aktuelleDatei = this.AktuelleDatei;

            if (aktuelleDatei != null)
            {
                bool flag  = false;
                bool flag2 = false;
                while (!flag2)
                {
                    string text = InputBox.Show(ResReader.Reader.GetString("BitteNeuenNamenFuerAIMLDatei"), ResReader.Reader.GetString("AIMLDateiUmbenennen"), aktuelleDatei.Titel, out flag);
                    if (string.IsNullOrEmpty(text))
                    {
                        flag = true;
                    }
                    if (flag)
                    {
                        flag2 = true;
                    }
                    else
                    {
                        text = text.Trim();
                        if (aktuelleDatei.Titel == text)
                        {
                            flag2 = true;
                        }
                        else
                        {
                            string   text2 = string.Format("\\{0}.aiml", text);
                            string[] unterverzeichnisse = aktuelleDatei.Unterverzeichnisse;
                            foreach (string arg in unterverzeichnisse)
                            {
                                text2 = string.Format("\\{0}", arg) + text2;
                            }
                            text2 = this._arbeitsbereich.Arbeitsverzeichnis + "\\" + text2;
                            bool flag3 = false;
                            aktuelleDatei.Save(out flag3);
                            if (!flag3)
                            {
                                string text3 = default(string);
                                if (this.AIMLDateiUmbenennen(aktuelleDatei.Dateiname, text2, out text3))
                                {
                                    this._arbeitsbereich.Dateiverwaltung.Dateien.Remove(aktuelleDatei);
                                    IArbeitsbereichDatei arbeitsbereichDatei2 = this.AktuelleDatei = this._arbeitsbereich.Dateiverwaltung.LadeEinzelneAimlDateiDirektOhneKopieEin(text2, this._arbeitsbereich);
                                    flag2 = true;
                                    this.AIMLDateienNeuAnzeigen(true);
                                }
                                else
                                {
                                    MessageBox.Show(text3, ResReader.Reader.GetString("KonnteAIMLDateiNichtUmbenennen"));
                                    Debugger.GlobalDebugger.Protokolliere("Konnte AIMLDatei '" + aktuelleDatei.Dateiname + "' nicht umbenennen:" + text3, Debugger.ProtokollTypen.Fehlermeldung);
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #9
0
        private void toolStripButtonFehlerZeigen_Click(object sender, EventArgs e)
        {
            IArbeitsbereichDatei aktuelleDatei = this.AktuelleDatei;

            if (aktuelleDatei != null && aktuelleDatei is AIMLDatei)
            {
                ((AIMLDatei)aktuelleDatei).GegenAIMLDTDPruefen(AIMLDatei.PruefFehlerVerhalten.FehlerDirektZeigen);
            }
        }
예제 #10
0
        private void Save()
        {
            IArbeitsbereichDatei aktuelleDatei = this.AktuelleDatei;

            if (aktuelleDatei != null)
            {
                bool flag = default(bool);
                aktuelleDatei.Save(out flag);
                this.AIMLDateiChangedZeigen();
            }
        }
예제 #11
0
        private void toolStripButtonDelete_Click(object sender, EventArgs e)
        {
            IArbeitsbereichDatei aktuelleDatei = this.AktuelleDatei;

            if (aktuelleDatei != null && this._arbeitsbereich.Dateiverwaltung.DateiLoeschen(aktuelleDatei, this._arbeitsbereich))
            {
                this.AIMLDateienNeuAnzeigen(true);
                Application.DoEvents();
                this.ErsteDateiSelektieren();
            }
        }
예제 #12
0
        private void Save()
        {
            IArbeitsbereichDatei aktuelleDatei = this.AktuelleDatei;

            if (aktuelleDatei == null)
            {
                return;
            }
            bool cancel;

            aktuelleDatei.Save(out cancel);
            this.AIMLDateiChangedZeigen();
        }
예제 #13
0
 public bool DieseAIMLDateiNichtExportieren(IArbeitsbereichDatei datei)
 {
     if (datei is AIMLDatei)
     {
         foreach (object obj in this.NichtExporierenDateinamen)
         {
             string str = string.Format("\\{0}.aiml", obj);
             if (!string.IsNullOrEmpty(datei.Dateiname) && datei.Dateiname.EndsWith(str, StringComparison.OrdinalIgnoreCase))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
예제 #14
0
        private IArbeitsbereichDatei DateiUnterPos(Point screenPos)
        {
            Point    point  = this.treeViewDateien.PointToClient(screenPos);
            TreeNode nodeAt = this.treeViewDateien.GetNodeAt(point.X, point.Y);

            if (nodeAt != null)
            {
                IArbeitsbereichDatei arbeitsbereichDatei = (IArbeitsbereichDatei)nodeAt.Tag;
                if (arbeitsbereichDatei != null)
                {
                    return(arbeitsbereichDatei);
                }
                return(null);
            }
            return(null);
        }
 public bool DieseAIMLDateiNichtExportieren(IArbeitsbereichDatei datei)
 {
     if (datei is AIMLDatei)
     {
         string[] nichtExporierenDateinamen = this.NichtExporierenDateinamen;
         foreach (string arg in nichtExporierenDateinamen)
         {
             string value = string.Format("\\{0}.aiml", arg);
             if (!string.IsNullOrEmpty(datei.Dateiname) && datei.Dateiname.EndsWith(value, StringComparison.OrdinalIgnoreCase))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
예제 #16
0
        private IArbeitsbereichDatei DateiUnterPos(Point screenPos)
        {
            Point    client = this.treeViewDateien.PointToClient(screenPos);
            TreeNode nodeAt = this.treeViewDateien.GetNodeAt(client.X, client.Y);

            if (nodeAt == null)
            {
                return((IArbeitsbereichDatei)null);
            }
            IArbeitsbereichDatei tag = (IArbeitsbereichDatei)nodeAt.Tag;

            if (tag != null)
            {
                return(tag);
            }
            return((IArbeitsbereichDatei)null);
        }
예제 #17
0
        public bool DateiLoeschen(IArbeitsbereichDatei datei, Arbeitsbereich arbeitsbereich)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            bool flag1 = !string.IsNullOrEmpty(datei.ZusatzContentUniqueId);
            bool flag2;

            if (this._dateien.Contains(datei))
            {
                if (flag1 || MessageBox.Show(string.Format(ResReader.Reader.GetString("AIMLDateiWirklichLoeschen"), (object)datei.Dateiname), "", MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
                {
                    try
                    {
                        if (!flag1)
                        {
                            File.Delete(datei.Dateiname);
                        }
                        this._dateien.Remove(datei);
                        arbeitsbereich.Verlauf.AlleVerweiseDieserDateiEntfernen(datei);
                        flag2 = true;
                    }
                    catch (Exception ex)
                    {
                        flag2 = false;
                    }
                }
                else
                {
                    flag2 = false;
                }
            }
            else
            {
                flag2 = false;
            }
            this.AimlDateiRemoved(datei);
            return(flag2);
        }
예제 #18
0
 private void DateiListenAnzeige_DragDrop(object sender, DragEventArgs e)
 {
     if (e.Data.GetDataPresent(typeof(AIMLCategory)))
     {
         AIMLCategory aIMLCategory = (AIMLCategory)e.Data.GetData(typeof(AIMLCategory));
         if (aIMLCategory != null)
         {
             IArbeitsbereichDatei arbeitsbereichDatei = this.DateiUnterPos(new Point(e.X, e.Y));
             if (arbeitsbereichDatei != null && !arbeitsbereichDatei.ReadOnly)
             {
                 if (arbeitsbereichDatei != aIMLCategory.AIMLTopic.AIMLDatei)
                 {
                     if (arbeitsbereichDatei is AIMLDatei)
                     {
                         AIMLDatei    aIMLDatei     = (AIMLDatei)arbeitsbereichDatei;
                         string       innerXml      = aIMLCategory.ContentNode.InnerXml;
                         AIMLCategory aIMLCategory2 = aIMLDatei.RootTopic.AddNewCategory();
                         aIMLCategory2.ContentNode.InnerXml = innerXml;
                         e.Effect = DragDropEffects.Move;
                     }
                 }
                 else
                 {
                     e.Effect = DragDropEffects.None;
                 }
             }
             else
             {
                 e.Effect = DragDropEffects.None;
             }
         }
     }
     else if (e.Data.GetDataPresent(typeof(AIMLTopic)))
     {
         AIMLTopic aIMLTopic = (AIMLTopic)e.Data.GetData(typeof(AIMLTopic));
         if (aIMLTopic != null)
         {
             IArbeitsbereichDatei arbeitsbereichDatei2 = this.DateiUnterPos(new Point(e.X, e.Y));
             if (arbeitsbereichDatei2 != null && !arbeitsbereichDatei2.ReadOnly)
             {
                 if (arbeitsbereichDatei2 != aIMLTopic.AIMLDatei)
                 {
                     if (arbeitsbereichDatei2 is AIMLDatei)
                     {
                         AIMLDatei aIMLDatei2 = (AIMLDatei)arbeitsbereichDatei2;
                         AIMLTopic aIMLTopic2 = aIMLDatei2.AddNewTopic();
                         aIMLTopic2.TopicNode.InnerXml = aIMLTopic.TopicNode.InnerXml;
                         aIMLTopic2.Name = aIMLTopic.Name;
                         e.Effect        = DragDropEffects.Move;
                     }
                 }
                 else
                 {
                     e.Effect = DragDropEffects.None;
                 }
             }
             else
             {
                 e.Effect = DragDropEffects.None;
             }
         }
     }
     else
     {
         e.Effect = DragDropEffects.None;
     }
 }
예제 #19
0
 private void DateiListenAnzeige_DragDrop(object sender, DragEventArgs e)
 {
     if (e.Data.GetDataPresent(typeof(AIMLCategory)))
     {
         AIMLCategory data = (AIMLCategory)e.Data.GetData(typeof(AIMLCategory));
         if (data == null)
         {
             return;
         }
         IArbeitsbereichDatei arbeitsbereichDatei = this.DateiUnterPos(new Point(e.X, e.Y));
         if (arbeitsbereichDatei != null && !arbeitsbereichDatei.ReadOnly)
         {
             if (arbeitsbereichDatei != data.AIMLTopic.AIMLDatei)
             {
                 if (arbeitsbereichDatei is AIMLDatei)
                 {
                     ((AIMLDatei)arbeitsbereichDatei).RootTopic.AddNewCategory().ContentNode.InnerXml = data.ContentNode.InnerXml;
                     e.Effect = DragDropEffects.Move;
                 }
             }
             else
             {
                 e.Effect = DragDropEffects.None;
             }
         }
         else
         {
             e.Effect = DragDropEffects.None;
         }
     }
     else if (e.Data.GetDataPresent(typeof(AIMLTopic)))
     {
         AIMLTopic data = (AIMLTopic)e.Data.GetData(typeof(AIMLTopic));
         if (data == null)
         {
             return;
         }
         IArbeitsbereichDatei arbeitsbereichDatei = this.DateiUnterPos(new Point(e.X, e.Y));
         if (arbeitsbereichDatei != null && !arbeitsbereichDatei.ReadOnly)
         {
             if (arbeitsbereichDatei != data.AIMLDatei)
             {
                 if (arbeitsbereichDatei is AIMLDatei)
                 {
                     AIMLTopic aimlTopic = ((AIMLDatei)arbeitsbereichDatei).AddNewTopic();
                     aimlTopic.TopicNode.InnerXml = data.TopicNode.InnerXml;
                     aimlTopic.Name = data.Name;
                     e.Effect       = DragDropEffects.Move;
                 }
             }
             else
             {
                 e.Effect = DragDropEffects.None;
             }
         }
         else
         {
             e.Effect = DragDropEffects.None;
         }
     }
     else
     {
         e.Effect = DragDropEffects.None;
     }
 }
예제 #20
0
 private void ListenEintragBeschriften(TreeNode item, bool unterNodesAuch)
 {
     if (item.Tag != null && item.Tag is IArbeitsbereichDatei)
     {
         IArbeitsbereichDatei tag = (IArbeitsbereichDatei)item.Tag;
         Color  color1;
         Color  color2;
         string str;
         if (tag.HatFehler)
         {
             color1 = Color.Red;
             color2 = Color.Black;
             str    = string.Format("{0} ({1})", (object)tag.Titel, (object)ResReader.Reader.GetString("ungueltig"));
         }
         else if (this._arbeitsbereich.DieseAIMLDateiNichtExportieren(tag))
         {
             color1 = this.treeViewDateien.BackColor;
             color2 = Color.LightGray;
             str    = string.Format("[{0}] ({1})", (object)tag.Titel, (object)ResReader.Reader.GetString("DieseDateiNichtExportieren"));
         }
         else if (tag.ReadOnly)
         {
             color2 = Color.Black;
             color1 = Color.FromArgb(0, 240, 240, (int)byte.MaxValue);
             str    = tag.Titel;
         }
         else
         {
             color2 = Color.Black;
             color1 = this.treeViewDateien.BackColor;
             str    = tag.Titel;
         }
         if (tag is AIMLDatei)
         {
             item.ImageKey = "aiml";
         }
         if (tag is StartupDatei)
         {
             item.ImageKey = "startup";
         }
         if (item.Text != str)
         {
             item.Text = str;
         }
         if (item.ForeColor != color2)
         {
             item.ForeColor = color2;
         }
         if (item.BackColor != color1)
         {
             item.BackColor = color1;
         }
         bool flag = false;
         if (this.AktuelleDatei != null)
         {
             flag = tag == this.AktuelleDatei;
         }
         if (flag)
         {
             this.treeViewDateien.SelectedNode = item;
         }
     }
     if (unterNodesAuch)
     {
         foreach (TreeNode node in item.Nodes)
         {
             this.ListenEintragBeschriften(node, true);
         }
     }
     item.SelectedImageKey = item.ImageKey;
 }
예제 #21
0
 private void DateiListenAnzeige_DragEnter(object sender, DragEventArgs e)
 {
     if (e.Data.GetDataPresent(typeof(AIMLTopic)))
     {
         AIMLTopic data = (AIMLTopic)e.Data.GetData(typeof(AIMLTopic));
         if (data != null)
         {
             IArbeitsbereichDatei arbeitsbereichDatei = this.DateiUnterPos(new Point(e.X, e.Y));
             if (arbeitsbereichDatei != null && !arbeitsbereichDatei.ReadOnly)
             {
                 if (arbeitsbereichDatei != data.AIMLDatei)
                 {
                     e.Effect = DragDropEffects.Move;
                 }
                 else
                 {
                     e.Effect = DragDropEffects.None;
                 }
             }
             else
             {
                 e.Effect = DragDropEffects.None;
             }
         }
         else
         {
             e.Effect = DragDropEffects.None;
         }
     }
     else if (e.Data.GetDataPresent(typeof(AIMLCategory)))
     {
         AIMLCategory data = (AIMLCategory)e.Data.GetData(typeof(AIMLCategory));
         if (data != null)
         {
             IArbeitsbereichDatei arbeitsbereichDatei = this.DateiUnterPos(new Point(e.X, e.Y));
             if (arbeitsbereichDatei != null && !arbeitsbereichDatei.ReadOnly)
             {
                 if (arbeitsbereichDatei != data.AIMLTopic.AIMLDatei)
                 {
                     e.Effect = DragDropEffects.Move;
                 }
                 else
                 {
                     e.Effect = DragDropEffects.None;
                 }
             }
             else
             {
                 e.Effect = DragDropEffects.None;
             }
         }
         else
         {
             e.Effect = DragDropEffects.None;
         }
     }
     else
     {
         e.Effect = DragDropEffects.None;
     }
 }