public CSharpContextActionWrapper(IContextActionProvider provider, CodeAction codeAction,
		                                  Func<SDRefactoringContext, CodeAction> getUpdatedCodeAction)
		{
			if (provider == null)
				throw new ArgumentNullException("provider");
			if (codeAction == null)
				throw new ArgumentNullException("codeAction");
			if (getUpdatedCodeAction == null)
				throw new ArgumentNullException("getUpdatedCodeAction");
			this.provider = provider;
			this.description = codeAction.Description;
			this.getUpdatedCodeAction = getUpdatedCodeAction;
			// Don't maintain a reference to 'action', it indirectly references the compilation etc.
		}
Exemple #2
0
        public MainViewModel(IStringProvider stringProvider, IDeviceProvider deviceProvider, IContextActionProvider contextActionProvider)
        {
            _stringProvider        = stringProvider;
            _deviceProvider        = deviceProvider;
            _contextActionProvider = contextActionProvider;

            _deviceProvider.SelectedDevicesChanged += _deviceProvider_SelectedDevicesChanged;
            _deviceProvider.RoomStructureChanged   += _deviceProvider_RoomStructureChanged;

            _groupedDevices = _deviceProvider.Devices.GroupBy(
                (device) =>
            {
                return(device.Room);
            },
                (room, devices) =>
            {
                return(new Devices.DevicesGroup(room, devices));
            }).FillEmptyRooms(_deviceProvider.Rooms);
        }
 public CSharpContextActionWrapper(IContextActionProvider provider, CodeAction codeAction,
                                   Func <SDRefactoringContext, CodeAction> getUpdatedCodeAction)
 {
     if (provider == null)
     {
         throw new ArgumentNullException("provider");
     }
     if (codeAction == null)
     {
         throw new ArgumentNullException("codeAction");
     }
     if (getUpdatedCodeAction == null)
     {
         throw new ArgumentNullException("getUpdatedCodeAction");
     }
     this.provider             = provider;
     this.description          = codeAction.Description;
     this.getUpdatedCodeAction = getUpdatedCodeAction;
     // Don't maintain a reference to 'action', it indirectly references the compilation etc.
 }
Exemple #4
0
        public async Task InitializeData(IContextActionProvider contextActionProvider, string dataPath)
        {
            StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri(dataPath));

            string dataString = await FileIO.ReadTextAsync(file);

            JsonObject rootObject = JsonObject.Parse(dataString);

            _rooms            = Room.ParseRoomList(rootObject["Rooms"].GetArray());
            _presets          = Preset.ParsePresetList(rootObject["Presets"].GetArray());
            _deviceCategories = DeviceCategory.ParseDeviceCategoryList(rootObject["DeviceCategories"].GetArray(), _stringProvider, contextActionProvider);
            _devices          = Device.ParseDeviceList(rootObject["Devices"].GetArray(), _stringProvider, contextActionProvider, _rooms, _deviceCategories);
            _products         = Product.ParseProductList(rootObject["Products"].GetArray(), _deviceCategories);

            SortDevices();

            foreach (var room in _rooms)
            {
                room.RoomSelected += Room_RoomSelected;
            }
        }
Exemple #5
0
        public Device(IStringProvider stringProvider, IContextActionProvider contextActionProvider, string id, DeviceCategory category, string caption, string thumbnailPath, Room room, List <IProperty> properties)
        {
            _stringProvider        = stringProvider;
            _contextActionProvider = contextActionProvider;
            _id            = id;
            _category      = category;
            _caption       = caption;
            _thumbnailPath = thumbnailPath;
            _room          = room;
            _properties    = properties;

            if (_properties != null)
            {
                foreach (IProperty prop in _properties)
                {
                    if (prop != null)
                    {
                        prop.ValueChanged += Prop_ValueChanged;
                    }
                }
            }
        }
Exemple #6
0
        public static Device ParseDevice(JsonObject data, IStringProvider stringProvider, IContextActionProvider contextActionProvider, List <Room> rooms, DeviceCategory category)
        {
            Room room = null;

            if (data.ContainsKey("Room"))
            {
                string roomId = data["Room"].GetString();
                if (!string.IsNullOrEmpty(roomId) && rooms != null)
                {
                    room = rooms.FirstOrDefault((a) => a.Id == roomId);
                    if (room == null)
                    {
                        throw new Exception(string.Format("Unable to locate room with id {0}", roomId));
                    }
                }
            }

            List <IProperty> properties = Property.ParsePropertyList(data["Properties"].GetArray(), category.SharedBitmapLists);

            Device retVal = new Device(stringProvider, contextActionProvider, data["Id"].GetString(), category, data["Caption"].GetString(), data["Thumbnail"].GetString(), room, properties);

            if (room != null)
            {
                room.AddDevice(retVal);
            }
            return(retVal);
        }
Exemple #7
0
        public static List <Device> ParseDeviceList(JsonArray data, IStringProvider stringProvider, IContextActionProvider contextActionProvider, List <Room> rooms, List <DeviceCategory> categories)
        {
            var retVal = new List <Device>(data.Count);

            foreach (var node in data)
            {
                retVal.Add(ParseDevice(node.GetObject(), stringProvider, contextActionProvider, rooms, categories));
            }

            return(retVal);
        }
Exemple #8
0
        public static DeviceCategory ParseDeviceCategory(JsonObject data, IStringProvider stringProvider, IContextActionProvider contextActionProvider)
        {
            bool    showDeviceShelf  = bool.Parse(data["ShowDeviceShelf"].GetString());
            Vector3 shelfOffset      = data["ShelfOffset"].GetObject().GetVector3();
            Vector3 deviceOffset     = data["DeviceOffset"].GetObject().GetVector3();
            Vector3 spotlightOffset  = data["SpotlightOffset"].GetObject().GetVector3();
            Vector3 spotlight1Offset = data["Spotlight1Offset"].GetObject().GetVector3();
            Vector3 pointlightOffset = data["PointlightOffset"].GetObject().GetVector3();

            Dictionary <string, List <PropertyBitmapPickerItem> > sharedBitmapLists = new Dictionary <string, List <PropertyBitmapPickerItem> >();
            JsonArray nodes = data["SharedBitmapLists"].GetArray();

            foreach (var node in nodes)
            {
                JsonObject nodeObject = node.GetObject();
                string     id         = nodeObject["Id"].GetString();
                List <PropertyBitmapPickerItem> list = PropertyBitmapPickerItem.ParsePropertyBitmapPickerItemList(nodeObject["List"].GetArray());
                sharedBitmapLists.Add(id, list);
            }

            var retVal        = new DeviceCategory(data["Id"].GetString(), showDeviceShelf, shelfOffset, deviceOffset, spotlightOffset, spotlight1Offset, pointlightOffset, sharedBitmapLists, null, data["Caption"].GetString(), data["Thumbnail"].GetString(), data["ThumbnailHeight"].GetNumber(), data["ThumbnailTopMargin"].GetNumber());
            var defaultDevice = Device.ParseDevice(data["DefaultDevice"].GetObject(), stringProvider, contextActionProvider, null, retVal);

            retVal.DefaultDevice = defaultDevice;
            return(retVal);
        }