/// <summary> /// Carrega todos os Dispositivos do piso (exceto o selecionado) para serem exibidos junto ao dispositivo selecionado /// </summary> public void CarregaDispositivosPiso() { // Limpa dicionário de dispositivos do piso LimpaDispositivosExibicao(); Dispositivo objDispositivoSelecionado = null; if (base.AtualizaTela != StatusTela.New) { // Pega o dispositivo selecionado atual, se estiver em modo edição objDispositivoSelecionado = (Dispositivo)grdDispositivos.CurrentRow.DataBoundItem; } foreach (DataGridViewRow grdRow in grdDispositivos.Rows) { Dispositivo disp = (Dispositivo)grdRow.DataBoundItem; // Se for o dispositivo selecionado (caso não seja um novo dispositivo), não inclui if (objDispositivoSelecionado != null) { if (disp.Codigo == objDispositivoSelecionado.Codigo) { continue; } } // Se o dispositivo não pertencer ao piso selecionado, não inclui if (disp.Piso != cmbPiso.SelectedValue.ToString()) { continue; } // Seta a posicao do dispositivo Point newPos = new Point(); newPos.X = disp.PosicaoX; newPos.Y = disp.PosicaoY; // Inclui o dispositivo para visualização apenas ctlDispositivoBase ctlDisp = new ctlDispositivoBase(); ctlDisp.PermiteArrastar(false); ctlDisp.setPosicaoDispositivoNaImagem(newPos.X, newPos.Y, imgPiso); ctlDisp.SetTransparenciaImagem((float)0.4); imgPiso.Controls.Add(ctlDisp); ctlDisp.BringToFront(); ctlDisp.Visible = true; dicDisp.Add(ctlDisp, newPos); } }
private void CarregaImagemPisoSelecionado() { if (cmbPiso.SelectedValue != null && !string.IsNullOrEmpty(cmbPiso.SelectedValue.ToString())) { var auxPiso = from Piso objAux in _lstPisos where objAux.Codigo == cmbPiso.SelectedValue.ToString() select objAux; Piso objPisoSelecionado = auxPiso.First(); if (objPisoSelecionado != null) { // Carrega a imagem do Piso no PictureBox imgPiso.Image = Biblioteca.Util.byteArrayToImage(objPisoSelecionado.Imagem); using (GerenciadorDB mngBD = new GerenciadorDB(false)) { // Carrega os Dispositivos associados ao Piso selecionado _lstDispositivos = new controlBase <Dispositivo>().LoadFiltro(mngBD, p => p.Piso == cmbPiso.SelectedValue.ToString()); // Carrega os dispositivos no Piso foreach (Dispositivo disp in _lstDispositivos) { ctlDispositivoBase ctlDisp = FactoryControlDispositivo.getControleDispositivo(disp); ctlDisp.PermiteArrastar(false); ctlDisp.setPosicaoDispositivoNaImagem(disp.PosicaoX, disp.PosicaoY, imgPiso); ctlDisp.Visible = true; ctlDisp.AtivaTimerExibicao(true, 1000); // Exibe o dispositivo na tela imgPiso.Controls.Add(ctlDisp); ctlDisp.BringToFront(); // Adiciona em um dicionario que deverá conter sempre os Dispositivos do Piso selecionado Point pDisp = new Point(disp.PosicaoX, disp.PosicaoY); _dicDispositivos.Add(ctlDisp, pDisp); } } } } }