Changeset 6012


Ignore:
Timestamp:
04/15/11 18:41:13 (8 years ago)
Author:
abeham
Message:

#1465

  • fine tuned UI for setting data(table|row) visual properties
  • added control for the data table visual properties
  • added a few more visual properties
Location:
branches/histogram
Files:
3 added
8 edited

Legend:

Unmodified
Added
Removed
  • branches/histogram/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.Designer.cs

    r6011 r6012  
    4646    private void InitializeComponent() {
    4747      this.chartTypeComboBox = new System.Windows.Forms.ComboBox();
    48       this.secondYAxisCheckBox = new System.Windows.Forms.CheckBox();
    4948      this.colorDialog = new System.Windows.Forms.ColorDialog();
    5049      this.colorButton = new System.Windows.Forms.Button();
    5150      this.startIndexZeroCheckBox = new System.Windows.Forms.CheckBox();
    52       this.exactBinsCheckBox = new System.Windows.Forms.CheckBox();
    5351      this.binsNumericUpDown = new System.Windows.Forms.NumericUpDown();
    5452      this.label1 = new System.Windows.Forms.Label();
     
    5654      this.label3 = new System.Windows.Forms.Label();
    5755      this.commonGroupBox = new System.Windows.Forms.GroupBox();
     56      this.xAxisSecondaryRadioButton = new System.Windows.Forms.RadioButton();
     57      this.yAxisSecondaryRadioButton = new System.Windows.Forms.RadioButton();
     58      this.xAxisPrimaryRadioButton = new System.Windows.Forms.RadioButton();
     59      this.yAxisPrimaryRadioButton = new System.Windows.Forms.RadioButton();
     60      this.label6 = new System.Windows.Forms.Label();
     61      this.label5 = new System.Windows.Forms.Label();
    5862      this.histoGramGroupBox = new System.Windows.Forms.GroupBox();
    59       this.secondXAxisCheckBox = new System.Windows.Forms.CheckBox();
     63      this.lineChartGroupBox = new System.Windows.Forms.GroupBox();
     64      this.lineWidthNumericUpDown = new System.Windows.Forms.NumericUpDown();
     65      this.label4 = new System.Windows.Forms.Label();
     66      this.label7 = new System.Windows.Forms.Label();
     67      this.binsApproximatelyRadioButton = new System.Windows.Forms.RadioButton();
     68      this.binsExactRadioButton = new System.Windows.Forms.RadioButton();
     69      this.panel1 = new System.Windows.Forms.Panel();
     70      this.panel2 = new System.Windows.Forms.Panel();
     71      this.panel3 = new System.Windows.Forms.Panel();
     72      this.lineStyleComboBox = new System.Windows.Forms.ComboBox();
     73      this.label8 = new System.Windows.Forms.Label();
    6074      ((System.ComponentModel.ISupportInitialize)(this.binsNumericUpDown)).BeginInit();
    6175      this.commonGroupBox.SuspendLayout();
    6276      this.histoGramGroupBox.SuspendLayout();
     77      this.lineChartGroupBox.SuspendLayout();
     78      ((System.ComponentModel.ISupportInitialize)(this.lineWidthNumericUpDown)).BeginInit();
     79      this.panel1.SuspendLayout();
     80      this.panel2.SuspendLayout();
     81      this.panel3.SuspendLayout();
    6382      this.SuspendLayout();
    6483      //
    6584      // chartTypeComboBox
    6685      //
    67       this.chartTypeComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    68                   | System.Windows.Forms.AnchorStyles.Right)));
    6986      this.chartTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
    7087      this.chartTypeComboBox.FormattingEnabled = true;
    71       this.chartTypeComboBox.Location = new System.Drawing.Point(90, 19);
     88      this.chartTypeComboBox.Location = new System.Drawing.Point(76, 19);
    7289      this.chartTypeComboBox.Name = "chartTypeComboBox";
    73       this.chartTypeComboBox.Size = new System.Drawing.Size(377, 21);
    74       this.chartTypeComboBox.TabIndex = 0;
     90      this.chartTypeComboBox.Size = new System.Drawing.Size(218, 21);
     91      this.chartTypeComboBox.TabIndex = 1;
    7592      this.chartTypeComboBox.SelectedValueChanged += new System.EventHandler(this.chartTypeComboBox_SelectedValueChanged);
    7693      //
    77       // secondYAxisCheckBox
    78       //
    79       this.secondYAxisCheckBox.AutoSize = true;
    80       this.secondYAxisCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
    81       this.secondYAxisCheckBox.Location = new System.Drawing.Point(8, 75);
    82       this.secondYAxisCheckBox.Name = "secondYAxisCheckBox";
    83       this.secondYAxisCheckBox.Size = new System.Drawing.Size(98, 17);
    84       this.secondYAxisCheckBox.TabIndex = 1;
    85       this.secondYAxisCheckBox.Text = "Second Y Axis:";
    86       this.secondYAxisCheckBox.UseVisualStyleBackColor = true;
    87       this.secondYAxisCheckBox.CheckedChanged += new System.EventHandler(this.secondYAxisCheckBox_CheckedChanged);
    88       //
    8994      // colorDialog
    9095      //
     
    9499      //
    95100      this.colorButton.BackColor = System.Drawing.SystemColors.Control;
    96       this.colorButton.Location = new System.Drawing.Point(90, 46);
     101      this.colorButton.Location = new System.Drawing.Point(76, 46);
    97102      this.colorButton.Name = "colorButton";
    98103      this.colorButton.Size = new System.Drawing.Size(23, 23);
    99       this.colorButton.TabIndex = 2;
     104      this.colorButton.TabIndex = 3;
    100105      this.colorButton.UseVisualStyleBackColor = false;
    101106      this.colorButton.Click += new System.EventHandler(this.colorButton_Click);
     
    105110      this.startIndexZeroCheckBox.AutoSize = true;
    106111      this.startIndexZeroCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
    107       this.startIndexZeroCheckBox.Location = new System.Drawing.Point(17, 121);
     112      this.startIndexZeroCheckBox.Location = new System.Drawing.Point(96, 46);
    108113      this.startIndexZeroCheckBox.Name = "startIndexZeroCheckBox";
    109       this.startIndexZeroCheckBox.Size = new System.Drawing.Size(89, 17);
     114      this.startIndexZeroCheckBox.Size = new System.Drawing.Size(15, 14);
    110115      this.startIndexZeroCheckBox.TabIndex = 3;
    111       this.startIndexZeroCheckBox.Text = "Start Index 0:";
    112116      this.startIndexZeroCheckBox.UseVisualStyleBackColor = true;
    113117      this.startIndexZeroCheckBox.CheckedChanged += new System.EventHandler(this.startIndexZeroCheckBox_CheckedChanged);
    114118      //
    115       // exactBinsCheckBox
    116       //
    117       this.exactBinsCheckBox.AutoSize = true;
    118       this.exactBinsCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
    119       this.exactBinsCheckBox.Location = new System.Drawing.Point(155, 20);
    120       this.exactBinsCheckBox.Name = "exactBinsCheckBox";
    121       this.exactBinsCheckBox.Size = new System.Drawing.Size(56, 17);
    122       this.exactBinsCheckBox.TabIndex = 4;
    123       this.exactBinsCheckBox.Text = "Exact:";
    124       this.exactBinsCheckBox.UseVisualStyleBackColor = true;
    125       this.exactBinsCheckBox.CheckedChanged += new System.EventHandler(this.exactBinsCheckBox_CheckedChanged);
    126       //
    127119      // binsNumericUpDown
    128120      //
    129       this.binsNumericUpDown.Location = new System.Drawing.Point(48, 19);
     121      this.binsNumericUpDown.Location = new System.Drawing.Point(44, 19);
     122      this.binsNumericUpDown.Minimum = new decimal(new int[] {
     123            1,
     124            0,
     125            0,
     126            0});
    130127      this.binsNumericUpDown.Name = "binsNumericUpDown";
    131       this.binsNumericUpDown.Size = new System.Drawing.Size(101, 20);
    132       this.binsNumericUpDown.TabIndex = 5;
     128      this.binsNumericUpDown.Size = new System.Drawing.Size(96, 20);
     129      this.binsNumericUpDown.TabIndex = 1;
     130      this.binsNumericUpDown.Value = new decimal(new int[] {
     131            1,
     132            0,
     133            0,
     134            0});
    133135      this.binsNumericUpDown.ValueChanged += new System.EventHandler(this.binsNumericUpDown_ValueChanged);
    134136      //
     
    136138      //
    137139      this.label1.AutoSize = true;
    138       this.label1.Location = new System.Drawing.Point(22, 22);
     140      this.label1.Location = new System.Drawing.Point(8, 22);
    139141      this.label1.Name = "label1";
    140142      this.label1.Size = new System.Drawing.Size(62, 13);
    141       this.label1.TabIndex = 6;
     143      this.label1.TabIndex = 0;
    142144      this.label1.Text = "Chart Type:";
    143145      //
     
    145147      //
    146148      this.label2.AutoSize = true;
    147       this.label2.Location = new System.Drawing.Point(50, 51);
     149      this.label2.Location = new System.Drawing.Point(8, 51);
    148150      this.label2.Name = "label2";
    149151      this.label2.Size = new System.Drawing.Size(34, 13);
    150       this.label2.TabIndex = 6;
     152      this.label2.TabIndex = 2;
    151153      this.label2.Text = "Color:";
    152154      //
     
    157159      this.label3.Name = "label3";
    158160      this.label3.Size = new System.Drawing.Size(30, 13);
    159       this.label3.TabIndex = 6;
     161      this.label3.TabIndex = 0;
    160162      this.label3.Text = "Bins:";
    161163      //
     
    164166      this.commonGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    165167                  | System.Windows.Forms.AnchorStyles.Right)));
     168      this.commonGroupBox.Controls.Add(this.panel2);
     169      this.commonGroupBox.Controls.Add(this.panel1);
     170      this.commonGroupBox.Controls.Add(this.label6);
     171      this.commonGroupBox.Controls.Add(this.label5);
    166172      this.commonGroupBox.Controls.Add(this.colorButton);
    167       this.commonGroupBox.Controls.Add(this.secondXAxisCheckBox);
    168       this.commonGroupBox.Controls.Add(this.secondYAxisCheckBox);
    169173      this.commonGroupBox.Controls.Add(this.label1);
    170174      this.commonGroupBox.Controls.Add(this.label2);
    171175      this.commonGroupBox.Controls.Add(this.chartTypeComboBox);
    172       this.commonGroupBox.Controls.Add(this.startIndexZeroCheckBox);
    173176      this.commonGroupBox.Location = new System.Drawing.Point(3, 3);
    174177      this.commonGroupBox.Name = "commonGroupBox";
    175       this.commonGroupBox.Size = new System.Drawing.Size(473, 142);
    176       this.commonGroupBox.TabIndex = 7;
     178      this.commonGroupBox.Size = new System.Drawing.Size(305, 125);
     179      this.commonGroupBox.TabIndex = 0;
    177180      this.commonGroupBox.TabStop = false;
    178181      this.commonGroupBox.Text = "Common";
    179182      //
     183      // xAxisSecondaryRadioButton
     184      //
     185      this.xAxisSecondaryRadioButton.AutoSize = true;
     186      this.xAxisSecondaryRadioButton.Location = new System.Drawing.Point(81, 3);
     187      this.xAxisSecondaryRadioButton.Name = "xAxisSecondaryRadioButton";
     188      this.xAxisSecondaryRadioButton.Size = new System.Drawing.Size(76, 17);
     189      this.xAxisSecondaryRadioButton.TabIndex = 1;
     190      this.xAxisSecondaryRadioButton.TabStop = true;
     191      this.xAxisSecondaryRadioButton.Text = "Secondary";
     192      this.xAxisSecondaryRadioButton.UseVisualStyleBackColor = true;
     193      this.xAxisSecondaryRadioButton.CheckedChanged += new System.EventHandler(this.xAxisRadioButton_CheckedChanged);
     194      //
     195      // yAxisSecondaryRadioButton
     196      //
     197      this.yAxisSecondaryRadioButton.AutoSize = true;
     198      this.yAxisSecondaryRadioButton.Location = new System.Drawing.Point(82, 3);
     199      this.yAxisSecondaryRadioButton.Name = "yAxisSecondaryRadioButton";
     200      this.yAxisSecondaryRadioButton.Size = new System.Drawing.Size(76, 17);
     201      this.yAxisSecondaryRadioButton.TabIndex = 1;
     202      this.yAxisSecondaryRadioButton.TabStop = true;
     203      this.yAxisSecondaryRadioButton.Text = "Secondary";
     204      this.yAxisSecondaryRadioButton.UseVisualStyleBackColor = true;
     205      this.yAxisSecondaryRadioButton.CheckedChanged += new System.EventHandler(this.yAxisRadioButton_CheckedChanged);
     206      //
     207      // xAxisPrimaryRadioButton
     208      //
     209      this.xAxisPrimaryRadioButton.AutoSize = true;
     210      this.xAxisPrimaryRadioButton.Location = new System.Drawing.Point(3, 3);
     211      this.xAxisPrimaryRadioButton.Name = "xAxisPrimaryRadioButton";
     212      this.xAxisPrimaryRadioButton.Size = new System.Drawing.Size(59, 17);
     213      this.xAxisPrimaryRadioButton.TabIndex = 0;
     214      this.xAxisPrimaryRadioButton.TabStop = true;
     215      this.xAxisPrimaryRadioButton.Text = "Primary";
     216      this.xAxisPrimaryRadioButton.UseVisualStyleBackColor = true;
     217      this.xAxisPrimaryRadioButton.CheckedChanged += new System.EventHandler(this.xAxisRadioButton_CheckedChanged);
     218      //
     219      // yAxisPrimaryRadioButton
     220      //
     221      this.yAxisPrimaryRadioButton.AutoSize = true;
     222      this.yAxisPrimaryRadioButton.Location = new System.Drawing.Point(4, 3);
     223      this.yAxisPrimaryRadioButton.Name = "yAxisPrimaryRadioButton";
     224      this.yAxisPrimaryRadioButton.Size = new System.Drawing.Size(59, 17);
     225      this.yAxisPrimaryRadioButton.TabIndex = 0;
     226      this.yAxisPrimaryRadioButton.TabStop = true;
     227      this.yAxisPrimaryRadioButton.Text = "Primary";
     228      this.yAxisPrimaryRadioButton.UseVisualStyleBackColor = true;
     229      this.yAxisPrimaryRadioButton.CheckedChanged += new System.EventHandler(this.yAxisRadioButton_CheckedChanged);
     230      //
     231      // label6
     232      //
     233      this.label6.AutoSize = true;
     234      this.label6.Location = new System.Drawing.Point(8, 100);
     235      this.label6.Name = "label6";
     236      this.label6.Size = new System.Drawing.Size(39, 13);
     237      this.label6.TabIndex = 6;
     238      this.label6.Text = "X-Axis:";
     239      //
     240      // label5
     241      //
     242      this.label5.AutoSize = true;
     243      this.label5.Location = new System.Drawing.Point(8, 77);
     244      this.label5.Name = "label5";
     245      this.label5.Size = new System.Drawing.Size(39, 13);
     246      this.label5.TabIndex = 4;
     247      this.label5.Text = "Y-Axis:";
     248      //
    180249      // histoGramGroupBox
    181250      //
    182251      this.histoGramGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    183252                  | System.Windows.Forms.AnchorStyles.Right)));
     253      this.histoGramGroupBox.Controls.Add(this.panel3);
    184254      this.histoGramGroupBox.Controls.Add(this.binsNumericUpDown);
    185       this.histoGramGroupBox.Controls.Add(this.exactBinsCheckBox);
    186255      this.histoGramGroupBox.Controls.Add(this.label3);
    187       this.histoGramGroupBox.Location = new System.Drawing.Point(3, 151);
     256      this.histoGramGroupBox.Location = new System.Drawing.Point(3, 236);
    188257      this.histoGramGroupBox.Name = "histoGramGroupBox";
    189       this.histoGramGroupBox.Size = new System.Drawing.Size(473, 49);
    190       this.histoGramGroupBox.TabIndex = 7;
     258      this.histoGramGroupBox.Size = new System.Drawing.Size(305, 49);
     259      this.histoGramGroupBox.TabIndex = 2;
    191260      this.histoGramGroupBox.TabStop = false;
    192261      this.histoGramGroupBox.Text = "Histogram";
    193262      //
    194       // secondXAxisCheckBox
    195       //
    196       this.secondXAxisCheckBox.AutoSize = true;
    197       this.secondXAxisCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
    198       this.secondXAxisCheckBox.Location = new System.Drawing.Point(8, 98);
    199       this.secondXAxisCheckBox.Name = "secondXAxisCheckBox";
    200       this.secondXAxisCheckBox.Size = new System.Drawing.Size(98, 17);
    201       this.secondXAxisCheckBox.TabIndex = 1;
    202       this.secondXAxisCheckBox.Text = "Second X Axis:";
    203       this.secondXAxisCheckBox.UseVisualStyleBackColor = true;
    204       this.secondXAxisCheckBox.CheckedChanged += new System.EventHandler(this.secondXAxisCheckBox_CheckedChanged);
     263      // lineChartGroupBox
     264      //
     265      this.lineChartGroupBox.Controls.Add(this.lineWidthNumericUpDown);
     266      this.lineChartGroupBox.Controls.Add(this.label4);
     267      this.lineChartGroupBox.Controls.Add(this.startIndexZeroCheckBox);
     268      this.lineChartGroupBox.Controls.Add(this.label7);
     269      this.lineChartGroupBox.Controls.Add(this.lineStyleComboBox);
     270      this.lineChartGroupBox.Controls.Add(this.label8);
     271      this.lineChartGroupBox.Location = new System.Drawing.Point(3, 134);
     272      this.lineChartGroupBox.Name = "lineChartGroupBox";
     273      this.lineChartGroupBox.Size = new System.Drawing.Size(473, 96);
     274      this.lineChartGroupBox.TabIndex = 1;
     275      this.lineChartGroupBox.TabStop = false;
     276      this.lineChartGroupBox.Text = "Line Chart";
     277      //
     278      // lineWidthNumericUpDown
     279      //
     280      this.lineWidthNumericUpDown.Location = new System.Drawing.Point(96, 66);
     281      this.lineWidthNumericUpDown.Minimum = new decimal(new int[] {
     282            1,
     283            0,
     284            0,
     285            0});
     286      this.lineWidthNumericUpDown.Name = "lineWidthNumericUpDown";
     287      this.lineWidthNumericUpDown.Size = new System.Drawing.Size(65, 20);
     288      this.lineWidthNumericUpDown.TabIndex = 5;
     289      this.lineWidthNumericUpDown.Value = new decimal(new int[] {
     290            1,
     291            0,
     292            0,
     293            0});
     294      this.lineWidthNumericUpDown.ValueChanged += new System.EventHandler(this.lineWidthNumericUpDown_ValueChanged);
     295      //
     296      // label4
     297      //
     298      this.label4.AutoSize = true;
     299      this.label4.Location = new System.Drawing.Point(8, 68);
     300      this.label4.Name = "label4";
     301      this.label4.Size = new System.Drawing.Size(61, 13);
     302      this.label4.TabIndex = 4;
     303      this.label4.Text = "Line Width:";
     304      //
     305      // label7
     306      //
     307      this.label7.AutoSize = true;
     308      this.label7.Location = new System.Drawing.Point(8, 46);
     309      this.label7.Name = "label7";
     310      this.label7.Size = new System.Drawing.Size(82, 13);
     311      this.label7.TabIndex = 2;
     312      this.label7.Text = "Start Index at 0:";
     313      //
     314      // binsApproximatelyRadioButton
     315      //
     316      this.binsApproximatelyRadioButton.AutoSize = true;
     317      this.binsApproximatelyRadioButton.Location = new System.Drawing.Point(0, 0);
     318      this.binsApproximatelyRadioButton.Name = "binsApproximatelyRadioButton";
     319      this.binsApproximatelyRadioButton.Size = new System.Drawing.Size(90, 17);
     320      this.binsApproximatelyRadioButton.TabIndex = 0;
     321      this.binsApproximatelyRadioButton.TabStop = true;
     322      this.binsApproximatelyRadioButton.Text = "Approximately";
     323      this.binsApproximatelyRadioButton.UseVisualStyleBackColor = true;
     324      this.binsApproximatelyRadioButton.CheckedChanged += new System.EventHandler(this.yAxisRadioButton_CheckedChanged);
     325      //
     326      // binsExactRadioButton
     327      //
     328      this.binsExactRadioButton.AutoSize = true;
     329      this.binsExactRadioButton.Location = new System.Drawing.Point(96, 0);
     330      this.binsExactRadioButton.Name = "binsExactRadioButton";
     331      this.binsExactRadioButton.Size = new System.Drawing.Size(52, 17);
     332      this.binsExactRadioButton.TabIndex = 1;
     333      this.binsExactRadioButton.TabStop = true;
     334      this.binsExactRadioButton.Text = "Exact";
     335      this.binsExactRadioButton.UseVisualStyleBackColor = true;
     336      this.binsExactRadioButton.CheckedChanged += new System.EventHandler(this.yAxisRadioButton_CheckedChanged);
     337      //
     338      // panel1
     339      //
     340      this.panel1.Controls.Add(this.yAxisSecondaryRadioButton);
     341      this.panel1.Controls.Add(this.yAxisPrimaryRadioButton);
     342      this.panel1.Location = new System.Drawing.Point(76, 72);
     343      this.panel1.Name = "panel1";
     344      this.panel1.Size = new System.Drawing.Size(159, 23);
     345      this.panel1.TabIndex = 5;
     346      //
     347      // panel2
     348      //
     349      this.panel2.Controls.Add(this.xAxisPrimaryRadioButton);
     350      this.panel2.Controls.Add(this.xAxisSecondaryRadioButton);
     351      this.panel2.Location = new System.Drawing.Point(76, 95);
     352      this.panel2.Name = "panel2";
     353      this.panel2.Size = new System.Drawing.Size(159, 21);
     354      this.panel2.TabIndex = 7;
     355      //
     356      // panel3
     357      //
     358      this.panel3.Controls.Add(this.binsApproximatelyRadioButton);
     359      this.panel3.Controls.Add(this.binsExactRadioButton);
     360      this.panel3.Location = new System.Drawing.Point(146, 21);
     361      this.panel3.Name = "panel3";
     362      this.panel3.Size = new System.Drawing.Size(147, 18);
     363      this.panel3.TabIndex = 2;
     364      //
     365      // lineStyleComboBox
     366      //
     367      this.lineStyleComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
     368      this.lineStyleComboBox.FormattingEnabled = true;
     369      this.lineStyleComboBox.Location = new System.Drawing.Point(96, 19);
     370      this.lineStyleComboBox.Name = "lineStyleComboBox";
     371      this.lineStyleComboBox.Size = new System.Drawing.Size(198, 21);
     372      this.lineStyleComboBox.TabIndex = 1;
     373      this.lineStyleComboBox.SelectedValueChanged += new System.EventHandler(this.lineStyleComboBox_SelectedValueChanged);
     374      //
     375      // label8
     376      //
     377      this.label8.AutoSize = true;
     378      this.label8.Location = new System.Drawing.Point(8, 22);
     379      this.label8.Name = "label8";
     380      this.label8.Size = new System.Drawing.Size(56, 13);
     381      this.label8.TabIndex = 0;
     382      this.label8.Text = "Line Style:";
    205383      //
    206384      // DataRowVisualPropertiesControl
     
    208386      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    209387      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     388      this.Controls.Add(this.lineChartGroupBox);
    210389      this.Controls.Add(this.histoGramGroupBox);
    211390      this.Controls.Add(this.commonGroupBox);
    212391      this.Name = "DataRowVisualPropertiesControl";
    213       this.Size = new System.Drawing.Size(479, 205);
     392      this.Size = new System.Drawing.Size(311, 290);
    214393      ((System.ComponentModel.ISupportInitialize)(this.binsNumericUpDown)).EndInit();
    215394      this.commonGroupBox.ResumeLayout(false);
     
    217396      this.histoGramGroupBox.ResumeLayout(false);
    218397      this.histoGramGroupBox.PerformLayout();
     398      this.lineChartGroupBox.ResumeLayout(false);
     399      this.lineChartGroupBox.PerformLayout();
     400      ((System.ComponentModel.ISupportInitialize)(this.lineWidthNumericUpDown)).EndInit();
     401      this.panel1.ResumeLayout(false);
     402      this.panel1.PerformLayout();
     403      this.panel2.ResumeLayout(false);
     404      this.panel2.PerformLayout();
     405      this.panel3.ResumeLayout(false);
     406      this.panel3.PerformLayout();
    219407      this.ResumeLayout(false);
    220408
     
    224412
    225413    private System.Windows.Forms.ComboBox chartTypeComboBox;
    226     private System.Windows.Forms.CheckBox secondYAxisCheckBox;
    227414    private System.Windows.Forms.ColorDialog colorDialog;
    228415    private System.Windows.Forms.Button colorButton;
    229416    private System.Windows.Forms.CheckBox startIndexZeroCheckBox;
    230     private System.Windows.Forms.CheckBox exactBinsCheckBox;
    231417    private System.Windows.Forms.NumericUpDown binsNumericUpDown;
    232418    private System.Windows.Forms.Label label1;
     
    235421    private System.Windows.Forms.GroupBox commonGroupBox;
    236422    private System.Windows.Forms.GroupBox histoGramGroupBox;
    237     private System.Windows.Forms.CheckBox secondXAxisCheckBox;
     423    private System.Windows.Forms.RadioButton xAxisSecondaryRadioButton;
     424    private System.Windows.Forms.RadioButton yAxisSecondaryRadioButton;
     425    private System.Windows.Forms.RadioButton xAxisPrimaryRadioButton;
     426    private System.Windows.Forms.RadioButton yAxisPrimaryRadioButton;
     427    private System.Windows.Forms.Label label6;
     428    private System.Windows.Forms.Label label5;
     429    private System.Windows.Forms.GroupBox lineChartGroupBox;
     430    private System.Windows.Forms.NumericUpDown lineWidthNumericUpDown;
     431    private System.Windows.Forms.Label label4;
     432    private System.Windows.Forms.Label label7;
     433    private System.Windows.Forms.RadioButton binsExactRadioButton;
     434    private System.Windows.Forms.RadioButton binsApproximatelyRadioButton;
     435    private System.Windows.Forms.Panel panel2;
     436    private System.Windows.Forms.Panel panel1;
     437    private System.Windows.Forms.Panel panel3;
     438    private System.Windows.Forms.ComboBox lineStyleComboBox;
     439    private System.Windows.Forms.Label label8;
    238440  }
    239441}
  • branches/histogram/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.cs

    r6011 r6012  
    4444      InitializeComponent();
    4545      chartTypeComboBox.DataSource = Enum.GetValues(typeof(DataRowVisualProperties.DataRowChartType));
     46      lineStyleComboBox.DataSource = Enum.GetValues(typeof(DataRowVisualProperties.DataRowLineStyle));
    4647    }
    4748
     
    5253          chartTypeComboBox.SelectedIndex = -1;
    5354          colorButton.BackColor = SystemColors.Control;
    54           secondYAxisCheckBox.Checked = false;
    55           secondXAxisCheckBox.Checked = false;
     55          colorButton.Text = "?";
     56          yAxisPrimaryRadioButton.Checked = false;
     57          yAxisSecondaryRadioButton.Checked = false;
     58          xAxisPrimaryRadioButton.Checked = false;
     59          xAxisSecondaryRadioButton.Checked = false;
     60          lineStyleComboBox.SelectedIndex = -1;
    5661          startIndexZeroCheckBox.Checked = false;
     62          lineWidthNumericUpDown.Value = 1;
    5763          binsNumericUpDown.Value = 1;
    58           exactBinsCheckBox.Checked = false;
     64          binsApproximatelyRadioButton.Checked = false;
     65          binsExactRadioButton.Checked = false;
    5966        } else {
    6067          chartTypeComboBox.SelectedItem = Content.ChartType;
     
    6269            colorButton.BackColor = SystemColors.Control;
    6370            colorButton.Text = "?";
    64           } else colorButton.BackColor = Content.Color;
    65           secondYAxisCheckBox.Checked = Content.SecondYAxis;
    66           secondXAxisCheckBox.Checked = Content.SecondXAxis;
     71          } else {
     72            colorButton.BackColor = Content.Color;
     73            colorButton.Text = String.Empty;
     74          }
     75          yAxisPrimaryRadioButton.Checked = !Content.SecondYAxis;
     76          yAxisSecondaryRadioButton.Checked = Content.SecondYAxis;
     77          xAxisPrimaryRadioButton.Checked = !Content.SecondXAxis;
     78          xAxisSecondaryRadioButton.Checked = Content.SecondXAxis;
     79          lineStyleComboBox.SelectedItem = Content.LineStyle;
    6780          startIndexZeroCheckBox.Checked = Content.StartIndexZero;
     81          lineWidthNumericUpDown.Value = Content.LineWidth;
    6882          binsNumericUpDown.Value = Content.Bins;
    69           exactBinsCheckBox.Checked = Content.ExactBins;
     83          binsApproximatelyRadioButton.Checked = !Content.ExactBins;
     84          binsExactRadioButton.Checked = Content.ExactBins;
    7085        }
    7186      } finally { SuppressEvents = false; }
     
    7590    protected virtual void SetEnabledStateOfControls() {
    7691      commonGroupBox.Enabled = Content != null;
     92      lineChartGroupBox.Enabled = Content != null && Content.ChartType == DataRowVisualProperties.DataRowChartType.Line;
    7793      histoGramGroupBox.Enabled = Content != null && Content.ChartType == DataRowVisualProperties.DataRowChartType.Histogram;
    7894    }
     
    94110    }
    95111
    96     private void secondYAxisCheckBox_CheckedChanged(object sender, EventArgs e) {
     112    private void yAxisRadioButton_CheckedChanged(object sender, EventArgs e) {
    97113      if (!SuppressEvents && Content != null) {
    98         Content.SecondYAxis = secondYAxisCheckBox.Checked;
     114        SuppressEvents = true;
     115        try {
     116          if (sender == yAxisPrimaryRadioButton)
     117            yAxisSecondaryRadioButton.Checked = !yAxisPrimaryRadioButton.Checked;
     118          else yAxisPrimaryRadioButton.Checked = !yAxisSecondaryRadioButton.Checked;
     119          Content.SecondYAxis = yAxisSecondaryRadioButton.Checked;
     120        } finally { SuppressEvents = false; }
    99121      }
    100122    }
    101123
    102     private void secondXAxisCheckBox_CheckedChanged(object sender, EventArgs e) {
     124    private void xAxisRadioButton_CheckedChanged(object sender, EventArgs e) {
    103125      if (!SuppressEvents && Content != null) {
    104         Content.SecondXAxis = secondXAxisCheckBox.Checked;
     126        SuppressEvents = true;
     127        try {
     128          if (sender == xAxisPrimaryRadioButton)
     129            xAxisSecondaryRadioButton.Checked = !xAxisPrimaryRadioButton.Checked;
     130          else xAxisPrimaryRadioButton.Checked = !xAxisSecondaryRadioButton.Checked;
     131          Content.SecondXAxis = xAxisSecondaryRadioButton.Checked;
     132        } finally { SuppressEvents = false; }
     133      }
     134    }
     135
     136    private void lineStyleComboBox_SelectedValueChanged(object sender, EventArgs e) {
     137      if (!SuppressEvents && Content != null) {
     138        Content.LineStyle = (DataRowVisualProperties.DataRowLineStyle)lineStyleComboBox.SelectedValue;
    105139      }
    106140    }
     
    112146    }
    113147
     148    private void lineWidthNumericUpDown_ValueChanged(object sender, EventArgs e) {
     149      if (!SuppressEvents && Content != null) {
     150        Content.LineWidth = (int)lineWidthNumericUpDown.Value;
     151      }
     152    }
     153
    114154    private void binsNumericUpDown_ValueChanged(object sender, EventArgs e) {
    115155      if (!SuppressEvents && Content != null) {
     
    118158    }
    119159
    120     private void exactBinsCheckBox_CheckedChanged(object sender, EventArgs e) {
     160    private void binNumberRadioButton_CheckedChanged(object sender, EventArgs e) {
    121161      if (!SuppressEvents && Content != null) {
    122         Content.ExactBins = exactBinsCheckBox.Checked;
     162        SuppressEvents = true;
     163        try {
     164          if (sender == binsApproximatelyRadioButton)
     165            binsExactRadioButton.Checked = !binsApproximatelyRadioButton.Checked;
     166          else binsApproximatelyRadioButton.Checked = !binsExactRadioButton.Checked;
     167          Content.ExactBins = binsExactRadioButton.Checked;
     168        } finally { SuppressEvents = false; }
    123169      }
    124170    }
  • branches/histogram/HeuristicLab.Analysis.Views/3.3/DataTableView.cs

    r6011 r6012  
    6060    }
    6161
     62    #region Event Handler Registration
    6263    /// <summary>
    6364    /// Removes the eventhandlers from the underlying <see cref="Variable"/>.
     
    8990        RegisterDataRowEvents(row);
    9091    }
     92
     93    /// <summary>
     94    /// Automatically called for every existing data row and whenever a data row is added
     95    /// to the data table. Do not call this method directly.
     96    /// </summary>
     97    /// <param name="row">The DataRow that was added.</param>
     98    protected virtual void RegisterDataRowEvents(DataRow row) {
     99      row.NameChanged += new EventHandler(Row_NameChanged);
     100      row.VisualPropertiesChanged += new EventHandler(Row_VisualPropertiesChanged);
     101      valuesRowsTable.Add(row.Values, row);
     102      row.Values.ItemsAdded += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsAdded);
     103      row.Values.ItemsRemoved += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsRemoved);
     104      row.Values.ItemsReplaced += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsReplaced);
     105      row.Values.ItemsMoved += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsMoved);
     106      row.Values.CollectionReset += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_CollectionReset);
     107    }
     108
     109    /// <summary>
     110    /// Automatically called for every data row that is removed from the DataTable. Do
     111    /// not directly call this method.
     112    /// </summary>
     113    /// <param name="row">The DataRow that was removed.</param>
     114    protected virtual void DeregisterDataRowEvents(DataRow row) {
     115      row.Values.ItemsAdded -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsAdded);
     116      row.Values.ItemsRemoved -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsRemoved);
     117      row.Values.ItemsReplaced -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsReplaced);
     118      row.Values.ItemsMoved -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsMoved);
     119      row.Values.CollectionReset -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_CollectionReset);
     120      valuesRowsTable.Remove(row.Values);
     121      row.VisualPropertiesChanged -= new EventHandler(Row_VisualPropertiesChanged);
     122      row.NameChanged -= new EventHandler(Row_NameChanged);
     123    }
     124    #endregion
    91125
    92126    protected override void OnContentChanged() {
     
    113147    }
    114148
    115 
    116149    /// <summary>
    117150    /// Add the DataRow as a series to the chart.
     
    120153    protected virtual void AddDataRow(DataRow row) {
    121154      Series series = new Series(row.Name);
     155      ConfigureSeries(series, row);
     156      FillSeriesWithRowValues(series, row);
     157
     158      chart.Series.Add(series);
     159      chart.ChartAreas[0].RecalculateAxesScale();
     160      UpdateYCursorInterval();
     161    }
     162
     163    private void ConfigureSeries(Series series, DataRow row) {
     164      RemoveCustomPropertyIfExists(series, "PointWidth");
     165      series.BorderWidth = 1;
     166      series.BorderDashStyle = ChartDashStyle.Solid;
     167
    122168      switch (row.VisualProperties.ChartType) {
    123169        case DataRowVisualProperties.DataRowChartType.Line:
    124170          series.ChartType = SeriesChartType.FastLine;
     171          series.BorderWidth = row.VisualProperties.LineWidth;
     172          series.BorderDashStyle = ConvertLineStyle(row.VisualProperties.LineStyle);
    125173          break;
    126174        case DataRowVisualProperties.DataRowChartType.Bars:
     
    132180        case DataRowVisualProperties.DataRowChartType.Points:
    133181          series.ChartType = SeriesChartType.FastPoint;
     182          series.BorderWidth = row.VisualProperties.LineWidth;
     183          series.BorderDashStyle = ConvertLineStyle(row.VisualProperties.LineStyle);
    134184          break;
    135185        case DataRowVisualProperties.DataRowChartType.Histogram:
    136186          series.ChartType = SeriesChartType.Column;
    137           series["PointWidth"] = "1";
     187          series.SetCustomProperty("PointWidth", "1");
    138188          break;
    139189        default:
     
    143193      series.YAxisType = row.VisualProperties.SecondYAxis ? AxisType.Secondary : AxisType.Primary;
    144194      series.XAxisType = row.VisualProperties.SecondXAxis ? AxisType.Secondary : AxisType.Primary;
    145       if (row.VisualProperties.Color != Color.Empty) series.Color = row.VisualProperties.Color;
     195      if (row.VisualProperties.Color != Color.Empty)
     196        series.Color = row.VisualProperties.Color;
     197      else series.Color = Color.Empty;
    146198      series.ToolTip = row.Name + " X = #INDEX, Y = #VAL";
    147       FillSeriesWithRowValues(series, row);
    148       chart.Series.Add(series);
    149       chart.ChartAreas[0].RecalculateAxesScale();
    150       UpdateYCursorInterval();
    151     }
    152 
     199    }
    153200
    154201    /// <summary>
     
    156203    /// </summary>
    157204    protected virtual void UpdateYCursorInterval() {
    158       double interestingValuesRange = (from series in chart.Series
    159                                        where series.Enabled
    160                                        let values = (from point in series.Points
    161                                                      where !point.IsEmpty
    162                                                      select point.YValues[0])
    163                                                      .DefaultIfEmpty(1.0)
    164                                        let range = values.Max() - values.Min()
    165                                        where range > 0.0
    166                                        select range)
    167                                        .DefaultIfEmpty(1.0)
    168                                        .Min();
     205      double interestingValuesRange = (
     206        from series in chart.Series
     207        where series.Enabled
     208        let values = (from point in series.Points
     209                      where !point.IsEmpty
     210                      select point.YValues[0]).DefaultIfEmpty(1.0)
     211        let range = values.Max() - values.Min()
     212        where range > 0.0
     213        select range
     214        ).DefaultIfEmpty(1.0).Min();
    169215
    170216      double digits = (int)Math.Log10(interestingValuesRange) - 3;
     
    186232    }
    187233
    188     #region Content Events
    189     /// <summary>
    190     /// Automatically called for every existing data row and whenever a data row is added
    191     /// to the data table. Do not call this method directly.
    192     /// </summary>
    193     /// <param name="row">The DataRow that was added.</param>
    194     protected virtual void RegisterDataRowEvents(DataRow row) {
    195       row.NameChanged += new EventHandler(Row_NameChanged);
    196       row.VisualPropertiesChanged += new EventHandler(Row_VisualPropertiesChanged);
    197       valuesRowsTable.Add(row.Values, row);
    198       row.Values.ItemsAdded += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsAdded);
    199       row.Values.ItemsRemoved += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsRemoved);
    200       row.Values.ItemsReplaced += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsReplaced);
    201       row.Values.ItemsMoved += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsMoved);
    202       row.Values.CollectionReset += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_CollectionReset);
    203     }
    204 
    205     /// <summary>
    206     /// Automatically called for every data row that is removed from the DataTable. Do
    207     /// not directly call this method.
    208     /// </summary>
    209     /// <param name="row">The DataRow that was removed.</param>
    210     protected virtual void DeregisterDataRowEvents(DataRow row) {
    211       row.Values.ItemsAdded -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsAdded);
    212       row.Values.ItemsRemoved -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsRemoved);
    213       row.Values.ItemsReplaced -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsReplaced);
    214       row.Values.ItemsMoved -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsMoved);
    215       row.Values.CollectionReset -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_CollectionReset);
    216       valuesRowsTable.Remove(row.Values);
    217       row.VisualPropertiesChanged -= new EventHandler(Row_VisualPropertiesChanged);
    218       row.NameChanged -= new EventHandler(Row_NameChanged);
    219     }
     234    #region Event Handlers
     235    #region Content Event Handlers
    220236    protected override void Content_NameChanged(object sender, EventArgs e) {
    221237      if (InvokeRequired)
     
    231247      else {
    232248        chart.ChartAreas[0].AxisX.Title = Content.VisualProperties.XAxisTitle;
     249        chart.ChartAreas[0].AxisX2.Title = Content.VisualProperties.SecondXAxisTitle;
    233250        chart.ChartAreas[0].AxisY.Title = Content.VisualProperties.YAxisTitle;
    234251        chart.ChartAreas[0].AxisY2.Title = Content.VisualProperties.SecondYAxisTitle;
    235252      }
    236253    }
     254    #endregion
     255    #region Rows Event Handlers
    237256    private void Rows_ItemsAdded(object sender, CollectionItemsChangedEventArgs<DataRow> e) {
    238257      if (InvokeRequired)
     
    283302      }
    284303    }
     304    #endregion
     305    #region Row Event Handlers
    285306    private void Row_VisualPropertiesChanged(object sender, EventArgs e) {
    286307      if (InvokeRequired)
     
    288309      else {
    289310        DataRow row = (DataRow)sender;
    290         if (chart.Series[row.Name].IsCustomPropertySet("PointWidth"))
    291           chart.Series[row.Name].DeleteCustomProperty("PointWidth");
    292         switch (row.VisualProperties.ChartType) {
    293           case DataRowVisualProperties.DataRowChartType.Line:
    294             chart.Series[row.Name].ChartType = SeriesChartType.FastLine;
    295             break;
    296           case DataRowVisualProperties.DataRowChartType.Bars:
    297             chart.Series[row.Name].ChartType = SeriesChartType.Bar;
    298             break;
    299           case DataRowVisualProperties.DataRowChartType.Columns:
    300             chart.Series[row.Name].ChartType = SeriesChartType.Column;
    301             break;
    302           case DataRowVisualProperties.DataRowChartType.Points:
    303             chart.Series[row.Name].ChartType = SeriesChartType.FastPoint;
    304             break;
    305           case DataRowVisualProperties.DataRowChartType.Histogram:
    306             chart.Series[row.Name].ChartType = SeriesChartType.Column;
    307             chart.Series[row.Name]["PointWidth"] = "1";
    308             CalculateHistogram(chart.Series[row.Name], row);
    309             break;
    310           default:
    311             chart.Series[row.Name].ChartType = SeriesChartType.FastPoint;
    312             break;
    313         }
    314         chart.Series[row.Name].YAxisType = row.VisualProperties.SecondYAxis ? AxisType.Secondary : AxisType.Primary;
    315         chart.Series[row.Name].XAxisType = row.VisualProperties.SecondXAxis ? AxisType.Secondary : AxisType.Primary;
    316         if (row.VisualProperties.Color != Color.Empty) chart.Series[row.Name].Color = row.VisualProperties.Color;
     311        Series series = chart.Series[row.Name];
     312        series.Points.Clear();
     313        ConfigureSeries(series, row);
     314        FillSeriesWithRowValues(series, row);
    317315        chart.ChartAreas[0].RecalculateAxesScale();
    318316      }
     
    326324      }
    327325    }
     326    #endregion
     327    #region Values Event Handlers
    328328    private void Values_ItemsAdded(object sender, CollectionItemsChangedEventArgs<IndexedItem<double>> e) {
    329329      if (InvokeRequired)
     
    419419    }
    420420    #endregion
    421 
    422     #region Chart Events
     421    #endregion
     422
     423    #region Chart Event Handlers
    423424    private void chart_MouseDown(object sender, MouseEventArgs e) {
    424425      HitTestResult result = chart.HitTest(e.X, e.Y);
     
    427428      }
    428429    }
     430    private void chart_MouseMove(object sender, MouseEventArgs e) {
     431      HitTestResult result = chart.HitTest(e.X, e.Y);
     432      if (result.ChartElementType == ChartElementType.LegendItem)
     433        this.Cursor = Cursors.Hand;
     434      else
     435        this.Cursor = Cursors.Default;
     436    }
     437    private void chart_CustomizeLegend(object sender, CustomizeLegendEventArgs e) {
     438      foreach (LegendItem legendItem in e.LegendItems) {
     439        var series = chart.Series[legendItem.SeriesName];
     440        if (series != null) {
     441          bool seriesIsInvisible = invisibleSeries.Contains(series);
     442          foreach (LegendCell cell in legendItem.Cells) {
     443            cell.ForeColor = seriesIsInvisible ? Color.Gray : Color.Black;
     444          }
     445        }
     446      }
     447    }
     448    private void chart_PropertiesClicked(object sender, EventArgs e) {
     449      DataTableVisualPropertiesDialog dialog = new DataTableVisualPropertiesDialog(Content);
     450      dialog.ShowDialog();
     451    }
     452    #endregion
    429453
    430454    private void ToggleSeriesVisible(Series series) {
     
    467491    }
    468492
    469     private void CalculateHistogram(Series series, DataRow row) {
     493    protected virtual void CalculateHistogram(Series series, DataRow row) {
    470494      series.Points.Clear();
    471495      if (!row.Values.Any()) return;
     
    494518      }
    495519      series.Points.AddXY(current + intervalCenter, frequency);
     520    }
     521
     522    #region Helpers
     523    protected void RemoveCustomPropertyIfExists(Series series, string property) {
     524      if (series.IsCustomPropertySet(property)) series.DeleteCustomProperty(property);
    496525    }
    497526
     
    507536    }
    508537
    509     private void chart_MouseMove(object sender, MouseEventArgs e) {
    510       HitTestResult result = chart.HitTest(e.X, e.Y);
    511       if (result.ChartElementType == ChartElementType.LegendItem)
    512         this.Cursor = Cursors.Hand;
    513       else
    514         this.Cursor = Cursors.Default;
    515     }
    516     private void chart_CustomizeLegend(object sender, CustomizeLegendEventArgs e) {
    517       foreach (LegendItem legendItem in e.LegendItems) {
    518         var series = chart.Series[legendItem.SeriesName];
    519         if (series != null) {
    520           bool seriesIsInvisible = invisibleSeries.Contains(series);
    521           foreach (LegendCell cell in legendItem.Cells) {
    522             cell.ForeColor = seriesIsInvisible ? Color.Gray : Color.Black;
    523           }
    524         }
    525       }
    526     }
    527 
    528     private void chart_PropertiesClicked(object sender, EventArgs e) {
    529       DataTableVisualPropertiesDialog dialog = new DataTableVisualPropertiesDialog(Content);
    530       dialog.ShowDialog();
    531     }
    532     #endregion
    533 
     538    private ChartDashStyle ConvertLineStyle(DataRowVisualProperties.DataRowLineStyle dataRowLineStyle) {
     539      switch (dataRowLineStyle) {
     540        case DataRowVisualProperties.DataRowLineStyle.Dash:
     541          return ChartDashStyle.Dash;
     542        case DataRowVisualProperties.DataRowLineStyle.DashDot:
     543          return ChartDashStyle.DashDot;
     544        case DataRowVisualProperties.DataRowLineStyle.DashDotDot:
     545          return ChartDashStyle.DashDotDot;
     546        case DataRowVisualProperties.DataRowLineStyle.Dot:
     547          return ChartDashStyle.Dot;
     548        case DataRowVisualProperties.DataRowLineStyle.NotSet:
     549          return ChartDashStyle.NotSet;
     550        case DataRowVisualProperties.DataRowLineStyle.Solid:
     551          return ChartDashStyle.Solid;
     552        default:
     553          return ChartDashStyle.NotSet;
     554      }
     555    }
    534556
    535557    /// <summary>
     
    542564      return double.IsNaN(x) || x < (double)decimal.MinValue || x > (double)decimal.MaxValue;
    543565    }
     566    #endregion
    544567  }
    545568}
  • branches/histogram/HeuristicLab.Analysis.Views/3.3/DataTableVisualPropertiesDialog.Designer.cs

    r6010 r6012  
    5353      this.chartTabPage = new System.Windows.Forms.TabPage();
    5454      this.dataRowVisualPropertiesControl = new HeuristicLab.Analysis.Views.DataRowVisualPropertiesControl();
     55      this.dataTableVisualPropertiesControl = new HeuristicLab.Analysis.Views.DataTableVisualPropertiesControl();
    5556      this.tabControl.SuspendLayout();
    5657      this.seriesTabPage.SuspendLayout();
     
    5960      this.splitContainer.Panel2.SuspendLayout();
    6061      this.splitContainer.SuspendLayout();
     62      this.chartTabPage.SuspendLayout();
    6163      this.SuspendLayout();
    6264      //
     
    6567      this.okButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
    6668      this.okButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
    67       this.okButton.Location = new System.Drawing.Point(230, 259);
     69      this.okButton.Location = new System.Drawing.Point(152, 324);
    6870      this.okButton.Name = "okButton";
    6971      this.okButton.Size = new System.Drawing.Size(75, 23);
     
    7779      this.cancelButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
    7880      this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
    79       this.cancelButton.Location = new System.Drawing.Point(311, 259);
     81      this.cancelButton.Location = new System.Drawing.Point(233, 324);
    8082      this.cancelButton.Name = "cancelButton";
    8183      this.cancelButton.Size = new System.Drawing.Size(75, 23);
     
    9597      this.tabControl.Name = "tabControl";
    9698      this.tabControl.SelectedIndex = 0;
    97       this.tabControl.Size = new System.Drawing.Size(630, 252);
     99      this.tabControl.Size = new System.Drawing.Size(474, 317);
    98100      this.tabControl.TabIndex = 2;
    99101      //
     
    104106      this.seriesTabPage.Name = "seriesTabPage";
    105107      this.seriesTabPage.Padding = new System.Windows.Forms.Padding(3);
    106       this.seriesTabPage.Size = new System.Drawing.Size(622, 226);
     108      this.seriesTabPage.Size = new System.Drawing.Size(466, 291);
    107109      this.seriesTabPage.TabIndex = 0;
    108110      this.seriesTabPage.Text = "Series";
     
    125127      this.splitContainer.Panel2.Controls.Add(this.dataRowVisualPropertiesControl);
    126128      this.splitContainer.Panel2MinSize = 50;
    127       this.splitContainer.Size = new System.Drawing.Size(616, 220);
     129      this.splitContainer.Size = new System.Drawing.Size(460, 285);
    128130      this.splitContainer.SplitterDistance = 125;
    129131      this.splitContainer.TabIndex = 0;
     
    137139      this.seriesListView.Name = "seriesListView";
    138140      this.seriesListView.ShowGroups = false;
    139       this.seriesListView.Size = new System.Drawing.Size(125, 220);
     141      this.seriesListView.Size = new System.Drawing.Size(125, 285);
    140142      this.seriesListView.TabIndex = 0;
    141143      this.seriesListView.UseCompatibleStateImageBehavior = false;
     
    145147      // chartTabPage
    146148      //
     149      this.chartTabPage.Controls.Add(this.dataTableVisualPropertiesControl);
    147150      this.chartTabPage.Location = new System.Drawing.Point(4, 22);
    148151      this.chartTabPage.Name = "chartTabPage";
    149152      this.chartTabPage.Padding = new System.Windows.Forms.Padding(3);
    150       this.chartTabPage.Size = new System.Drawing.Size(622, 226);
     153      this.chartTabPage.Size = new System.Drawing.Size(466, 291);
    151154      this.chartTabPage.TabIndex = 1;
    152155      this.chartTabPage.Text = "Chart";
     
    159162      this.dataRowVisualPropertiesControl.Location = new System.Drawing.Point(0, 0);
    160163      this.dataRowVisualPropertiesControl.Name = "dataRowVisualPropertiesControl";
    161       this.dataRowVisualPropertiesControl.Size = new System.Drawing.Size(487, 220);
     164      this.dataRowVisualPropertiesControl.Size = new System.Drawing.Size(331, 285);
    162165      this.dataRowVisualPropertiesControl.TabIndex = 0;
     166      //
     167      // dataTableVisualPropertiesControl
     168      //
     169      this.dataTableVisualPropertiesControl.Dock = System.Windows.Forms.DockStyle.Fill;
     170      this.dataTableVisualPropertiesControl.Location = new System.Drawing.Point(3, 3);
     171      this.dataTableVisualPropertiesControl.Name = "dataTableVisualPropertiesControl";
     172      this.dataTableVisualPropertiesControl.Size = new System.Drawing.Size(460, 285);
     173      this.dataTableVisualPropertiesControl.TabIndex = 0;
    163174      //
    164175      // DataTableVisualPropertiesDialog
     
    168179      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    169180      this.CancelButton = this.cancelButton;
    170       this.ClientSize = new System.Drawing.Size(631, 294);
     181      this.ClientSize = new System.Drawing.Size(475, 359);
    171182      this.Controls.Add(this.tabControl);
    172183      this.Controls.Add(this.cancelButton);
    173184      this.Controls.Add(this.okButton);
    174185      this.Name = "DataTableVisualPropertiesDialog";
    175       this.Text = "DataTableVisualPropertiesDialog";
     186      this.Text = "Customize Visual Properties";
    176187      this.tabControl.ResumeLayout(false);
    177188      this.seriesTabPage.ResumeLayout(false);
     
    180191      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
    181192      this.splitContainer.ResumeLayout(false);
     193      this.chartTabPage.ResumeLayout(false);
    182194      this.ResumeLayout(false);
    183195
     
    194206    private System.Windows.Forms.TabPage chartTabPage;
    195207    private DataRowVisualPropertiesControl dataRowVisualPropertiesControl;
     208    private DataTableVisualPropertiesControl dataTableVisualPropertiesControl;
    196209  }
    197210}
  • branches/histogram/HeuristicLab.Analysis.Views/3.3/DataTableVisualPropertiesDialog.cs

    r6011 r6012  
    4141      seriesListView.SmallImageList.Images.Add(VSImageLibrary.Graph);
    4242      FillSeriesListView();
     43      dataTableVisualPropertiesControl.Content = Content.VisualProperties;
    4344    }
    4445
  • branches/histogram/HeuristicLab.Analysis.Views/3.3/HeuristicLab.Analysis.Views-3.3.csproj

    r6010 r6012  
    136136      <DependentUpon>DataRowVisualPropertiesControl.cs</DependentUpon>
    137137    </Compile>
     138    <Compile Include="DataTableVisualPropertiesControl.cs">
     139      <SubType>UserControl</SubType>
     140    </Compile>
     141    <Compile Include="DataTableVisualPropertiesControl.Designer.cs">
     142      <DependentUpon>DataTableVisualPropertiesControl.cs</DependentUpon>
     143    </Compile>
    138144    <Compile Include="DataTableVisualPropertiesDialog.cs">
    139145      <SubType>Form</SubType>
     
    273279    <EmbeddedResource Include="DataTableView.resx">
    274280      <DependentUpon>DataTableView.cs</DependentUpon>
     281    </EmbeddedResource>
     282    <EmbeddedResource Include="DataTableVisualPropertiesControl.resx">
     283      <DependentUpon>DataTableVisualPropertiesControl.cs</DependentUpon>
    275284    </EmbeddedResource>
    276285    <EmbeddedResource Include="DataTableVisualPropertiesDialog.resx">
  • branches/histogram/HeuristicLab.Analysis/3.3/DataVisualization/DataRowVisualProperties.cs

    r6011 r6012  
    4040    }
    4141    #endregion
     42    #region LineStyle
     43    public enum DataRowLineStyle {
     44      Dash,
     45      DashDot,
     46      DashDotDot,
     47      Dot,
     48      NotSet,
     49      Solid
     50    }
     51    #endregion
    4252
    4353    private DataRowChartType chartType;
     
    8191      }
    8292    }
     93    private DataRowLineStyle lineStyle;
     94    public DataRowLineStyle LineStyle {
     95      get { return lineStyle; }
     96      set {
     97        if (lineStyle != value) {
     98          lineStyle = value;
     99          OnPropertyChanged("LineStyle");
     100        }
     101      }
     102    }
    83103    private bool startIndexZero;
    84104    public bool StartIndexZero {
     
    88108          startIndexZero = value;
    89109          OnPropertyChanged("StartIndexZero");
     110        }
     111      }
     112    }
     113    private int lineWidth;
     114    public int LineWidth {
     115      get { return lineWidth; }
     116      set {
     117        if (lineWidth != value) {
     118          lineWidth = value;
     119          OnPropertyChanged("LineWidth");
    90120        }
    91121      }
     
    133163      set { color = value; }
    134164    }
     165    [Storable(Name = "LineStyle")]
     166    private DataRowLineStyle StorableLineStyle {
     167      get { return lineStyle; }
     168      set { lineStyle = value; }
     169    }
    135170    [Storable(Name = "StartIndexZero")]
    136171    private bool StorableStartIndexZero {
    137172      get { return startIndexZero; }
    138173      set { startIndexZero = value; }
     174    }
     175    [Storable(Name = "LineWidth")]
     176    private int StorableLineWidth {
     177      get { return lineWidth; }
     178      set { lineWidth = value; }
    139179    }
    140180    [Storable(Name = "Bins")]
     
    158198      this.secondXAxis = original.secondXAxis;
    159199      this.color = original.color;
     200      this.lineStyle = original.lineStyle;
    160201      this.startIndexZero = original.startIndexZero;
     202      this.lineWidth = original.lineWidth;
    161203      this.bins = original.bins;
    162204      this.exactBins = original.exactBins;
     
    167209      secondXAxis = false;
    168210      color = Color.Empty;
     211      lineStyle = DataRowLineStyle.Solid;
    169212      startIndexZero = false;
     213      lineWidth = 1;
    170214      bins = 10;
    171215      exactBins = false;
  • branches/histogram/HeuristicLab.Analysis/3.3/DataVisualization/DataTableVisualProperties.cs

    r5445 r6012  
    5454    }
    5555
     56    private string secondXAxisTitle;
     57    public string SecondXAxisTitle {
     58      get { return secondXAxisTitle; }
     59      set {
     60        if (value == null) value = string.Empty;
     61        if (secondXAxisTitle != value) {
     62          secondXAxisTitle = value;
     63          OnPropertyChanged("SecondXAxisTitle");
     64        }
     65      }
     66    }
     67
    5668    private string secondYAxisTitle;
    5769    public string SecondYAxisTitle {
     
    7789      set { yAxisTitle = value; }
    7890    }
     91    [Storable(Name = "SecondXAxisTitle")]
     92    private string StorableSecondXAxisTitle {
     93      get { return secondXAxisTitle; }
     94      set { secondXAxisTitle = value; }
     95    }
    7996    [Storable(Name = "SecondYAxisTitle")]
    8097    private string StorableSecondYAxisTitle {
     
    90107      this.xAxisTitle = original.xAxisTitle;
    91108      this.yAxisTitle = original.yAxisTitle;
     109      this.secondXAxisTitle = original.secondXAxisTitle;
    92110      this.secondYAxisTitle = original.secondYAxisTitle;
    93111    }
     
    95113      this.xAxisTitle = string.Empty;
    96114      this.yAxisTitle = string.Empty;
     115      this.secondXAxisTitle = string.Empty;
    97116      this.secondYAxisTitle = string.Empty;
    98117    }
Note: See TracChangeset for help on using the changeset viewer.