Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/07/09 02:44:23 (14 years ago)
Author:
swagner
Message:

Continued work on Optimizer and on adapting all views to the new MainForm concept (#770)

File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Optimizer/3.3/NewItemDialog.cs

    r2537 r2546  
    77using System.Text;
    88using System.Windows.Forms;
     9using HeuristicLab.PluginInfrastructure;
     10using HeuristicLab.Common.Resources;
     11using HeuristicLab.Core;
    912
    1013namespace HeuristicLab.Optimizer {
    11   public partial class NewDialog : Form {
    12     private Type newItemType;
    13     public Type NewItemType {
    14       get { return newItemType; }
     14  internal partial class NewItemDialog : Form {
     15    private bool initialized;
     16    private List<IItem> items;
     17
     18    private IItem item;
     19    public IItem Item {
     20      get { return item; }
    1521    }
    1622
    17     public NewDialog() {
     23    public NewItemDialog() {
     24      initialized = false;
     25      items = new List<IItem>();
     26      item = null;
    1827      InitializeComponent();
    19       newItemType = null;
     28    }
     29
     30    private void NewItemDialog_Load(object sender, EventArgs e) {
     31      if (!initialized) {
     32        SetListViewDisplayStyleCheckBoxes();
     33
     34        DiscoveryService ds = new DiscoveryService();
     35        var categories = from t in ds.GetTypes(typeof(IItem))
     36                         where CreatableAttribute.IsCreatable(t)
     37                         orderby CreatableAttribute.GetCategory(t), ItemAttribute.GetName(t) ascending
     38                         group t by CreatableAttribute.GetCategory(t) into c
     39                         select c;
     40
     41        itemsListView.SmallImageList = new ImageList();
     42        foreach (var category in categories) {
     43          ListViewGroup group = new ListViewGroup(category.Key);
     44          itemsListView.Groups.Add(group);
     45          foreach (var creatable in category) {
     46            IItem i = (IItem)Activator.CreateInstance(creatable);
     47            items.Add(i);
     48            ListViewItem item = new ListViewItem(new string[] { i.Name, i.Description}, group);
     49            itemsListView.SmallImageList.Images.Add(i.Image);
     50            item.ImageIndex = itemsListView.SmallImageList.Images.Count - 1;
     51            item.Tag = i;
     52            itemsListView.Items.Add(item);
     53          }
     54        }
     55        initialized = true;
     56      }
     57    }
     58
     59    private void NewItemDialog_Shown(object sender, EventArgs e) {
     60      item = null;
     61    }
     62
     63    private void itemTypesListView_SelectedIndexChanged(object sender, EventArgs e) {
     64      okButton.Enabled = itemsListView.SelectedItems.Count == 1;
     65    }
     66
     67    private void okButton_Click(object sender, EventArgs e) {
     68      if (itemsListView.SelectedItems.Count == 1) {
     69        item = (IItem)((IItem)itemsListView.SelectedItems[0].Tag).Clone();
     70        DialogResult = DialogResult.OK;
     71        Close();
     72      }
     73    }
     74    private void itemTypesListView_DoubleClick(object sender, EventArgs e) {
     75      if (itemsListView.SelectedItems.Count == 1) {
     76        item = (IItem)((IItem)itemsListView.SelectedItems[0].Tag).Clone();
     77        DialogResult = DialogResult.OK;
     78        Close();
     79      }
     80    }
     81
     82    private void showIconsCheckBox_Click(object sender, EventArgs e) {
     83      itemsListView.View = View.SmallIcon;
     84      SetListViewDisplayStyleCheckBoxes();
     85    }
     86    private void showDetailsCheckBox_Click(object sender, EventArgs e) {
     87      itemsListView.View = View.Details;
     88      SetListViewDisplayStyleCheckBoxes();
     89      for (int i = 0; i < itemsListView.Columns.Count; i++)
     90        itemsListView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
     91    }
     92    private void SetListViewDisplayStyleCheckBoxes() {
     93      showIconsCheckBox.Checked = itemsListView.View == View.SmallIcon;
     94      showDetailsCheckBox.Checked = itemsListView.View == View.Details;
    2095    }
    2196  }
Note: See TracChangeset for help on using the changeset viewer.