Changeset 3362


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

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

Location:
trunk/sources
Files:
27 edited

Legend:

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

    r3341 r3362  
    7171    protected override void OnInitialized(EventArgs e) {
    7272      base.OnInitialized(e);
     73      SetEnabledStateOfControls();
    7374      Enabled = false;
    7475      infoLabel.Text = "Loading ...";
     
    7778      ThreadPool.QueueUserWorkItem(new WaitCallback(LoadItems));
    7879    }
     80    protected override void OnReadOnlyChanged() {
     81      base.OnReadOnlyChanged();
     82      SetEnabledStateOfControls();
     83    }
    7984    protected override void OnClosing(FormClosingEventArgs e) {
    8085      base.OnClosing(e);
     
    8388        this.Hide();
    8489      }
     90    }
     91
     92    private void SetEnabledStateOfControls() {
     93      addButton.Enabled = !ReadOnly;
     94      removeButton.Enabled = !ReadOnly && listView.SelectedItems.Count > 0;
     95      saveButton.Enabled = !ReadOnly;
    8596    }
    8697
     
    207218    #region ListView Events
    208219    private void listView_SelectedIndexChanged(object sender, EventArgs e) {
    209       removeButton.Enabled = listView.SelectedItems.Count > 0;
     220      removeButton.Enabled = !ReadOnly && listView.SelectedItems.Count > 0;
    210221    }
    211222    private void listView_KeyDown(object sender, KeyEventArgs e) {
    212223      if (e.KeyCode == Keys.Delete) {
    213         if (listView.SelectedItems.Count > 0) {
     224        if (!ReadOnly && (listView.SelectedItems.Count > 0)) {
    214225          foreach (ListViewItem item in listView.SelectedItems)
    215226            RemoveItem((T)item.Tag);
     
    220231      if (listView.SelectedItems.Count == 1) {
    221232        T item = (T)listView.SelectedItems[0].Tag;
    222         IView view = MainFormManager.CreateDefaultView(item);
     233        IView view = MainFormManager.CreateDefaultView(item, ReadOnly);
    223234        if (view != null) view.Show();
    224235      }
     
    230241      data.SetData("Type", item.GetType());
    231242      data.SetData("Value", item);
    232       DragDropEffects result = DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link | DragDropEffects.Move);
    233       if ((result & DragDropEffects.Move) == DragDropEffects.Move)
    234         RemoveItem(item);
     243      if (ReadOnly) {
     244        DragDropEffects result = DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
     245      } else {
     246        DragDropEffects result = DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link | DragDropEffects.Move);
     247        if ((result & DragDropEffects.Move) == DragDropEffects.Move)
     248          RemoveItem(item);
     249      }
    235250    }
    236251    private void listView_DragEnterOver(object sender, DragEventArgs e) {
     
    238253      Type type = e.Data.GetData("Type") as Type;
    239254      T item = e.Data.GetData("Value") as T;
    240       if ((type != null) && (item != null)) {
     255      if (!ReadOnly && (type != null) && (item != null)) {
    241256        if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
    242257        else if (((e.KeyState & 4) == 4) && !itemListViewItemTable.ContainsKey(item)) e.Effect = DragDropEffects.Move;  // SHIFT key
  • trunk/sources/HeuristicLab.Core.Views/3.3/EngineView.cs

    r3289 r3362  
    7777      if (Content == null) {
    7878        logView.Content = null;
     79        executionTimeTextBox.Text = "-";
     80      } else {
     81        logView.Content = Content.Log;
     82        executionTimeTextBox.Text = Content.ExecutionTime.ToString();
     83      }
     84      SetEnabledStateOfControls();
     85    }
     86
     87    protected override void OnReadOnlyChanged() {
     88      base.OnReadOnlyChanged();
     89      SetEnabledStateOfControls();
     90    }
     91
     92    private void SetEnabledStateOfControls() {
     93      if (Content == null) {
    7994        logView.Enabled = false;
    80         executionTimeTextBox.Text = "-";
    8195        executionTimeTextBox.Enabled = false;
    8296      } else {
    83         logView.Content = Content.Log;
     97        logView.ReadOnly = ReadOnly;
    8498        logView.Enabled = true;
    85         executionTimeTextBox.Text = Content.ExecutionTime.ToString();
    8699        executionTimeTextBox.Enabled = true;
    87100      }
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.Designer.cs

    r3351 r3362  
    138138      this.itemsListView.View = System.Windows.Forms.View.Details;
    139139      this.itemsListView.SelectedIndexChanged += new System.EventHandler(this.itemsListView_SelectedIndexChanged);
    140       this.itemsListView.SizeChanged += new System.EventHandler(this.itemsListView_SizeChanged);
    141140      this.itemsListView.DoubleClick += new System.EventHandler(this.itemsListView_DoubleClick);
    142141      this.itemsListView.DragDrop += new System.Windows.Forms.DragEventHandler(this.itemsListView_DragDrop);
  • 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    }
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.Designer.cs

    r3351 r3362  
    115115      this.itemsListView.View = System.Windows.Forms.View.Details;
    116116      this.itemsListView.SelectedIndexChanged += new System.EventHandler(this.itemsListView_SelectedIndexChanged);
    117       this.itemsListView.SizeChanged += new System.EventHandler(this.itemsListView_SizeChanged);
    118117      this.itemsListView.DoubleClick += new System.EventHandler(this.itemsListView_DoubleClick);
    119118      this.itemsListView.DragDrop += new System.Windows.Forms.DragEventHandler(this.itemsListView_DragDrop);
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs

    r3350 r3362  
    4646      Caption = "Item Collection";
    4747    }
    48 
    4948    public ItemCollectionView(IObservableCollection<T> content)
    5049      : this() {
     
    7675        SortItemsListView(SortOrder.Ascending);
    7776      }
    78       SetEnableStateOfControls();
     77      SetEnabledStateOfControls();
    7978    }
    8079
    8180    protected override void OnReadOnlyChanged() {
    8281      base.OnReadOnlyChanged();
    83       SetEnableStateOfControls();
    84     }
    85     private void SetEnableStateOfControls() {
     82      SetEnabledStateOfControls();
     83    }
     84
     85    private void SetEnabledStateOfControls() {
    8686      if (Content == null) {
     87        addButton.Enabled = false;
     88        sortAscendingButton.Enabled = false;
     89        sortDescendingButton.Enabled = false;
     90        removeButton.Enabled = false;
    8791        itemsListView.Enabled = false;
    8892        detailsGroupBox.Enabled = false;
    89         sortAscendingButton.Enabled = itemsListView.Items.Count > 0;
    90         sortDescendingButton.Enabled = itemsListView.Items.Count > 0;
    91         viewHost.Enabled = false;
    92         addButton.Enabled = false;
    93         removeButton.Enabled = false;
    9493      } else {
     94        addButton.Enabled = !Content.IsReadOnly && !ReadOnly;
     95        sortAscendingButton.Enabled = itemsListView.Items.Count > 1;
     96        sortDescendingButton.Enabled = itemsListView.Items.Count > 1;
     97        removeButton.Enabled = !Content.IsReadOnly && !ReadOnly && itemsListView.SelectedItems.Count > 0;
    9598        itemsListView.Enabled = true;
    9699        detailsGroupBox.Enabled = true;
    97         sortAscendingButton.Enabled = true;
    98         sortDescendingButton.Enabled = true;
    99         viewHost.Enabled = true;
    100100        viewHost.ReadOnly = ReadOnly;
    101         addButton.Enabled = !ReadOnly;
    102         removeButton.Enabled = !ReadOnly;
    103101      }
    104102    }
     
    125123      ((T)listViewItem.Tag).ItemImageChanged += new EventHandler(Item_ItemImageChanged);
    126124      ((T)listViewItem.Tag).ToStringChanged += new EventHandler(Item_ToStringChanged);
    127       sortAscendingButton.Enabled = itemsListView.Items.Count > 0;
    128       sortDescendingButton.Enabled = itemsListView.Items.Count > 0;
     125      AdjustListViewColumnSizes();
     126      sortAscendingButton.Enabled = itemsListView.Items.Count > 1;
     127      sortDescendingButton.Enabled = itemsListView.Items.Count > 1;
    129128    }
    130129    protected virtual void RemoveListViewItem(ListViewItem listViewItem) {
     
    135134        if (other.ImageIndex > listViewItem.ImageIndex) other.ImageIndex--;
    136135      itemsListView.SmallImageList.Images.RemoveAt(listViewItem.ImageIndex);
    137       sortAscendingButton.Enabled = itemsListView.Items.Count > 0;
    138       sortDescendingButton.Enabled = itemsListView.Items.Count > 0;
     136      sortAscendingButton.Enabled = itemsListView.Items.Count > 1;
     137      sortDescendingButton.Enabled = itemsListView.Items.Count > 1;
    139138    }
    140139    protected virtual void UpdateListViewItemImage(ListViewItem listViewItem) {
     
    157156    #region ListView Events
    158157    protected virtual void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
    159       removeButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly;
     158      removeButton.Enabled = !Content.IsReadOnly && !ReadOnly && itemsListView.SelectedItems.Count > 0;
    160159      if (itemsListView.SelectedItems.Count == 1) {
    161160        T item = (T)itemsListView.SelectedItems[0].Tag;
     
    168167      }
    169168    }
    170     protected virtual void itemsListView_SizeChanged(object sender, EventArgs e) {
    171       if (itemsListView.Columns.Count > 0)
    172         itemsListView.Columns[0].Width = Math.Max(0, itemsListView.Width - 25);
    173     }
    174169    protected virtual void itemsListView_KeyDown(object sender, KeyEventArgs e) {
    175170      if (e.KeyCode == Keys.Delete) {
    176         if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly) {
     171        if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) {
    177172          foreach (ListViewItem item in itemsListView.SelectedItems)
    178173            Content.Remove((T)item.Tag);
     
    183178      if (itemsListView.SelectedItems.Count == 1) {
    184179        T item = (T)itemsListView.SelectedItems[0].Tag;
    185         IView view = MainFormManager.CreateDefaultView(item);
     180        IView view = MainFormManager.CreateDefaultView(item, ReadOnly);
    186181        if (view != null) view.Show();
    187182      }
     
    193188      data.SetData("Type", item.GetType());
    194189      data.SetData("Value", item);
    195       if (Content.IsReadOnly) {
     190      if (Content.IsReadOnly || ReadOnly) {
    196191        DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
    197192      } else {
     
    204199      e.Effect = DragDropEffects.None;
    205200      Type type = e.Data.GetData("Type") as Type;
    206       if ((!Content.IsReadOnly) && (type != null) && (typeof(T).IsAssignableFrom(type))) {
     201      if (!Content.IsReadOnly && !ReadOnly && (type != null) && (typeof(T).IsAssignableFrom(type))) {
    207202        if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
    208203        else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
     
    295290        foreach (ListViewItem listViewItem in GetListViewItemsForItem(item))
    296291          UpdateListViewItemText(listViewItem);
     292        AdjustListViewColumnSizes();
    297293      }
    298294    }
     
    305301      itemsListView.Sorting = SortOrder.None;
    306302    }
     303    protected virtual void AdjustListViewColumnSizes() {
     304      if (itemsListView.Items.Count > 0) {
     305        for (int i = 0; i < itemsListView.Columns.Count; i++)
     306          itemsListView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
     307      }
     308    }
    307309    #endregion
    308310  }
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.Designer.cs

    r3351 r3362  
    149149      this.itemsListView.View = System.Windows.Forms.View.Details;
    150150      this.itemsListView.SelectedIndexChanged += new System.EventHandler(this.itemsListView_SelectedIndexChanged);
    151       this.itemsListView.SizeChanged += new System.EventHandler(this.itemsListView_SizeChanged);
    152151      this.itemsListView.DoubleClick += new System.EventHandler(this.itemsListView_DoubleClick);
    153152      this.itemsListView.DragDrop += new System.Windows.Forms.DragEventHandler(this.itemsListView_DragDrop);
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs

    r3341 r3362  
    9292      Caption = "Item List";
    9393      while (itemsListView.Items.Count > 0) RemoveListViewItem(itemsListView.Items[0]);
    94       itemsListView.Enabled = false;
    95       detailsGroupBox.Enabled = false;
    9694      viewHost.Content = null;
    97       addButton.Enabled = false;
    98       moveUpButton.Enabled = false;
    99       moveDownButton.Enabled = false;
    100       removeButton.Enabled = false;
    101 
    10295      if (Content != null) {
    10396        Caption += " (" + Content.GetType().Name + ")";
    104         itemsListView.Enabled = true;
    105         addButton.Enabled = !Content.IsReadOnly;
    10697        foreach (T item in Content)
    10798          AddListViewItem(CreateListViewItem(item));
     99      }
     100      SetEnabledStateOfControls();
     101    }
     102
     103    protected override void OnReadOnlyChanged() {
     104      base.OnReadOnlyChanged();
     105      SetEnabledStateOfControls();
     106    }
     107
     108    private void SetEnabledStateOfControls() {
     109      if (Content == null) {
     110        addButton.Enabled = false;
     111        moveUpButton.Enabled = false;
     112        moveDownButton.Enabled = false;
     113        removeButton.Enabled = false;
     114        itemsListView.Enabled = false;
     115        detailsGroupBox.Enabled = false;
     116      } else {
     117        addButton.Enabled = !Content.IsReadOnly && !ReadOnly;
     118        moveUpButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
     119                               itemsListView.SelectedIndices[0] != 0 &&
     120                               !Content.IsReadOnly && !ReadOnly;
     121        moveDownButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
     122                                 itemsListView.SelectedIndices[0] != itemsListView.Items.Count - 1 &&
     123                                 !Content.IsReadOnly && !ReadOnly;
     124        removeButton.Enabled = itemsListView.SelectedItems.Count > 0 &&
     125                               !Content.IsReadOnly && !ReadOnly;
     126        itemsListView.Enabled = true;
     127        detailsGroupBox.Enabled = true;
     128        viewHost.ReadOnly = ReadOnly;
    108129      }
    109130    }
     
    131152      ((T)listViewItem.Tag).ItemImageChanged += new EventHandler(Item_ItemImageChanged);
    132153      ((T)listViewItem.Tag).ToStringChanged += new EventHandler(Item_ToStringChanged);
     154      AdjustListViewColumnSizes();
    133155    }
    134156    protected virtual void InsertListViewItem(int index, ListViewItem listViewItem) {
     
    136158      ((T)listViewItem.Tag).ItemImageChanged += new EventHandler(Item_ItemImageChanged);
    137159      ((T)listViewItem.Tag).ToStringChanged += new EventHandler(Item_ToStringChanged);
     160      AdjustListViewColumnSizes();
    138161    }
    139162    protected virtual void RemoveListViewItem(ListViewItem listViewItem) {
     
    156179    }
    157180
     181    #region ListView Events
    158182    protected virtual void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
    159183      moveUpButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
    160184                             itemsListView.SelectedIndices[0] != 0 &&
    161                              !Content.IsReadOnly;
     185                             !Content.IsReadOnly && !ReadOnly;
    162186      moveDownButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
    163187                               itemsListView.SelectedIndices[0] != itemsListView.Items.Count - 1 &&
    164                                !Content.IsReadOnly;
     188                               !Content.IsReadOnly && !ReadOnly;
    165189      removeButton.Enabled = itemsListView.SelectedItems.Count > 0 &&
    166                              !Content.IsReadOnly;
     190                             !Content.IsReadOnly && !ReadOnly;
    167191
    168192      if (itemsListView.SelectedItems.Count == 1) {
     
    177201    }
    178202
    179     #region ListView Events
    180     protected virtual void itemsListView_SizeChanged(object sender, EventArgs e) {
    181       if (itemsListView.Columns.Count > 0)
    182         itemsListView.Columns[0].Width = Math.Max(0, itemsListView.Width - 25);
    183     }
    184 
    185203    protected virtual void itemsListView_KeyDown(object sender, KeyEventArgs e) {
    186204      if (e.KeyCode == Keys.Delete) {
    187         if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly) {
     205        if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) {
    188206          foreach (ListViewItem item in itemsListView.SelectedItems)
    189207            Content.RemoveAt(item.Index);
     
    195213      if (itemsListView.SelectedItems.Count == 1) {
    196214        T item = (T)itemsListView.SelectedItems[0].Tag;
    197         IView view = MainFormManager.CreateDefaultView(item);
     215        IView view = MainFormManager.CreateDefaultView(item, ReadOnly);
    198216        if (view != null) view.Show();
    199217      }
     
    206224      data.SetData("Type", item.GetType());
    207225      data.SetData("Value", item);
    208       if (Content.IsReadOnly) {
     226      if (Content.IsReadOnly || ReadOnly) {
    209227        DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
    210228      } else {
     
    217235      e.Effect = DragDropEffects.None;
    218236      Type type = e.Data.GetData("Type") as Type;
    219       if ((!Content.IsReadOnly) && (type != null) && (typeof(T).IsAssignableFrom(type))) {
     237      if (!Content.IsReadOnly && !ReadOnly && (type != null) && (typeof(T).IsAssignableFrom(type))) {
    220238        if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
    221239        else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
     
    360378            UpdateListViewItemText(listViewItem);
    361379        }
     380        AdjustListViewColumnSizes();
     381      }
     382    }
     383    #endregion
     384
     385    #region Helpers
     386    protected virtual void AdjustListViewColumnSizes() {
     387      if (itemsListView.Items.Count > 0) {
     388        for (int i = 0; i < itemsListView.Columns.Count; i++)
     389          itemsListView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
    362390      }
    363391    }
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemView.cs

    r3235 r3362  
    2929  /// Base class for all visual representations.
    3030  /// </summary>
    31   [View("Item View")]
    32   [Content(typeof(Item), false)]
    33   [Content(typeof(IItem), false)]
    3431  public partial class ItemView : AsynchronousContentView {
    3532    public new IItem Content {
  • trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemCollectionView.cs

    r3327 r3362  
    8181      return new ListViewItem[] { listViewItemDictionary[item] };
    8282    }
    83  
     83
    8484    #region ListView Events
    8585    protected override void itemsListView_DragEnterOver(object sender, DragEventArgs e) {
     
    102102            UpdateListViewItemText(listViewItem);
    103103        }
     104        AdjustListViewColumnSizes();
    104105      }
    105106    }
  • trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemView.cs

    r3350 r3362  
    7474        toolTip.SetToolTip(descriptionTextBox, Content.Description);
    7575      }
    76       SetEnableStateOfControls();
     76      SetEnabledStateOfControls();
    7777    }
    7878
    7979    protected override void OnReadOnlyChanged() {
    8080      base.OnReadOnlyChanged();
    81       SetEnableStateOfControls();
     81      SetEnabledStateOfControls();
    8282    }
    83     private void SetEnableStateOfControls() {
     83    private void SetEnabledStateOfControls() {
    8484      if (Content == null) {
    8585        nameTextBox.Enabled = false;
     
    137137
    138138    protected void descriptionTextBox_DoubleClick(object sender, EventArgs e) {
    139       using (TextDialog dialog = new TextDialog("Description of " + Content.Name, Content.Description, !Content.CanChangeDescription)) {
     139      using (TextDialog dialog = new TextDialog("Description of " + Content.Name, Content.Description, ReadOnly || !Content.CanChangeDescription)) {
    140140        if (dialog.ShowDialog(this) == DialogResult.OK)
    141141          Content.Description = dialog.Content;
  • trunk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.cs

    r3361 r3362  
    8787      Caption = "Operator Graph";
    8888      operatorsView.Content = null;
    89       operatorsView.Enabled = false;
    9089      operatorTreeView.Content = null;
    91       operatorTreeView.Enabled = false;
    92 
    9390      if (Content != null) {
    9491        Caption = Content.ItemName + " (" + Content.GetType().Name + ")";
    9592        operatorsView.Content = Content.Operators;
    96         operatorsView.Enabled = true;
    9793        MarkInitialOperator();
    9894        operatorTreeView.Content = Content.InitialOperator;
    99         operatorTreeView.Enabled = true;
    10095      }
     96      SetEnabledStateOfControls();
    10197    }
     98
     99    protected override void OnReadOnlyChanged() {
     100      base.OnReadOnlyChanged();
     101      SetEnabledStateOfControls();
     102    }
     103
     104    private void SetEnabledStateOfControls() {
     105      operatorsView.Enabled = Content != null;
     106      operatorTreeView.Enabled = Content != null;
     107      operatorsView.ReadOnly = ReadOnly;
     108      operatorTreeView.ReadOnly = ReadOnly;
     109      operatorsContextMenuStrip.Enabled = Content != null && !ReadOnly;
     110    }
     111
    102112
    103113    protected virtual void MarkInitialOperator() {
  • trunk/sources/HeuristicLab.Core.Views/3.3/OperatorTreeView.cs

    r3341 r3362  
    9090      if (graphTreeView.Nodes.Count > 0)
    9191        RemoveTreeNode(graphTreeView.Nodes[0]);
    92       graphTreeView.Enabled = false;
    9392      Caption = "Operator";
    9493      if (Content != null) {
     
    9796        FillTreeNode(root, Content);
    9897        graphTreeView.Nodes.Add(root);
    99         graphTreeView.Enabled = true;
    100       }
     98      }
     99      SetEnabledStateOfControls();
     100    }
     101
     102    protected override void OnReadOnlyChanged() {
     103      base.OnReadOnlyChanged();
     104      SetEnabledStateOfControls();
     105    }
     106
     107    private void SetEnabledStateOfControls() {
     108      graphTreeView.Enabled = Content != null;
    101109    }
    102110
     
    334342    }
    335343    private void graphTreeView_KeyDown(object sender, KeyEventArgs e) {
    336       if ((e.KeyCode == Keys.Delete) && (graphTreeView.SelectedNode != null)) {
     344      if (!ReadOnly && (e.KeyCode == Keys.Delete) && (graphTreeView.SelectedNode != null)) {
    337345        IValueParameter<IOperator> opParam = GetOperatorParameterTag(graphTreeView.SelectedNode);
    338346        if (opParam != null) opParam.Value = null;
     
    349357        IOperator op = GetOperatorTag(graphTreeView.SelectedNode);
    350358        if (op != null) {
    351           IView view = MainFormManager.CreateDefaultView(op);
     359          IView view = MainFormManager.CreateDefaultView(op, ReadOnly);
    352360          if (view != null) {
    353361            viewToolStripMenuItem.Enabled = true;
     
    368376      data.SetData("Type", op.GetType());
    369377      data.SetData("Value", op);
    370       if (opParam == null) {
     378      if (ReadOnly || (opParam == null)) {
    371379        DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
    372380      } else {
     
    379387      e.Effect = DragDropEffects.None;
    380388      Type type = e.Data.GetData("Type") as Type;
    381       if ((type != null) && (typeof(IOperator).IsAssignableFrom(type))) {
     389      if (!ReadOnly && (type != null) && (typeof(IOperator).IsAssignableFrom(type))) {
    382390        TreeNode node = graphTreeView.GetNodeAt(graphTreeView.PointToClient(new Point(e.X, e.Y)));
    383391        if ((node != null) && !node.IsExpanded) node.Expand();
  • trunk/sources/HeuristicLab.Core.Views/3.3/ParameterizedNamedItemView.cs

    r2917 r3362  
    5252    protected override void OnContentChanged() {
    5353      base.OnContentChanged();
    54       if (Content == null) {
    55         parameterCollectionView.Content = null;
    56       } else {
    57         parameterCollectionView.Content = Content.Parameters;
    58       }
     54      parameterCollectionView.Content = Content == null ? null : Content.Parameters;
     55      SetEnabledStateOfControls();
     56    }
     57
     58    protected override void OnReadOnlyChanged() {
     59      base.OnReadOnlyChanged();
     60      SetEnabledStateOfControls();
     61    }
     62
     63    private void SetEnabledStateOfControls() {
     64      parameterCollectionView.Enabled = Content != null;
     65      parameterCollectionView.ReadOnly = ReadOnly;
    5966    }
    6067  }
  • trunk/sources/HeuristicLab.Core.Views/3.3/ScopeView.cs

    r2917 r3362  
    7979      }
    8080      variableCollectionView.Content = null;
    81       variableCollectionView.Enabled = false;
    82       if (Content == null) {
    83         Caption = "Scope";
    84         scopesTreeView.Enabled = false;
    85       } else {
     81      Caption = "Scope";
     82      if (Content != null) {
    8683        Caption = Content.Name + " (" + Content.GetType().Name + ")";
    87         scopesTreeView.Enabled = true;
    8884        scopesTreeView.Nodes.Add(CreateTreeNode(Content));
    8985      }
     86      SetEnabledStateOfControls();
     87    }
     88
     89    protected override void OnReadOnlyChanged() {
     90      base.OnReadOnlyChanged();
     91      SetEnabledStateOfControls();
     92    }
     93
     94    private void SetEnabledStateOfControls() {
     95      scopesTreeView.Enabled = Content != null;
     96      variableCollectionView.Enabled = Content != null;
     97      variableCollectionView.ReadOnly = ReadOnly;
    9098    }
    9199
     
    161169      if (scope != null) {
    162170        DataObject data = new DataObject();
    163         data.SetData("Scope", scope);
    164         data.SetData("DragSource", scopesTreeView);
    165         DoDragDrop(data, DragDropEffects.Copy);
     171        data.SetData("Type", scope.GetType());
     172        data.SetData("Value", scope);
     173        DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
    166174      }
    167175    }
  • trunk/sources/HeuristicLab.Core.Views/3.3/VariableValueView.cs

    r2989 r3362  
    8383        Caption = "Variable";
    8484        viewHost.Content = null;
    85         valuePanel.Enabled = false;
    8685      } else {
    8786        Caption = Content.Name + " (" + Content.GetType().Name + ")";
    88         valuePanel.Enabled = true;
    8987        viewHost.ViewType = null;
    9088        viewHost.Content = Content.Value;
    9189      }
     90      SetEnabledStateOfControls();
     91    }
     92
     93    protected override void OnReadOnlyChanged() {
     94      base.OnReadOnlyChanged();
     95      SetEnabledStateOfControls();
     96    }
     97
     98    private void SetEnabledStateOfControls() {
     99      valuePanel.Enabled = Content != null;
     100      viewHost.ReadOnly = ReadOnly;
    92101    }
    93102
     
    104113      e.Effect = DragDropEffects.None;
    105114      Type type = e.Data.GetData("Type") as Type;
    106       if ((type != null) && (typeof(IItem).IsAssignableFrom(type))) {
     115      if (!ReadOnly && (type != null) && (typeof(IItem).IsAssignableFrom(type))) {
    107116        if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
    108117        else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
  • trunk/sources/HeuristicLab.Core.Views/3.3/VariableView.cs

    r2949 r3362  
    8585        Caption = "Variable";
    8686        dataTypeTextBox.Text = "-";
    87         dataTypeTextBox.Enabled = false;
    88         setValueButton.Enabled = false;
    89         clearValueButton.Enabled = false;
    90         valueGroupBox.Enabled = false;
    9187        viewHost.Content = null;
    9288      } else {
    9389        Caption = Content.Name + " (" + Content.GetType().Name + ")";
    9490        dataTypeTextBox.Text = Content.Value == null ? "-" : Content.Value.GetType().GetPrettyName();
    95         dataTypeTextBox.Enabled = Content.Value != null;
    96         setValueButton.Enabled = true;
    97         clearValueButton.Enabled = Content.Value != null;
    98         valueGroupBox.Enabled = true;
    9991        viewHost.ViewType = null;
    10092        viewHost.Content = Content.Value;
    10193      }
     94      SetEnabledStateOfControls();
     95    }
     96
     97    protected override void OnReadOnlyChanged() {
     98      base.OnReadOnlyChanged();
     99      SetEnabledStateOfControls();
     100    }
     101
     102    private void SetEnabledStateOfControls() {
     103      dataTypeTextBox.Enabled = Content != null && Content.Value != null;
     104      setValueButton.Enabled = Content != null && !ReadOnly;
     105      clearValueButton.Enabled = Content != null && Content.Value != null && !ReadOnly;
     106      valueGroupBox.Enabled = Content != null;
     107      viewHost.ReadOnly = ReadOnly;
    102108    }
    103109
     
    130136      e.Effect = DragDropEffects.None;
    131137      Type type = e.Data.GetData("Type") as Type;
    132       if ((type != null) && (typeof(IItem).IsAssignableFrom(type))) {
     138      if (!ReadOnly && (type != null) && (typeof(IItem).IsAssignableFrom(type))) {
    133139        if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
    134140        else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
  • trunk/sources/HeuristicLab.Data.Views/3.3/BoolValueView.cs

    r3350 r3362  
    6262        valueCheckBox.Checked = Content.Value;
    6363      }
    64       SetEnableStateOfControls();
     64      SetEnabledStateOfControls();
    6565    }
    6666
    6767    protected override void OnReadOnlyChanged() {
    6868      base.OnReadOnlyChanged();
    69       SetEnableStateOfControls();
     69      SetEnabledStateOfControls();
    7070    }
    71     private void SetEnableStateOfControls() {
     71    private void SetEnabledStateOfControls() {
    7272      if (Content == null) valueCheckBox.Enabled = false;
    7373      else valueCheckBox.Enabled = !ReadOnly;
  • trunk/sources/HeuristicLab.Data.Views/3.3/ComparisonView.cs

    r3350 r3362  
    6363        valueComboBox.SelectedItem = Content.Value;
    6464      }
    65       SetEnableStateOfControls();
     65      SetEnabledStateOfControls();
    6666    }
    6767    protected override void OnReadOnlyChanged() {
    6868      base.OnReadOnlyChanged();
    69       SetEnableStateOfControls();
     69      SetEnabledStateOfControls();
    7070    }
    71     private void SetEnableStateOfControls() {
     71    private void SetEnabledStateOfControls() {
    7272      if (Content == null) valueComboBox.Enabled = false;
    7373      else valueComboBox.Enabled = !ReadOnly;
  • trunk/sources/HeuristicLab.Data.Views/3.3/StringConvertibleArrayView.cs

    r3350 r3362  
    7171        UpdateData();
    7272      }
    73       SetEnableStateOfControls();
     73      SetEnabledStateOfControls();
    7474    }
    7575    protected override void OnReadOnlyChanged() {
    7676      base.OnReadOnlyChanged();
    77       SetEnableStateOfControls();
     77      SetEnabledStateOfControls();
    7878    }
    79     private void SetEnableStateOfControls() {
     79    private void SetEnabledStateOfControls() {
    8080      if (Content == null) {
    8181        lengthTextBox.Enabled = false;
  • trunk/sources/HeuristicLab.Data.Views/3.3/StringConvertibleMatrixView.cs

    r3350 r3362  
    9090        UpdateData();
    9191      }
    92       SetEnableStateOfControls();
     92      SetEnabledStateOfControls();
    9393    }
    9494    protected override void OnReadOnlyChanged() {
    9595      base.OnReadOnlyChanged();
    96       SetEnableStateOfControls();
    97     }
    98     private void SetEnableStateOfControls() {
     96      SetEnabledStateOfControls();
     97    }
     98    private void SetEnabledStateOfControls() {
    9999      if (Content == null) {
    100100        rowsTextBox.Enabled = false;
  • trunk/sources/HeuristicLab.Data.Views/3.3/StringConvertibleValueView.cs

    r3350 r3362  
    6565        valueTextBox.Text = Content.GetValue();
    6666      }
    67       SetEnableStateOfControls();
     67      SetEnabledStateOfControls();
    6868    }
    6969    protected override void OnReadOnlyChanged() {
    7070      base.OnReadOnlyChanged();
    71       SetEnableStateOfControls();
     71      SetEnabledStateOfControls();
    7272    }
    73     private void SetEnableStateOfControls() {
     73    private void SetEnabledStateOfControls() {
    7474      if (Content == null) valueTextBox.Enabled = false;
    7575      else {
  • trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/GraphVisualizationInfoView.cs

    r3355 r3362  
    7676    protected override void OnReadOnlyChanged() {
    7777      base.OnReadOnlyChanged();
    78       this.SetEnableStateOfControls();
    79     }
    80 
    81     private void SetEnableStateOfControls() {
     78      this.SetEnabledStateOfControls();
     79    }
     80
     81    private void SetEnabledStateOfControls() {
    8282      DeleteTool deleteTool = (DeleteTool) this.Controller.Tools.Where( t => t.Name == ControllerBase.DeleteToolName).FirstOrDefault();
    8383      HeuristicLab.Netron.Controller controller = this.Controller as HeuristicLab.Netron.Controller;
     
    110110        this.UpdateLayoutRoot();
    111111      }
    112       this.SetEnableStateOfControls();
     112      this.SetEnabledStateOfControls();
    113113    }
    114114
  • trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphView.cs

    r3361 r3362  
    7373        this.graphVisualizationInfoView.RelayoutGraph();
    7474
    75       this.SetEnableStateOfControls();
     75      this.SetEnabledStateOfControls();
    7676    }
    7777
    7878    protected override void OnReadOnlyChanged() {
    7979      base.OnReadOnlyChanged();
    80       this.SetEnableStateOfControls();
    81     }
    82 
    83     private void SetEnableStateOfControls() {
     80      this.SetEnabledStateOfControls();
     81    }
     82
     83    private void SetEnabledStateOfControls() {
    8484      if (Content == null) {
    8585        selectButton.Enabled = false;
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultView.cs

    r3350 r3362  
    9797        viewHost.Content = Content.Value;
    9898      }
    99       SetEnableStateOfControls();
     99      SetEnabledStateOfControls();
    100100    }
    101101    protected override void OnReadOnlyChanged() {
    102102      base.OnReadOnlyChanged();
    103       SetEnableStateOfControls();
     103      SetEnabledStateOfControls();
    104104    }
    105     private void SetEnableStateOfControls() {
     105    private void SetEnabledStateOfControls() {
    106106      if (Content == null) {
    107107        dataTypeTextBox.Enabled = false;
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionView.cs

    r3350 r3362  
    8181          AddListViewItem(CreateListViewItem(item));
    8282      }
    83       SetEnableStateOfControls();
     83      SetEnabledStateOfControls();
    8484    }
    8585
    8686    protected override void OnReadOnlyChanged() {
    8787      base.OnReadOnlyChanged();
    88       SetEnableStateOfControls();
    89     }
    90     private void SetEnableStateOfControls() {
     88      SetEnabledStateOfControls();
     89    }
     90    private void SetEnabledStateOfControls() {
    9191      if (Content == null) {
    9292        itemsListView.Enabled = false;
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/RunView.cs

    r3350 r3362  
    7575      else
    7676        Caption = Content.Name + " (" + Content.GetType().Name + ")";
    77       SetEnableStateOfControls();
     77      SetEnabledStateOfControls();
    7878    }
    7979    protected override void OnReadOnlyChanged() {
    8080      base.OnReadOnlyChanged();
    81       SetEnableStateOfControls();
     81      SetEnabledStateOfControls();
    8282    }
    83     private void SetEnableStateOfControls() {
     83    private void SetEnabledStateOfControls() {
    8484      if (Content == null) {
    8585        parametersResultsGroupBox.Enabled = false;
Note: See TracChangeset for help on using the changeset viewer.