Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/05/14 17:36:03 (10 years ago)
Author:
mkommend
Message:

#1998: Updated classification model comparison branch with trunk changes (remaining changes).

Location:
branches/ClassificationModelComparison/HeuristicLab.Problems.DataAnalysis.Views
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/ClassificationModelComparison/HeuristicLab.Problems.DataAnalysis.Views

  • branches/ClassificationModelComparison/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/DataAnalysisSolutionView.cs

    r8798 r10556  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    3030using HeuristicLab.Optimization;
    3131using HeuristicLab.Optimization.Views;
     32using HeuristicLab.Persistence.Default.Xml;
     33using HeuristicLab.PluginInfrastructure;
    3234
    3335namespace HeuristicLab.Problems.DataAnalysis.Views {
     36
    3437  [View("DataAnalysisSolution View")]
    3538  [Content(typeof(DataAnalysisSolution), false)]
     
    4952      addButton.Enabled = false;
    5053      removeButton.Enabled = false;
     54      loadProblemDataButton.Enabled = Content != null && !Locked;
    5155    }
    5256
     
    119123    }
    120124
     125    protected virtual void loadProblemDataButton_Click(object sender, EventArgs e) {
     126      if (loadProblemDataFileDialog.ShowDialog(this) != DialogResult.OK) return;
     127      try {
     128        object hlFile = XmlParser.Deserialize(loadProblemDataFileDialog.FileName);
     129
     130        IDataAnalysisProblemData problemData = null;
     131        if (hlFile is IDataAnalysisProblemData) {
     132          problemData = (IDataAnalysisProblemData)hlFile;
     133        } else if (hlFile is IDataAnalysisProblem) {
     134          problemData = ((IDataAnalysisProblem)hlFile).ProblemData;
     135        } else if (hlFile is IDataAnalysisSolution) {
     136          problemData = ((IDataAnalysisSolution)hlFile).ProblemData;
     137        }
     138
     139        if (problemData == null)
     140          throw new InvalidOperationException("The chosen HeuristicLab file does not contain a ProblemData, Problem, or DataAnalysisSolution.");
     141
     142        var solution = (IDataAnalysisSolution)Content.Clone();
     143        problemData.AdjustProblemDataProperties(solution.ProblemData);
     144        solution.ProblemData = problemData;
     145        if (!solution.Name.EndsWith(" with loaded problemData"))
     146          solution.Name += " with loaded problemData";
     147        MainFormManager.MainForm.ShowContent(solution);
     148      }
     149      catch (InvalidOperationException invalidOperationException) {
     150        ErrorHandling.ShowErrorDialog(this, invalidOperationException);
     151      }
     152      catch (ArgumentException argumentException) {
     153        ErrorHandling.ShowErrorDialog(this, argumentException);
     154      }
     155    }
     156
    121157    protected void AddViewListViewItem(Type viewType, Image image) {
    122158      ListViewItem listViewItem = new ListViewItem();
     
    165201      validDragOperation = false;
    166202      if (ReadOnly) return;
     203      if (e.Effect != DragDropEffects.Copy) return;
    167204
    168205      var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat);
    169       if (dropData is DataAnalysisProblemData) validDragOperation = true;
     206      if (dropData is IDataAnalysisProblemData) validDragOperation = true;
     207      else if (dropData is IDataAnalysisProblem) validDragOperation = true;
    170208      else if (dropData is IValueParameter) {
    171209        var param = (IValueParameter)dropData;
    172         if (param.Value is DataAnalysisProblemData) validDragOperation = true;
     210        if (param.Value is IDataAnalysisProblemData) validDragOperation = true;
    173211      }
    174212    }
    175213
    176214    protected override void itemsListView_DragDrop(object sender, DragEventArgs e) {
    177       if (e.Effect != DragDropEffects.None) {
    178         var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat);
    179         if (dropData is DataAnalysisProblemData) {
    180           DataAnalysisProblemData problemData = (DataAnalysisProblemData)dropData;
    181           Content.ProblemData = (DataAnalysisProblemData)problemData.Clone();
    182         } else if (dropData is IValueParameter) {
    183           var param = (IValueParameter)dropData;
    184           DataAnalysisProblemData problemData = param.Value as DataAnalysisProblemData;
    185           if (problemData != null)
    186             Content.ProblemData = (DataAnalysisProblemData)problemData.Clone();
    187         }
     215      if (e.Effect == DragDropEffects.None) return;
     216
     217      IDataAnalysisProblemData problemData = null;
     218      var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat);
     219      if (dropData is IDataAnalysisProblemData)
     220        problemData = (IDataAnalysisProblemData)dropData;
     221      else if (dropData is IDataAnalysisProblem)
     222        problemData = ((IDataAnalysisProblem)dropData).ProblemData;
     223      else if (dropData is IValueParameter) {
     224        var param = (IValueParameter)dropData;
     225        problemData = param.Value as DataAnalysisProblemData;
     226      }
     227      if (problemData == null) return;
     228
     229      try {
     230        problemData.AdjustProblemDataProperties(Content.ProblemData);
     231        Content.ProblemData = problemData;
     232
     233        if (!Content.Name.EndsWith(" with changed problemData"))
     234          Content.Name += " with changed problemData";
     235      }
     236      catch (InvalidOperationException invalidOperationException) {
     237        ErrorHandling.ShowErrorDialog(this, invalidOperationException);
     238      }
     239      catch (ArgumentException argumentException) {
     240        ErrorHandling.ShowErrorDialog(this, argumentException);
    188241      }
    189242    }
    190243    #endregion
     244
    191245  }
    192246}
Note: See TracChangeset for help on using the changeset viewer.