package tela.editor; import static aplicacao.helper.MessageHelper.openError; import static aplicacao.helper.MessageHelper.openInformation; import static aplicacao.helper.MessageHelper.openQuestion; import static aplicacao.helper.ValidatorHelper.validar; import java.util.List; import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.core.databinding.beans.PojoObservables; import org.eclipse.core.databinding.observable.value.IObservableValue; import org.eclipse.jface.databinding.swt.SWTObservables; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import tela.editor.editorInput.TipoFuncionarioEditorInput; import aplicacao.exception.ValidationException; import aplicacao.service.MecasoftService; import aplicacao.service.PessoaService; import aplicacao.service.TipoFuncionarioService; import banco.modelo.Pessoa; public class TipoFuncionarioEditor extends MecasoftEditor { public static final String ID = "tela.editor.TipoFuncionarioEditor"; //$NON-NLS-1$ private TipoFuncionarioService service = new TipoFuncionarioService(); private Text txtNome; public TipoFuncionarioEditor() { } @Override public void salvarRegistro() throws ValidationException{ validar(service.getTipo()); service.saveOrUpdate(); openInformation("Tipo de funcion�rio cadastrado com sucesso!"); } @Override public void excluirRegistro() { List<Pessoa> listaFuncionarios = new PessoaService().findAllByTipoFuncionario(service.getTipo()); if(listaFuncionarios.size() != 0){ openError("N�o � poss�vel excluir, pois existem funcion�rios utilizando este tipo."); return; } if(openQuestion("Deseja realmente apagar este tipo de funcion�rio?")){ service.delete(); openInformation("Tipo de funcion�rio excluido com sucesso!"); closeThisEditor(); } } @Override public void addComponentes(Composite compositeConteudo) { compositeConteudo.setLayout(new GridLayout(2, false)); Label lblNome = new Label(compositeConteudo, SWT.NONE); lblNome.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblNome.setText("Nome:"); txtNome = new Text(compositeConteudo, SWT.BORDER); txtNome.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); initDataBindings(); } @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { TipoFuncionarioEditorInput tfei = (TipoFuncionarioEditorInput) input; setShowExcluir(tfei.getTipo().getId() != null); if(tfei.getTipo().getId() != null){ service.setTipo(service.find(tfei.getTipo().getId())); this.setPartName("Tipo de funcion�rio: " + service.getTipo().getNome()); }else service.setTipo(tfei.getTipo()); setSite(site); setInput(input); } @Override public boolean isDirty() { return service.isDirty(); } protected DataBindingContext initDataBindings() { DataBindingContext bindingContext = new DataBindingContext(); // IObservableValue txtNomeObserveTextObserveWidget = SWTObservables.observeText(txtNome, SWT.Modify); IObservableValue servicegetTipoNomeObserveValue = PojoObservables.observeValue(service.getTipo(), "nome"); bindingContext.bindValue(txtNomeObserveTextObserveWidget, servicegetTipoNomeObserveValue, null, null); // return bindingContext; } @Override public void setFocus() { } @Override public MecasoftService<?> getService() { return service; } }