Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/16/10 01:49:10 (14 years ago)
Author:
swagner
Message:

Adapted views of HeuristicLab.Core.Views according the new read-only property and renamed method SetEnableStateOfControls into SetEnabledStateOfControls (#973).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs

    r3341 r3362  
    8888      Caption = "Item Array";
    8989      while (itemsListView.Items.Count > 0) RemoveListViewItem(itemsListView.Items[0]);
    90       itemsListView.Enabled = false;
    91       detailsGroupBox.Enabled = false;
    9290      viewHost.Content = null;
    93       moveUpButton.Enabled = false;
    94       moveDownButton.Enabled = false;
    95 
    9691      if (Content != null) {
    9792        Caption += " (" + Content.GetType().Name + ")";
    98         itemsListView.Enabled = true;
    9993        foreach (T item in Content)
    10094          AddListViewItem(CreateListViewItem(item));
     95      }
     96      SetEnabledStateOfControls();
     97    }
     98
     99    protected override void OnReadOnlyChanged() {
     100      base.OnReadOnlyChanged();
     101      SetEnabledStateOfControls();
     102    }
     103
     104    private void SetEnabledStateOfControls() {
     105      if (Content == null) {
     106        addButton.Enabled = false;
     107        moveUpButton.Enabled = false;
     108        moveDownButton.Enabled = false;
     109        removeButton.Enabled = false;
     110        itemsListView.Enabled = false;
     111        detailsGroupBox.Enabled = false;
     112      } else {
     113        addButton.Enabled = itemsListView.SelectedItems.Count > 0 &&
     114                            !Content.IsReadOnly && !ReadOnly;
     115        moveUpButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
     116                               itemsListView.SelectedIndices[0] != 0 &&
     117                               !Content.IsReadOnly && !ReadOnly;
     118        moveDownButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
     119                                 itemsListView.SelectedIndices[0] != itemsListView.Items.Count - 1 &&
     120                                 !Content.IsReadOnly && !ReadOnly;
     121        removeButton.Enabled = itemsListView.SelectedItems.Count > 0 &&
     122                               !Content.IsReadOnly && !ReadOnly;
     123        itemsListView.Enabled = true;
     124        detailsGroupBox.Enabled = true;
     125        viewHost.ReadOnly = ReadOnly;
    101126      }
    102127    }
     
    126151        ((T)listViewItem.Tag).ToStringChanged += new EventHandler(Item_ToStringChanged);
    127152      }
     153      AdjustListViewColumnSizes();
    128154    }
    129155    protected virtual void InsertListViewItem(int index, ListViewItem listViewItem) {
     
    133159        ((T)listViewItem.Tag).ToStringChanged += new EventHandler(Item_ToStringChanged);
    134160      }
     161      AdjustListViewColumnSizes();
    135162    }
    136163    protected virtual void RemoveListViewItem(ListViewItem listViewItem) {
     
    157184    }
    158185
     186    #region ListView Events
    159187    protected virtual void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
    160       addButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly;
     188      addButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly && !ReadOnly;
    161189      moveUpButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
    162190                             itemsListView.SelectedIndices[0] != 0 &&
    163                              !Content.IsReadOnly;
     191                             !Content.IsReadOnly && !ReadOnly;
    164192      moveDownButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
    165193                               itemsListView.SelectedIndices[0] != itemsListView.Items.Count - 1 &&
    166                                !Content.IsReadOnly;
    167       removeButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly;
     194                               !Content.IsReadOnly && !ReadOnly;
     195      removeButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly && !ReadOnly;
    168196
    169197      if (itemsListView.SelectedItems.Count == 1) {
     
    178206    }
    179207
    180     #region ListView Events
    181     protected virtual void itemsListView_SizeChanged(object sender, EventArgs e) {
    182       if (itemsListView.Columns.Count > 0)
    183         itemsListView.Columns[0].Width = Math.Max(0, itemsListView.Width - 25);
    184     }
    185 
    186208    protected virtual void itemsListView_KeyDown(object sender, KeyEventArgs e) {
    187209      if (e.KeyCode == Keys.Delete) {
    188         if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly) {
     210        if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) {
    189211          foreach (ListViewItem item in itemsListView.SelectedItems)
    190212            Content[item.Index] = null;
     
    197219        T item = itemsListView.SelectedItems[0].Tag as T;
    198220        if (item != null) {
    199           IView view = MainFormManager.CreateDefaultView(item);
     221          IView view = MainFormManager.CreateDefaultView(item, ReadOnly);
    200222          if (view != null) view.Show();
    201223        }
     
    210232        data.SetData("Type", item.GetType());
    211233        data.SetData("Value", item);
    212         if (Content.IsReadOnly) {
     234        if (Content.IsReadOnly || ReadOnly) {
    213235          DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
    214236        } else {
     
    222244      e.Effect = DragDropEffects.None;
    223245      Type type = e.Data.GetData("Type") as Type;
    224       if ((!Content.IsReadOnly) && (type != null) && (typeof(T).IsAssignableFrom(type))) {
     246      if (!Content.IsReadOnly && !ReadOnly && (type != null) && (typeof(T).IsAssignableFrom(type))) {
    225247        Point p = itemsListView.PointToClient(new Point(e.X, e.Y));
    226248        ListViewItem listViewItem = itemsListView.GetItemAt(p.X, p.Y);
     
    354376            UpdateListViewItemText(listViewItem);
    355377        }
     378        AdjustListViewColumnSizes();
     379      }
     380    }
     381    #endregion
     382
     383    #region Helpers
     384    protected virtual void AdjustListViewColumnSizes() {
     385      if (itemsListView.Items.Count > 0) {
     386        for (int i = 0; i < itemsListView.Columns.Count; i++)
     387          itemsListView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
    356388      }
    357389    }
Note: See TracChangeset for help on using the changeset viewer.