Пример #1
0
        private void MaxMinDialog_Load(object sender, EventArgs e)
        {
            Max           = Selector.Maxmin(Table).Max[Column];
            Min           = Selector.Maxmin(Table).Min[Column];
            MaxLabel.Text = Max.ToString();
            MinLabel.Text = Min.ToString();
            var constrains = Selector.Constrains(Table)[Column];
            var names      = new List <string>();

            foreach (var constrain in constrains)
            {
                names.Add(constrain.Name);
            }

            if (Origin == null)
            {
                Constrain = new TireDataConstrain(StaticFunctions.GetUniqueName(names, "新規セレクタ"), Column, Max, Min, false);
            }
            else
            {
                Constrain = Origin.Copy();
            }

            NameTB.Text         = Constrain.Name;
            NotCheckBox.Checked = Constrain.Not;
            MaxTB.Text          = Constrain.Max.ToString();
            MinTB.Text          = Constrain.Min.ToString();

            CalculateMinimumEntropy(Target, Max, Min);
            Extract();
        }
Пример #2
0
        public MaxMinDialog(TireDataColumn column, Table table, TireDataSetSelector selector, TireDataConstrain constrain = null)
        {
            InitializeComponent();
            Origin = constrain;

            Column   = column;
            Table    = table;
            Selector = selector;

            Target = new List <double>();
            foreach (var data in selector.Target(table))
            {
                Target.Add(data[column]);
            }
            Target.Sort();

            MainChart.ChartAreas[0].AxisX.Title = Column.ToString();
            MainChart.ChartAreas[0].AxisY.Title = "データ数(個)";
            Series exSeries           = new Series();
            Series nexSeries          = new Series();
            Series SelectedAreaSeries = new Series();

            exSeries.LegendText           = "抽出データ";
            nexSeries.LegendText          = "削除データ";
            SelectedAreaSeries.LegendText = "選択範囲";



            exSeries.ChartType           = SeriesChartType.StackedColumn;
            nexSeries.ChartType          = SeriesChartType.StackedColumn;
            SelectedAreaSeries.ChartType = SeriesChartType.Area;

            exSeries.Color           = Color.Green;
            nexSeries.Color          = Color.Red;
            SelectedAreaSeries.Color = Color.LightBlue;

            MainChart.Series.Clear();
            MainChart.Series.Add(SelectedAreaSeries);
            MainChart.Series.Add(exSeries);
            MainChart.Series.Add(nexSeries);
        }
Пример #3
0
        public IDataSet SelectedData()
        {
            if (Changed)
            {
                if (PureSlipX)
                {
                    Selector.RemoveConstrain(FZ, AttachedTable);
                    Selector.RemoveConstrain(P, AttachedTable);
                    Selector.RemoveConstrain(IA, AttachedTable);
                    Selector.RemoveConstrain(T, AttachedTable);
                    Selector.RemoveConstrain(SA, AttachedTable);
                    FZ = new TireDataConstrain("FZ", TireDataColumn.FZ, FZBar.valueR, FZBar.valueL);
                    P  = new TireDataConstrain("P", TireDataColumn.P, PBar.valueR, PBar.valueL);
                    IA = new TireDataConstrain("IA", TireDataColumn.IA, IABar.valueR, IABar.valueL);
                    T  = new TireDataConstrain("T", TireDataColumn.TSTC, TBar.valueR, TBar.valueL);
                    SA = new TireDataConstrain("SA", TireDataColumn.SA, 0.5, -0.5);

                    Selector.AddConstrain(FZ, AttachedTable);
                    Selector.AddConstrain(P, AttachedTable);
                    Selector.AddConstrain(IA, AttachedTable);
                    Selector.AddConstrain(T, AttachedTable);
                    Selector.AddConstrain(SA, AttachedTable);
                    Selector.ExtractData(AttachedTable, NumSearch);
                }
                else
                {
                    Selector.RemoveConstrain(FZ, Table.CorneringTable);
                    Selector.RemoveConstrain(P, Table.CorneringTable);
                    Selector.RemoveConstrain(IA, Table.CorneringTable);
                    Selector.RemoveConstrain(T, Table.CorneringTable);
                    Selector.RemoveConstrain(SA, Table.CorneringTable);
                    Selector.RemoveConstrain(SR, Table.CorneringTable);

                    Selector.RemoveConstrain(FZ, Table.DriveBrakeTable);
                    Selector.RemoveConstrain(P, Table.DriveBrakeTable);
                    Selector.RemoveConstrain(IA, Table.DriveBrakeTable);
                    Selector.RemoveConstrain(T, Table.DriveBrakeTable);
                    Selector.RemoveConstrain(SA, Table.DriveBrakeTable);
                    Selector.RemoveConstrain(SR, Table.DriveBrakeTable);

                    Selector.RemoveConstrain(FZ, Table.TransientTable);
                    Selector.RemoveConstrain(P, Table.TransientTable);
                    Selector.RemoveConstrain(IA, Table.TransientTable);
                    Selector.RemoveConstrain(T, Table.TransientTable);
                    Selector.RemoveConstrain(SA, Table.TransientTable);
                    Selector.RemoveConstrain(SR, Table.TransientTable);

                    FZ = new TireDataConstrain("FZ", TireDataColumn.FZ, FZBar.valueR, FZBar.valueL);
                    P  = new TireDataConstrain("P", TireDataColumn.P, PBar.valueR, PBar.valueL);
                    IA = new TireDataConstrain("IA", TireDataColumn.IA, IABar.valueR, IABar.valueL);
                    T  = new TireDataConstrain("T", TireDataColumn.TSTC, TBar.valueR, TBar.valueL);
                    SA = new TireDataConstrain("SA", TireDataColumn.SA, SABar.valueR, SABar.valueL);
                    SR = new TireDataConstrain("SR", TireDataColumn.SR, SRBar.valueR, SRBar.valueL);

                    Selector.AddConstrain(FZ, Table.CorneringTable);
                    Selector.AddConstrain(P, Table.CorneringTable);
                    Selector.AddConstrain(IA, Table.CorneringTable);
                    Selector.AddConstrain(T, Table.CorneringTable);
                    Selector.AddConstrain(SA, Table.CorneringTable);
                    Selector.AddConstrain(SR, Table.CorneringTable);

                    Selector.AddConstrain(FZ, Table.DriveBrakeTable);
                    Selector.AddConstrain(P, Table.DriveBrakeTable);
                    Selector.AddConstrain(IA, Table.DriveBrakeTable);
                    Selector.AddConstrain(T, Table.DriveBrakeTable);
                    Selector.AddConstrain(SA, Table.DriveBrakeTable);
                    Selector.AddConstrain(SR, Table.DriveBrakeTable);

                    Selector.AddConstrain(FZ, Table.TransientTable);
                    Selector.AddConstrain(P, Table.TransientTable);
                    Selector.AddConstrain(IA, Table.TransientTable);
                    Selector.AddConstrain(T, Table.TransientTable);
                    Selector.AddConstrain(SA, Table.TransientTable);
                    Selector.AddConstrain(SR, Table.TransientTable);
                    Selector.ExtractData(Table.CorneringTable, NumSearch / 4);
                    Selector.ExtractData(Table.DriveBrakeTable, NumSearch * 3 / 4);
                    Selector.ExtractData(Table.TransientTable, NumSearch);
                }
            }


            Changed = false;
            return(Selector);
        }
Пример #4
0
        private void UpdateValues()
        {
            var limit = MFFD.IDataset.GetDataSet().MaxminSet.Limit(AttachedTable);

            if (PureSlipX)
            {
                if (Selector != null)
                {
                    Selector.RemoveConstrain(FZ, AttachedTable);
                    Selector.RemoveConstrain(P, AttachedTable);
                    Selector.RemoveConstrain(IA, AttachedTable);
                    Selector.RemoveConstrain(T, AttachedTable);
                    Selector.RemoveConstrain(SA, AttachedTable);
                }
                FZ       = new TireDataConstrain("FZ", TireDataColumn.FZ, limit.Max.FZ, limit.Min.FZ);
                P        = new TireDataConstrain("P", TireDataColumn.P, limit.Max.P, limit.Min.P);
                IA       = new TireDataConstrain("IA", TireDataColumn.IA, limit.Max.IA, limit.Min.IA);
                T        = new TireDataConstrain("T", TireDataColumn.TSTC, limit.Max.TSTC, limit.Min.TSTC);
                SA       = new TireDataConstrain("SA", TireDataColumn.SA, limit.Max.SA, limit.Min.SA);
                Selector = new TireDataSetSelector(mffd.IDataset);
                Selector.AddConstrain(FZ, AttachedTable);
                Selector.AddConstrain(P, AttachedTable);
                Selector.AddConstrain(IA, AttachedTable);
                Selector.AddConstrain(T, AttachedTable);
                Selector.AddConstrain(SA, AttachedTable);
            }
            else
            {
                if (Selector != null)
                {
                    Selector.RemoveConstrain(FZ, Table.CorneringTable);
                    Selector.RemoveConstrain(P, Table.CorneringTable);
                    Selector.RemoveConstrain(IA, Table.CorneringTable);
                    Selector.RemoveConstrain(T, Table.CorneringTable);
                    Selector.RemoveConstrain(SA, Table.CorneringTable);
                    Selector.RemoveConstrain(SR, Table.CorneringTable);

                    Selector.RemoveConstrain(FZ, Table.DriveBrakeTable);
                    Selector.RemoveConstrain(P, Table.DriveBrakeTable);
                    Selector.RemoveConstrain(IA, Table.DriveBrakeTable);
                    Selector.RemoveConstrain(T, Table.DriveBrakeTable);
                    Selector.RemoveConstrain(SA, Table.DriveBrakeTable);
                    Selector.RemoveConstrain(SR, Table.DriveBrakeTable);
                }
                limit = StaticFunctions.TireDataMaxminMerge(
                    MFFD.IDataset.GetDataSet().MaxminSet.Limit(Table.CorneringTable),
                    MFFD.IDataset.GetDataSet().MaxminSet.Limit(Table.DriveBrakeTable)
                    );
                limit = StaticFunctions.TireDataMaxminMerge(
                    limit,
                    MFFD.IDataset.GetDataSet().MaxminSet.Limit(Table.TransientTable)
                    );
                FZ       = new TireDataConstrain("FZ", TireDataColumn.FZ, limit.Max.FZ, limit.Min.FZ);
                P        = new TireDataConstrain("P", TireDataColumn.P, limit.Max.P, limit.Min.P);
                IA       = new TireDataConstrain("IA", TireDataColumn.IA, limit.Max.IA, limit.Min.IA);
                T        = new TireDataConstrain("T", TireDataColumn.TSTC, limit.Max.TSTC, limit.Min.TSTC);
                SA       = new TireDataConstrain("SA", TireDataColumn.SA, limit.Max.SA, limit.Min.SA);
                SR       = new TireDataConstrain("SR", TireDataColumn.SR, limit.Max.SR, limit.Min.SR);
                Selector = new TireDataSetSelector(mffd.IDataset);
                Selector.AddConstrain(FZ, Table.CorneringTable);
                Selector.AddConstrain(P, Table.CorneringTable);
                Selector.AddConstrain(IA, Table.CorneringTable);
                Selector.AddConstrain(T, Table.CorneringTable);
                Selector.AddConstrain(SA, Table.CorneringTable);
                Selector.AddConstrain(SR, Table.CorneringTable);

                Selector.AddConstrain(FZ, Table.DriveBrakeTable);
                Selector.AddConstrain(P, Table.DriveBrakeTable);
                Selector.AddConstrain(IA, Table.DriveBrakeTable);
                Selector.AddConstrain(T, Table.DriveBrakeTable);
                Selector.AddConstrain(SA, Table.DriveBrakeTable);
                Selector.AddConstrain(SR, Table.DriveBrakeTable);
            }
            FZBar.Max = limit.Max.FZ;
            FZBar.Min = limit.Min.FZ;

            PBar.Max = limit.Max.P;
            PBar.Min = limit.Min.P;

            IABar.Max = limit.Max.IA;
            IABar.Min = limit.Min.IA;

            TBar.Max = limit.Max.TSTC;
            TBar.Min = limit.Min.TSTC;

            SABar.Max = limit.Max.SA;
            SABar.Min = limit.Min.SA;

            SRBar.Max = limit.Max.SR;
            SRBar.Min = limit.Min.SR;

            FZBar.valueR = limit.Max.FZ;
            FZBar.valueL = limit.Min.FZ;

            PBar.valueR = limit.Max.P;
            PBar.valueL = limit.Min.P;

            IABar.valueR = limit.Max.IA;
            IABar.valueL = limit.Min.IA;

            TBar.valueR = limit.Max.TSTC;
            TBar.valueL = limit.Min.TSTC;

            SABar.valueR = limit.Max.SA;
            SABar.valueL = limit.Min.SA;

            SRBar.valueR = limit.Max.SR;
            SRBar.valueL = limit.Min.SR;
        }
Пример #5
0
        void AddConstrainToNode(TireDataColumn column, TreeNode ParentNode, TireDataConstrain constrain)
        {
            var node = new TreeNode(constrain.Name);

            ParentNode.Nodes.Add(node);
            node.ContextMenuStrip = new ContextMenuStrip();
            EventHandler handler = delegate(object sender, EventArgs e)
            {
                var d = new MaxMinDialog(column, Table, Selector, constrain);
                d.ShowDialog();
                if (d.DialogResult == DialogResult.OK)
                {
                    constrain.CopyFrom(d.Constrain);
                    Selector.ExtractData();
                    Selector.ConfirmStateChanged(Table);
                    node.Text = constrain.Name;
                    if (SelectedAreaChanged != null)
                    {
                        SelectedAreaChanged(Selector);
                    }
                    property.Changed();
                }
            };

            node.TreeView.NodeMouseDoubleClick += delegate(object sender, TreeNodeMouseClickEventArgs e)
            {
                if (e.Node == node)
                {
                    handler(sender, e);
                }
            };
            node.TreeView.AfterLabelEdit += delegate(object sender, NodeLabelEditEventArgs e)
            {
                e.CancelEdit = true;
                if (e.Node == node && e.Label != null && e.Label != "")
                {
                    constrain.Name = e.Label;
                    node.Text      = e.Label;
                    Selector.ConfirmStateChanged(Table);


                    property.Changed();
                }
            };


            node.ContextMenuStrip.Items.Add(
                new ToolStripMenuItem(
                    "名前の変更",
                    null,
                    delegate(object sender, EventArgs e)
            {
                node.BeginEdit();
            }
                    )
                );
            node.ContextMenuStrip.Items.Add(
                new ToolStripMenuItem(
                    "編集",
                    null,
                    handler
                    )
                );
            node.ContextMenuStrip.Items.Add(
                new ToolStripMenuItem(
                    "削除",
                    null,
                    delegate(object sender, EventArgs e)
            {
                Selector.RemoveConstrain(constrain, Table);
                Selector.ExtractData();
                ParentNode.Nodes.Remove(node);
                if (SelectedAreaChanged != null)
                {
                    SelectedAreaChanged(Selector);
                }
                property.Changed();
            }
                    )
                );
        }