1 #region License Information
3 * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL)
5 * This file is part of HeuristicLab.
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
24 using HeuristicLab
.Common
;
27 namespace HeuristicLab
.Core
{
29 /// Represents the base class for all basic item types.
31 [StorableType("E7F13DE4-F9A2-4ADC-AB92-5BBA0588CD2D")]
32 [Item("Item", "Base class for all HeuristicLab items.")]
33 public abstract class Item
: IItem
{
34 public virtual string ItemName
{
35 get { return ItemAttribute.GetName(this.GetType()); }
37 public virtual string ItemDescription
{
38 get { return ItemAttribute.GetDescription(this.GetType()); }
40 public Version ItemVersion
{
41 get { return ItemAttribute.GetVersion(this.GetType()); }
43 public static Image StaticItemImage
{
44 get { return HeuristicLab.Common.Resources.VSImageLibrary.Class; }
46 public virtual Image ItemImage
{
47 get { return ItemAttribute.GetImage(this.GetType()); }
51 protected Item(StorableConstructorFlag _
) { }
52 protected Item(Item original
, Cloner cloner
) {
53 cloner
.RegisterClonedObject(original
, this);
57 public object Clone() {
58 return Clone(new Cloner());
60 public abstract IDeepCloneable
Clone(Cloner cloner
);
63 /// Gets the string representation of the current instance.
65 /// <returns>The type name of the current instance.</returns>
66 public override string ToString() {
70 public event EventHandler ItemImageChanged
;
71 protected virtual void OnItemImageChanged() {
72 EventHandler handler
= ItemImageChanged
;
73 if (handler
!= null) handler(this, EventArgs
.Empty
);
75 public event EventHandler ToStringChanged
;
76 protected virtual void OnToStringChanged() {
77 EventHandler handler
= ToStringChanged
;
78 if (handler
!= null) handler(this, EventArgs
.Empty
);