Stat.MarkSelected C# (CSharp) Method

MarkSelected() public method

public MarkSelected ( string selected ) : void
selected string
return void
    public void MarkSelected(string selected)
    {
        Gtk.TreeIter iter;
        bool okIter = store.GetIterFirst(out iter);
        if(okIter) {
            if(selected == Catalog.GetString("All")) {
                do {
                    if(isNotAVGOrSD(iter)) {
                        store.SetValue (iter, 0, true);
                        addRowToMarkedRows(treeview.Model.GetPath(iter).ToString());
                    }
                } while ( store.IterNext(ref iter) );
            } else if(selected == Catalog.GetString("None")) {
                do {
                    store.SetValue (iter, 0, false);
                    deleteRowFromMarkedRows(treeview.Model.GetPath(iter).ToString());
                } while ( store.IterNext(ref iter) );
            } else if(selected == Catalog.GetString("Invert")) {
                do {
                    if(isNotAVGOrSD(iter)) {
                        bool val = (bool) store.GetValue (iter, 0);
                        store.SetValue (iter, 0, !val);
                        if(val)
                            deleteRowFromMarkedRows(treeview.Model.GetPath(iter).ToString());
                        else
                            addRowToMarkedRows(treeview.Model.GetPath(iter).ToString());
                    }
                } while ( store.IterNext(ref iter) );
            } else if(selected == Catalog.GetString("Male")) {
                do {
                    if(isNotAVGOrSD(iter)) {
                        string nameAndSex = (string) store.GetValue (iter, 1);
                        string [] stringFull = nameAndSex.Split(new char[] {'.'});
                        if(stringFull.Length > 1 && stringFull[1].StartsWith("M")) {
                            store.SetValue (iter, 0, true);
                            addRowToMarkedRows(treeview.Model.GetPath(iter).ToString());
                        } else {
                            store.SetValue (iter, 0, false);
                            deleteRowFromMarkedRows(treeview.Model.GetPath(iter).ToString());
                        }
                    }
                } while ( store.IterNext(ref iter) );
            } else if(selected == Catalog.GetString("Female")) {
                do {
                    if(isNotAVGOrSD(iter)) {
                        string nameAndSex = (string) store.GetValue (iter, 1);
                        string [] stringFull = nameAndSex.Split(new char[] {'.'});
                        if(stringFull.Length > 1 && stringFull[1].StartsWith("F")) {
                            store.SetValue (iter, 0, true);
                            addRowToMarkedRows(treeview.Model.GetPath(iter).ToString());
                        } else {
                            store.SetValue (iter, 0, false);
                            deleteRowFromMarkedRows(treeview.Model.GetPath(iter).ToString());
                        }
                    }
                } while ( store.IterNext(ref iter) );
            } else {
                //a person is selected
                do {
                    if(isNotAVGOrSD(iter)) {
                        string nameWithMoreData = (string) store.GetValue (iter, 1);
                        string onlyName = fetchNameOnStatsData(nameWithMoreData);
                        /*
                        //probably name has a jumpType like:
                        //myName (CMJ), or myName.F (CMJ)
                        //int parenthesesPos = nameWithMoreData.LastIndexOf('(');
                        //it can have two parentheses, like:
                        //myName (Rj(j))
                        int parenthesesPos = nameWithMoreData.IndexOf('(');
                        string nameWithoutJumpType;
                        if(parenthesesPos == -1)
                            nameWithoutJumpType = nameWithMoreData;
                        else
                            nameWithoutJumpType = nameWithMoreData.Substring(0, parenthesesPos-1);
                        //probably name has sex like:
                        //myName.F, or myName.F (CMJ)
                        string [] onlyName = nameWithoutJumpType.Split(new char[] {'.'});
                        */
                        //if(onlyName[0] == selected) {
                        if(onlyName == selected) {
                            store.SetValue (iter, 0, true);
                            addRowToMarkedRows(treeview.Model.GetPath(iter).ToString());
                        } else {
                            store.SetValue (iter, 0, false);
                            deleteRowFromMarkedRows(treeview.Model.GetPath(iter).ToString());
                        }
                    }
                } while ( store.IterNext(ref iter) );
            }

            //check rows selected and raise a signal if noone is selected
            if (isThereAnyRowSelected(store)) {
                fakeButtonRowsSelected.Click();
            } else {
                fakeButtonNoRowsSelected.Click();
            }
        } else {
            //if we cannot access the treeview, also don't allow to graph or report
            fakeButtonNoRowsSelected.Click();
        }
    }

Usage Example

コード例 #1
0
ファイル: statType.cs プロジェクト: davidfombella/chronojump
 public void MarkSelected(string selected)
 {
     myStat.MarkSelected(selected);
 }