// A wrapper for underlying base
        public VirtualWorkspace(DocumentType type, string path, string metaname, string date, Coordiante location = null)
            : base(type, path, metaname, date != null? date : MULTITUDE.Class.Facility.SystemHelper.CurrentTimeFileNameFriendly)
        {
            Location  = location;
            PageIndex = 0;
            Gadgets   = new List <VWGadget>();
            Pages     = new List <Page>(); // A page list with 5 pages
            Pages.Add(new Page());
            Pages.Add(new Page());
            Pages.Add(new Page());
            Pages.Add(new Page());
            Pages.Add(new Page());
            // ToolTray = new ToolTray();
            OpenedVWTrace = new List <VirtualWorkspace>();

            BackgroundImageClue  = DefaultBackgroundImageClue;
            BackgroundMelodyClue = DefaultBackgroundMelodyClue;
        }
 public const string DefaultWorkspaceSubject = "My Workspace";   // https://stackoverflow.com/questions/55984/what-is-the-difference-between-const-and-readonly
 public VirtualWorkspace(Coordiante location = null, string name = DefaultWorkspaceSubject, string path = null, string creationdate = null)
     : this(DocumentType.VirtualWorkspace, path,
            (name == DefaultWorkspaceSubject? VirtualWorkspace.GetRandomWorkspaceName() : name),
            creationdate == null ? SystemHelper.CurrentTimeFileNameFriendly : creationdate, location)
 {
 }