Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/15/13 16:11:27 (11 years ago)
Author:
jkarder
Message:

#2116: added prototype of a breadcrumb navigation

Location:
branches/Breadcrumbs/HeuristicLab.Core.Views/3.3
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/Breadcrumbs/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs

    r9755 r10042  
    140140        try {
    141141          return (T)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType();
    142         }
    143         catch (Exception ex) {
     142        } catch (Exception ex) {
    144143          ErrorHandling.ShowErrorDialog(this, ex);
    145144        }
     
    246245    protected virtual void itemsListView_DoubleClick(object sender, EventArgs e) {
    247246      if (itemsListView.SelectedItems.Count == 1) {
    248         T item = itemsListView.SelectedItems[0].Tag as T;
     247        var item = itemsListView.SelectedItems[0].Tag as T;
    249248        if (item != null) {
    250           IContentView view = MainFormManager.MainForm.ShowContent(item);
    251           if (view != null) {
    252             view.ReadOnly = ReadOnly;
    253             view.Locked = Locked;
     249          ViewHost outmostViewHost = null;
     250          for (var control = Parent; control != null; control = control.Parent) {
     251            var vh = control as ViewHost;
     252            if (vh != null) outmostViewHost = vh;
     253          }
     254          if (outmostViewHost != null) {
     255            var oldCrumbs = outmostViewHost.Breadcrumbs;
     256            var newCrumbs = BuildBreadcrumbTrail();
     257            outmostViewHost.Content = null;
     258            var viewType = MainFormManager.GetDefaultViewType(item.GetType());
     259            outmostViewHost.ViewType = viewType;
     260            outmostViewHost.Content = item;
     261            outmostViewHost.UpdateBreadcrumbTrail(oldCrumbs, newCrumbs.Concat(new[] { item }));
     262            outmostViewHost.ActiveView.ReadOnly = ReadOnly;
     263            outmostViewHost.ActiveView.Locked = Locked;
    254264          }
    255265        }
     
    440450      }
    441451    }
     452    protected virtual IEnumerable<IContent> BuildBreadcrumbTrail() {
     453      var l = new LinkedList<IContent>();
     454      for (var control = (Control)this; control != null; control = control.Parent) {
     455        var vh = control as ViewHost;
     456        if (vh != null && vh.Content != null)
     457          l.AddFirst(vh.Content);
     458      }
     459      return l;
     460    }
    442461    #endregion
    443462  }
  • branches/Breadcrumbs/HeuristicLab.Core.Views/3.3/ItemListView.cs

    r9755 r10042  
    146146        try {
    147147          return (T)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType();
    148         }
    149         catch (Exception ex) {
     148        } catch (Exception ex) {
    150149          ErrorHandling.ShowErrorDialog(this, ex);
    151150        }
     
    267266    protected virtual void itemsListView_DoubleClick(object sender, EventArgs e) {
    268267      if (itemsListView.SelectedItems.Count == 1) {
    269         T item = itemsListView.SelectedItems[0].Tag as T;
     268        var item = itemsListView.SelectedItems[0].Tag as T;
    270269        if (item != null) {
    271           IContentView view = MainFormManager.MainForm.ShowContent(item);
    272           if (view != null) {
    273             view.ReadOnly = ReadOnly;
    274             view.Locked = Locked;
     270          ViewHost outmostViewHost = null;
     271          for (var control = Parent; control != null; control = control.Parent) {
     272            var vh = control as ViewHost;
     273            if (vh != null) outmostViewHost = vh;
     274          }
     275          if (outmostViewHost != null) {
     276            var oldCrumbs = outmostViewHost.Breadcrumbs;
     277            var newCrumbs = BuildBreadcrumbTrail();
     278            outmostViewHost.Content = null;
     279            var viewType = MainFormManager.GetDefaultViewType(item.GetType());
     280            outmostViewHost.ViewType = viewType;
     281            outmostViewHost.Content = item;
     282            outmostViewHost.UpdateBreadcrumbTrail(oldCrumbs, newCrumbs.Concat(new[] { item }));
     283            outmostViewHost.ActiveView.ReadOnly = ReadOnly;
     284            outmostViewHost.ActiveView.Locked = Locked;
    275285          }
    276286        }
     
    506516      }
    507517    }
     518    protected virtual IEnumerable<IContent> BuildBreadcrumbTrail() {
     519      var l = new LinkedList<IContent>();
     520      for (var control = (Control)this; control != null; control = control.Parent) {
     521        var vh = control as ViewHost;
     522        if (vh != null && vh.Content != null)
     523          l.AddFirst(vh.Content);
     524      }
     525      return l;
     526    }
    508527    #endregion
    509528  }
  • branches/Breadcrumbs/HeuristicLab.Core.Views/3.3/ParameterCollectionView.cs

    r9456 r10042  
    2727using HeuristicLab.Collections;
    2828using HeuristicLab.MainForm;
     29using HeuristicLab.MainForm.WindowsForms;
    2930
    3031namespace HeuristicLab.Core.Views {
     
    152153    protected override void itemsListView_DoubleClick(object sender, EventArgs e) {
    153154      if (itemsListView.SelectedItems.Count == 1) {
    154         IParameter item = itemsListView.SelectedItems[0].Tag as IParameter;
     155        var item = itemsListView.SelectedItems[0].Tag as IParameter;
    155156        if (item != null) {
    156           IContentView view = MainFormManager.MainForm.ShowContent(item);
    157           if (view != null) {
    158             view.ReadOnly = ReadOnly || (item.Hidden && !AllowEditingOfHiddenParameters);
    159             view.Locked = Locked;
     157          ViewHost outmostViewHost = null;
     158          for (var control = Parent; control != null; control = control.Parent) {
     159            var vh = control as ViewHost;
     160            if (vh != null) outmostViewHost = vh;
     161          }
     162          if (outmostViewHost != null) {
     163            var oldCrumbs = outmostViewHost.Breadcrumbs;
     164            var newCrumbs = BuildBreadcrumbTrail();
     165            outmostViewHost.Content = null;
     166            var viewType = MainFormManager.GetDefaultViewType(item.GetType());
     167            outmostViewHost.ViewType = viewType;
     168            outmostViewHost.Content = item;
     169            outmostViewHost.UpdateBreadcrumbTrail(oldCrumbs, newCrumbs.Concat(new[] { item }));
     170            outmostViewHost.ActiveView.ReadOnly = ReadOnly;
     171            outmostViewHost.ActiveView.Locked = Locked;
    160172          }
    161173        }
Note: See TracChangeset for help on using the changeset viewer.