package tela.editor; import static aplicacao.helper.LayoutHelper.getActiveShell; import static aplicacao.helper.MessageHelper.openError; import static aplicacao.helper.MessageHelper.openInformation; import static aplicacao.helper.MessageHelper.openQuestion; import static aplicacao.helper.MessageHelper.openWarning; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.core.databinding.beans.PojoProperties; import org.eclipse.core.databinding.observable.list.IObservableList; import org.eclipse.core.databinding.observable.value.IObservableValue; import org.eclipse.jface.databinding.swt.WidgetProperties; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.TreeViewerColumn; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.wb.swt.ResourceManager; import org.eclipse.wb.swt.SWTResourceManager; import tela.contentProvider.ItemServicoContentProvider; import tela.dialog.SelecionarItemDialog; import tela.editingSupport.FornecedorItemServicoEditingSupport; import tela.editingSupport.ItemVisivelItemServicoEditingSupport; import tela.editingSupport.QuantidadeItemServicoEditingSupport; import tela.editingSupport.ValorUnitarioItemServico; import tela.editor.editorInput.AbrirOrdemServicoEditorInput; import tela.editor.editorInput.OrcamentoEditorInput; import aplicacao.command.reports.ShowOrcamentoCommand; import aplicacao.exception.ValidationException; import aplicacao.helper.FormatterHelper; import aplicacao.helper.UsuarioHelper; import aplicacao.helper.ValidatorHelper; import aplicacao.service.ItemServicoService; import aplicacao.service.MecasoftService; import aplicacao.service.OrcamentoService; import aplicacao.service.PessoaService; import aplicacao.service.ProdutoServicoService; import aplicacao.service.ServicoPrestadoService; import banco.modelo.ForneceProduto; import banco.modelo.ItemServico; import banco.modelo.Orcamento; import banco.modelo.Pessoa; import banco.modelo.ProdutoServico; import banco.modelo.ServicoPrestado; import banco.modelo.Veiculo; public class OrcamentoEditor extends MecasoftEditor { public static final String ID = "tela.editor.OrcamentoEditor"; //$NON-NLS-1$ private Logger log = Logger.getLogger(getClass()); private OrcamentoService service = new OrcamentoService(); private PessoaService pessoaService = new PessoaService(); private ItemServicoService itemService = new ItemServicoService(); private ServicoPrestadoService servicoService = new ServicoPrestadoService(); private ProdutoServicoService prodServService = new ProdutoServicoService(); private List<ItemServico> listaProdutoRemovido; private Text txtNumero; private Text txtCliente; private Text txtVeiculo; private final FormToolkit formToolkit = new FormToolkit(Display.getDefault()); private TreeViewer tvItem; private Label lblValorTotal; private Button btnSelecionarCliente; private Button btnSelecionar; private Button btnAdicionarServico; private Button btnRemoverServico; private Button btnAdicionarProduto; private Button btnRemoverProduto; private Tree tree; public OrcamentoEditor() { listaProdutoRemovido = new ArrayList<ItemServico>(); } @Override public void salvarRegistro() throws ValidationException { ValidatorHelper.validar(service.getModelo()); //GAMBIARRA for(ItemServico item : listaProdutoRemovido){ itemService.setModelo(item); itemService.delete(); } calcularTotais(); service.saveOrUpdate(); openInformation("Or�amento registrado com sucesso!"); } @Override public void excluirRegistro() { if(openQuestion("Deseja realmente excluir o or�amento?")){ service.delete(); openInformation("Or�amento excluido com sucesso!"); closeThisEditor(); } } @Override public void addComponentes(Composite compositeConteudo) { compositeConteudo.setLayout(new GridLayout(3, false)); Label lblNmero = new Label(compositeConteudo, SWT.NONE); lblNmero.setText("N�mero:"); txtNumero = new Text(compositeConteudo, SWT.BORDER); txtNumero.setEnabled(false); txtNumero.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); new Label(compositeConteudo, SWT.NONE); Label lblCliente = new Label(compositeConteudo, SWT.NONE); lblCliente.setText("Cliente:"); txtCliente = new Text(compositeConteudo, SWT.BORDER); txtCliente.setEnabled(false); txtCliente.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); btnSelecionarCliente = new Button(compositeConteudo, SWT.NONE); btnSelecionarCliente.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { Pessoa p = selecionarCliente(); if(p != null){ service.getModelo().setCliente(p); txtCliente.setText(p.getNomeFantasia()); //remove o ve�culo para evitar que o ve�culo nao perten�a ao dono service.getModelo().setVeiculo(null); txtVeiculo.setText(""); }else{ service.getModelo().setCliente(null); txtCliente.setText(""); //remove o ve�culo service.getModelo().setVeiculo(null); txtVeiculo.setText(""); } } }); btnSelecionarCliente.setImage(ResourceManager.getPluginImage("mecasoft", "assents/funcoes/find16.png")); btnSelecionarCliente.setText("Selecionar"); Label lblVeculo = new Label(compositeConteudo, SWT.NONE); lblVeculo.setText("Ve\u00EDculo:"); txtVeiculo = new Text(compositeConteudo, SWT.BORDER); txtVeiculo.setEnabled(false); txtVeiculo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); btnSelecionar = new Button(compositeConteudo, SWT.NONE); btnSelecionar.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { Veiculo v = selecionarVeiculo(); if(v != null){ txtVeiculo.setText(v.getModelo()); service.getModelo().setVeiculo(v); }else{ txtVeiculo.setText(""); service.getModelo().setVeiculo(null); } } }); btnSelecionar.setImage(ResourceManager.getPluginImage("mecasoft", "assents/funcoes/find16.png")); btnSelecionar.setText("Selecionar"); Label lblItensDoOramento = new Label(compositeConteudo, SWT.NONE); lblItensDoOramento.setText("Itens do or\u00E7amento:"); tvItem = new TreeViewer(compositeConteudo, SWT.BORDER | SWT.FULL_SELECTION); tree = tvItem.getTree(); tree.setLinesVisible(true); tree.setHeaderVisible(true); tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 4)); tvItem.setContentProvider(new ItemServicoContentProvider()); TreeViewerColumn tvcDescricao = new TreeViewerColumn(tvItem, SWT.NONE); tvcDescricao.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return ((ItemServico)element).getDescricao(); } }); TreeColumn trclmnDescricao = tvcDescricao.getColumn(); trclmnDescricao.setWidth(140); trclmnDescricao.setText("Descri��o"); TreeViewerColumn tvcPrestadorFornecedor = new TreeViewerColumn(tvItem, SWT.NONE); tvcPrestadorFornecedor.setEditingSupport(new FornecedorItemServicoEditingSupport(tvItem){ @Override protected void setValue(Object element, Object value) { super.setValue(element, value); calcularTotais(); } }); tvcPrestadorFornecedor.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { Pessoa fornecedor = ((ItemServico)element).getFornecedor(); if(fornecedor != null) return fornecedor.getNome(); return ""; } }); TreeColumn trclmnPrestadorfornecedor = tvcPrestadorFornecedor.getColumn(); trclmnPrestadorfornecedor.setWidth(141); trclmnPrestadorfornecedor.setText("Prestador/Fornecedor"); TreeViewerColumn tvcValor = new TreeViewerColumn(tvItem, SWT.NONE); tvcValor.setEditingSupport(new ValorUnitarioItemServico(tvItem){ @Override protected void setValue(Object element, Object value) { super.setValue(element, value); calcularTotais(); } }); tvcValor.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return FormatterHelper.formatMoedaDuasCasas(((ItemServico)element).getValorUnitario()); } }); TreeColumn trclmnValor = tvcValor.getColumn(); trclmnValor.setWidth(100); trclmnValor.setText("Valor"); TreeViewerColumn tvcQuantidade = new TreeViewerColumn(tvItem, SWT.NONE); tvcQuantidade.setEditingSupport(new QuantidadeItemServicoEditingSupport(tvItem){ @Override protected void setValue(Object element, Object value) { super.setValue(element, value); calcularTotais(); } }); tvcQuantidade.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return ((ItemServico)element).getQuantidade().toString(); } }); TreeColumn trclmnQuantidade = tvcQuantidade.getColumn(); trclmnQuantidade.setWidth(100); trclmnQuantidade.setText("Quantidade"); TreeViewerColumn tvcTotal = new TreeViewerColumn(tvItem, SWT.NONE); tvcTotal.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return FormatterHelper.formatMoedaDuasCasas(((ItemServico)element).getTotal()); } }); TreeColumn trclmnTotal = tvcTotal.getColumn(); trclmnTotal.setWidth(100); trclmnTotal.setText("Total"); TreeViewerColumn tvcVisivel = new TreeViewerColumn(tvItem, SWT.NONE); tvcVisivel.setEditingSupport(new ItemVisivelItemServicoEditingSupport(tvItem)); tvcVisivel.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return null; } @Override public Image getImage(Object element) { ItemServico is = (ItemServico)element; if(is.getItem().getTipo().equals(ProdutoServico.TIPOSERVICO)) return null; if (is.isFornecedorVisivel()) return ResourceManager.getPluginImage("mecasoft", "assents/funcoes/checked16.png"); else return ResourceManager.getPluginImage("mecasoft", "assents/funcoes/unChecked16.png"); } }); TreeColumn trclmnVisivel = tvcVisivel.getColumn(); trclmnVisivel.setWidth(100); trclmnVisivel.setText("Vis�vel"); btnAdicionarServico = formToolkit.createButton(compositeConteudo, "Adicionar", SWT.NONE); btnAdicionarServico.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { ProdutoServico ps = selecionarServico(); if(ps != null){ Pessoa prestador = UsuarioHelper.getConfiguracaoPadrao().getRepresentanteEmpresa(); //verifica se o servico possui algum prestador, caso nao possua, //a empresa � a prestadora, caso possua, o usuario seleciona a empresa if(ps.getListaFornecedores().size() > 0) prestador = selecionarFornecedor(ps); //verifica se o servi�o ja nao foi adicionado com mesmo prestador for(ItemServico is : service.getModelo().getListaServico()) if((is.getItem().equals(ps) && is.getFornecedor().equals(prestador)) || !is.getItem().getAtivo()) return; ItemServico is = new ItemServico(); is.setDescricao(ps.getDescricao()); is.setTotal(ps.getValorUnitario()); is.setQuantidade(1); is.setItem(ps); is.setFornecedor(prestador); is.setOrcamento(service.getModelo()); is.setValorUnitario(ps.getValorUnitario()); service.getModelo().getListaServico().add(is); for(ProdutoServico item : ps.getListaProduto()) if(item.getAtivo()) adicionarItens(item, is, null); calcularTotais(); tvItem.refresh(); } } }); btnAdicionarServico.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); btnAdicionarServico.setImage(ResourceManager.getPluginImage("mecasoft", "assents/funcoes/servico/plusServico16.png")); new Label(compositeConteudo, SWT.NONE); btnRemoverServico = formToolkit.createButton(compositeConteudo, "Remover", SWT.NONE); btnRemoverServico.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection selecao = (IStructuredSelection)tvItem.getSelection(); if(selecao.isEmpty()) return; ItemServico is = (ItemServico)selecao.getFirstElement(); if(is.getItem().getTipo().equals(ProdutoServico.TIPOPRODUTO)){ openWarning("O item selecionado � um produto e n�o um servi�o."); return; } if(openQuestion("Deseja realmente remover este servi�o da lista?")){ //GAMBIARRA listaProdutoRemovido.addAll(is.getListaItem()); service.getModelo().getListaServico().remove(is); tvItem.refresh(); calcularTotais(); } } }); btnRemoverServico.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); btnRemoverServico.setImage(ResourceManager.getPluginImage("mecasoft", "assents/funcoes/servico/lessServico16.png")); new Label(compositeConteudo, SWT.NONE); btnAdicionarProduto = formToolkit.createButton(compositeConteudo, "Adicionar", SWT.NONE); btnAdicionarProduto.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { //pega o servi�o selecionado pelo usu�rio IStructuredSelection selecao = (IStructuredSelection) tvItem.getSelection(); if(selecao.isEmpty()){ openError("Para adicionar um produto, selecione antes o servi�o ao qual ele pertence"); return; } ItemServico servico = (ItemServico)selecao.getFirstElement(); if(servico.getItem().getTipo().equals(ProdutoServico.TIPOPRODUTO)){ openError("Para adicionar um produto, deve ser selecionado um servi�o e n�o outro produto."); return; } ProdutoServico ps = selecionarProduto(); if(ps != null){ Pessoa fornecedor = selecionarFornecedor(ps); adicionarItens(ps, servico, fornecedor); calcularTotais(); } } }); btnAdicionarProduto.setImage(ResourceManager.getPluginImage("mecasoft", "assents/funcoes/product/productAdd16.png")); btnAdicionarProduto.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); new Label(compositeConteudo, SWT.NONE); btnRemoverProduto = formToolkit.createButton(compositeConteudo, "Remover", SWT.NONE); btnRemoverProduto.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection selecao = (IStructuredSelection)tvItem.getSelection(); if(selecao.isEmpty()) return; ItemServico is = (ItemServico)selecao.getFirstElement(); if(is.getItem().getTipo().equals(ProdutoServico.TIPOSERVICO)){ openWarning("O item selecionado � um servi�o e n�o um produto."); return; } if(openQuestion("Deseja realmente remover este item da lista?")){ //GAMBIARRA listaProdutoRemovido.add(is); is.getServico().getListaItem().remove(is); calcularTotais(); tvItem.refresh(); } } }); btnRemoverProduto.setImage(ResourceManager.getPluginImage("mecasoft", "assents/funcoes/product/productRemove16.png")); btnRemoverProduto.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1)); Label lblTotal = new Label(compositeConteudo, SWT.NONE); lblTotal.setText("Total:"); lblTotal.setFont(SWTResourceManager.getFont("Segoe UI", 14, SWT.BOLD)); formToolkit.adapt(lblTotal, true, true); lblValorTotal = new Label(compositeConteudo, SWT.NONE); lblValorTotal.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); lblValorTotal.setFont(SWTResourceManager.getFont("Segoe UI", 14, SWT.BOLD)); lblValorTotal.setText(FormatterHelper.formatMoedaDuasCasas(service.getModelo().getValorTotal())); formToolkit.adapt(lblValorTotal, true, true); new Label(compositeConteudo, SWT.NONE); Button btnAprovarOrcamento = createNewButton("Aprovar Or�amento"); btnAprovarOrcamento.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if(openQuestion("Deseja realmente aprovar este or�amento?\nCaso aprovado, n�o poder� ser usado em outro servi�o")){ try { ValidatorHelper.validar(service.getModelo()); calcularTotais(); closeThisEditor(); getSite().getPage().openEditor(new AbrirOrdemServicoEditorInput(service.getModelo()), AbrirOrdemServicoEditor.ID); } catch (PartInitException e2) { log.error(e2); } catch (ValidationException e1) { setErroMessage(e1.getMessage()); log.error(e1); } } } }); btnAprovarOrcamento.setImage(ResourceManager.getPluginImage("mecasoft", "assents/funcoes/confirm32.png")); if(!service.getModelo().isPendente()) btnAprovarOrcamento.dispose(); Button btnGerarRelatorio = createNewButton("Gerar relat�rio"); btnGerarRelatorio.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { try { ValidatorHelper.validar(service.getModelo()); calcularTotais(); new ShowOrcamentoCommand(service.getModelo()).execute(null); } catch (ValidationException e1) { setErroMessage(e1.getMessage()); log.error(e1); } catch (ExecutionException e2) { log.error(e2); } } }); btnGerarRelatorio.setImage(ResourceManager.getPluginImage("mecasoft", "assents/relatorio/relatorio32.png")); initDataBindings(); } @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { OrcamentoEditorInput oei = (OrcamentoEditorInput)input; if(oei.getOrcamento().getId() != null) service.setModelo(oei.getOrcamento()); else service.setModelo(new Orcamento()); setShowExcluir(service.getModelo().getId() != null && service.getModelo().isPendente()); setShowSalvar(service.getModelo().isPendente()); setSite(site); setInput(input); } @Override public boolean isDirty() { return false; } @Override public void setFocus() {} private Pessoa selecionarCliente(){ SelecionarItemDialog sid = new SelecionarItemDialog(getActiveShell(), new LabelProvider(){ @Override public String getText(Object element) { return ((Pessoa)element).getNomeFantasia(); } }); sid.setElements(pessoaService.findAllClientesAtivos().toArray()); return (Pessoa) sid.getElementoSelecionado(); } private Veiculo selecionarVeiculo(){ if(service.getModelo().getCliente() == null){ openWarning("Selecione primeiro o cliente para selecionar um ve�culo."); return null; } SelecionarItemDialog sid = new SelecionarItemDialog(getActiveShell(), new LabelProvider(){ @Override public String getText(Object element) { return ((Veiculo)element).getModelo(); } }); sid.setElements(possiveisVeiculos().toArray()); return (Veiculo) sid.getElementoSelecionado(); } private List<Veiculo> possiveisVeiculos(){ List<Veiculo> listaVeiculo = service.getModelo().getCliente().getListaVeiculo(); List<Veiculo> listaResult = new ArrayList<Veiculo>(); List<ServicoPrestado> listaServico = servicoService.findAllNaoConcluidos(); for(Veiculo v : listaVeiculo){ boolean inConsert = false; for(ServicoPrestado s : listaServico){ if(s.getVeiculo().equals(v)) inConsert = true; } if(!inConsert) listaResult.add(v); } return listaResult; } private ProdutoServico selecionarServico(){ SelecionarItemDialog sid = new SelecionarItemDialog(getActiveShell(), new LabelProvider(){ @Override public String getText(Object element) { return((ProdutoServico)element).getDescricao(); } }); sid.setElements(prodServService.findAllServicosAtivos().toArray()); return (ProdutoServico)sid.getElementoSelecionado(); } private Pessoa selecionarFornecedor(ProdutoServico produto){ SelecionarItemDialog sid = new SelecionarItemDialog(getActiveShell(), new LabelProvider(){ @Override public String getText(Object element) { return ((ForneceProduto)element).getPessoa().getNome() + " - R$" + FormatterHelper.getDecimalFormat().format(((ForneceProduto)element).getValorUnitario()); } }); sid.setElements(produto.getListaFornecedores().toArray()); ForneceProduto fp = (ForneceProduto)sid.getElementoSelecionado(); return fp == null ? null : fp.getPessoa(); } public void adicionarItens(ProdutoServico ps, ItemServico servicoPertence, Pessoa fornecedor){ //verifica se � o mesmo produto, fornecedor e servico for(ItemServico item : service.getModelo().getListaServico()){ if(item.getItem().equals(ps) && item.getFornecedor() != null && item.getFornecedor().equals(fornecedor) && item.getServico().equals(servicoPertence)){ item.setQuantidade(item.getQuantidade() + 1); item.setTotal(calculaTotal(item)); tvItem.refresh(); return; } } //pega o forneceproduto selecionado ForneceProduto fp = null; if(fornecedor != null){ for(int c = 0; c < fornecedor.getListaProduto().size() && fp == null; c++){ ForneceProduto fpFornecedor = fornecedor.getListaProduto().get(c); if(fpFornecedor.getProduto().getId().compareTo(ps.getId()) == 0) fp = fpFornecedor; } } ItemServico is = new ItemServico(); is.setDescricao(ps.getDescricao()); is.setValorUnitario(fp == null ? ps.getValorUnitario() : fp.getValorUnitario()); is.setQuantidade(1); is.setTotal(fp == null ? ps.getValorUnitario() : fp.getValorUnitario()); is.setItem(ps); is.setFornecedor(fornecedor); is.setServico(servicoPertence); //adiciona o produto ao servico servicoPertence.getListaItem().add(is); tvItem.refresh(); } public BigDecimal calculaTotal(ItemServico is){ return is.getValorUnitario().multiply(new BigDecimal(is.getQuantidade())); } private ProdutoServico selecionarProduto(){ SelecionarItemDialog sid = new SelecionarItemDialog(getActiveShell(), new LabelProvider(){ @Override public String getText(Object element) { return ((ProdutoServico)element).getDescricao(); } }); sid.setElements(prodServService.findAllProdutosAtivos().toArray()); return (ProdutoServico)sid.getElementoSelecionado(); } private void calcularTotais(){ BigDecimal totalServicos = BigDecimal.ZERO; BigDecimal totalItens = BigDecimal.ZERO; BigDecimal total; for(ItemServico servico : service.getModelo().getListaServico()){ totalServicos = totalServicos.add(servico.getTotal()); for(ItemServico produto : servico.getListaItem()) totalItens = totalItens.add(produto.getTotal()); } total = totalServicos.add(totalItens); service.getModelo().setValorTotal(total); lblValorTotal.setText(FormatterHelper.formatMoedaDuasCasas(total)); } protected DataBindingContext initDataBindings() { DataBindingContext bindingContext = new DataBindingContext(); // IObservableValue observeTextTxtClienteObserveWidget = WidgetProperties.text(SWT.Modify).observe(txtCliente); IObservableValue clientenomeServicegetModeloObserveValue = PojoProperties.value("cliente.nome").observe(service.getModelo()); bindingContext.bindValue(observeTextTxtClienteObserveWidget, clientenomeServicegetModeloObserveValue, null, null); // IObservableValue observeTextTxtVeiculoObserveWidget = WidgetProperties.text(SWT.Modify).observe(txtVeiculo); IObservableValue veiculonomeServicegetModeloObserveValue = PojoProperties.value("veiculo.nome").observe(service.getModelo()); bindingContext.bindValue(observeTextTxtVeiculoObserveWidget, veiculonomeServicegetModeloObserveValue, null, null); // IObservableList listaServicoServicegetModeloObserveList = PojoProperties.list("listaServico").observe(service.getModelo()); tvItem.setInput(listaServicoServicegetModeloObserveList); // IObservableValue observeEnabledBtnSelecionarClienteObserveWidget = WidgetProperties.enabled().observe(btnSelecionarCliente); IObservableValue pendenteServicegetModeloObserveValue = PojoProperties.value("pendente").observe(service.getModelo()); bindingContext.bindValue(observeEnabledBtnSelecionarClienteObserveWidget, pendenteServicegetModeloObserveValue, null, null); // IObservableValue observeEnabledBtnSelecionarObserveWidget = WidgetProperties.enabled().observe(btnSelecionar); bindingContext.bindValue(observeEnabledBtnSelecionarObserveWidget, pendenteServicegetModeloObserveValue, null, null); // IObservableValue observeEnabledBtnAdicionarServicoObserveWidget = WidgetProperties.enabled().observe(btnAdicionarServico); bindingContext.bindValue(observeEnabledBtnAdicionarServicoObserveWidget, pendenteServicegetModeloObserveValue, null, null); // IObservableValue observeEnabledBtnRemoverServicoObserveWidget = WidgetProperties.enabled().observe(btnRemoverServico); bindingContext.bindValue(observeEnabledBtnRemoverServicoObserveWidget, pendenteServicegetModeloObserveValue, null, null); // IObservableValue observeEnabledBtnAdicionarProdutoObserveWidget = WidgetProperties.enabled().observe(btnAdicionarProduto); bindingContext.bindValue(observeEnabledBtnAdicionarProdutoObserveWidget, pendenteServicegetModeloObserveValue, null, null); // IObservableValue observeEnabledBtnRemoverProdutoObserveWidget = WidgetProperties.enabled().observe(btnRemoverProduto); bindingContext.bindValue(observeEnabledBtnRemoverProdutoObserveWidget, pendenteServicegetModeloObserveValue, null, null); // IObservableValue observeEnabledTreeObserveWidget = WidgetProperties.enabled().observe(tree); bindingContext.bindValue(observeEnabledTreeObserveWidget, pendenteServicegetModeloObserveValue, null, null); // IObservableValue observeTextTxtNumeroObserveWidget = WidgetProperties.text(SWT.Modify).observe(txtNumero); IObservableValue numeroServicegetModeloObserveValue = PojoProperties.value("numero").observe(service.getModelo()); bindingContext.bindValue(observeTextTxtNumeroObserveWidget, numeroServicegetModeloObserveValue, null, null); // return bindingContext; } @Override public MecasoftService<?> getService() { return service; } }