예제 #1
0
        public CloudContentControl(IEnumerable <UserAccount> userAccounts,
                                   IViewerFactory viewerFactory)
        {
            this.viewerFactory = viewerFactory;
            itemContextMenu    = new ItemContextMenu();
            controlContextMenu = new ControlContextMenu();
            InitializeControl();
            SizeChanged      += (s, e) => splashScreen?.SizeChange();
            driveNames        = userAccounts.ToDictionary(x => x.DriveEngine, x => x.Name);
            cloudDriveEngines = userAccounts.Select(x => x.DriveEngine).ToList();

            components = new System.ComponentModel.Container();
            var resources
                = new System.ComponentModel.ComponentResourceManager(typeof(CloudContentControl));

            foreach (var driveEngine in cloudDriveEngines)
            {
                var(listView, folderPanel) = InitializeDrivePanel(components, resources);
                listViews.Add(driveEngine, listView);
                folderPanels.Add(driveEngine, folderPanel);
                listViews[driveEngine].ItemActivate += ViewContentList_ItemActivate;
                listViews[driveEngine].MouseUp      += ViewContentList_MouseUp;
                AddItems(driveEngine);
            }
            currentDirectory = "/";
            Name             = "CloudContentControl";
        }
예제 #2
0
 public MainForm(ICloudApi[] apis, IViewerFactory viewerFactory)
 {
     this.apis          = apis;
     this.viewerFactory = viewerFactory;
     accounts           = apis.SelectMany(x => x.Drive.LoadAccounts()).ToList();
     InitializeComponent();
     InitView();
 }
예제 #3
0
 public static void AddViewerFactory(IViewerFactory f)
 {
     factories.Add(f);
 }