package tela.view; import static aplicacao.helper.MessageHelper.openError; import java.util.Date; import org.apache.log4j.Logger; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.action.Action; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.swt.SWT; import org.eclipse.swt.events.KeyAdapter; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.widgets.Form; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.part.ViewPart; import org.eclipse.wb.swt.ResourceManager; import tela.componentes.MecasoftText; import tela.editor.AbrirOrdemServicoEditor; import tela.editor.editorInput.AbrirOrdemServicoEditorInput; import tela.filter.ServicoPrestadoFilter; import aplicacao.command.reports.ShowServicoPrestadoAnaliticoClienteCommand; import aplicacao.helper.FormatterHelper; import aplicacao.service.ServicoPrestadoService; import banco.modelo.ServicoPrestado; import com.ibm.icu.util.Calendar; public class ServicoPrestadoView extends ViewPart { public static final String ID = "tela.view.ServicoPrestadoView"; //$NON-NLS-1$ private Logger log = Logger.getLogger(getClass()); private final FormToolkit formToolkit = new FormToolkit(Display.getDefault()); private Text txtFiltro; private Table table; private TableViewer tvServicoPrestado; private Action actionAtualizar; private Action actionNovo; private ServicoPrestadoService service = new ServicoPrestadoService(); private ServicoPrestadoFilter filtro = new ServicoPrestadoFilter(); private MecasoftText txtDataInicial; private MecasoftText txtDataFinal; public ServicoPrestadoView() { createActions(); } @Override public void createPartControl(Composite parent) { Composite container = new Composite(parent, SWT.NONE); container.setLayout(new FillLayout(SWT.HORIZONTAL)); Form frmServiosPrestados = formToolkit.createForm(container); frmServiosPrestados.setImage(ResourceManager.getPluginImage("mecasoft", "assents/servicoPrestado/servicoPrestado32.png")); formToolkit.paintBordersFor(frmServiosPrestados); frmServiosPrestados.setText("Servi\u00E7os Prestados"); frmServiosPrestados.getBody().setLayout(new GridLayout(5, false)); Label lblBuscar = new Label(frmServiosPrestados.getBody(), SWT.NONE); lblBuscar.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); formToolkit.adapt(lblBuscar, true, true); lblBuscar.setText("Buscar:"); txtFiltro = new Text(frmServiosPrestados.getBody(), SWT.BORDER); txtFiltro.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { filtro.setSearch(txtFiltro.getText()); tvServicoPrestado.refresh(); } }); txtFiltro.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 4, 1)); txtFiltro.setMessage("Filtro..."); formToolkit.adapt(txtFiltro, true, true); Label lblPeriodoDe = formToolkit.createLabel(frmServiosPrestados.getBody(), "Per\u00EDodo de", SWT.NONE); lblPeriodoDe.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); txtDataInicial = new MecasoftText(frmServiosPrestados.getBody(), SWT.NONE); txtDataInicial.setOptions(MecasoftText.NUMEROS, 10); txtDataInicial.addChars(FormatterHelper.MECASOFTTXTDATA, new Integer[]{2, 4}, null, null); formToolkit.adapt(txtDataInicial); formToolkit.paintBordersFor(txtDataInicial); Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, -1); txtDataInicial.setText(FormatterHelper.getDateFormatData().format(c.getTime())); Label lblAte = new Label(frmServiosPrestados.getBody(), SWT.NONE); formToolkit.adapt(lblAte, true, true); lblAte.setText("at\u00E9"); txtDataFinal = new MecasoftText(frmServiosPrestados.getBody(), SWT.NONE); txtDataFinal.setOptions(MecasoftText.NUMEROS, 10); txtDataFinal.addChars(FormatterHelper.MECASOFTTXTDATA, new Integer[]{2, 4}, null, null); formToolkit.adapt(txtDataFinal); formToolkit.paintBordersFor(txtDataFinal); txtDataFinal.setText(FormatterHelper.getDateFormatData().format(new Date())); tvServicoPrestado = new TableViewer(frmServiosPrestados.getBody(), SWT.BORDER | SWT.FULL_SELECTION); tvServicoPrestado.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { try { IStructuredSelection selecao = (IStructuredSelection)tvServicoPrestado.getSelection(); if(selecao.isEmpty()) return; ServicoPrestado sp = (ServicoPrestado)selecao.getFirstElement(); getSite().getPage().openEditor(new AbrirOrdemServicoEditorInput(sp), AbrirOrdemServicoEditor.ID); } catch (PartInitException e) { log.error(e); } } }); table = tvServicoPrestado.getTable(); table.setLinesVisible(true); table.setHeaderVisible(true); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 5, 1)); tvServicoPrestado.setContentProvider(ArrayContentProvider.getInstance()); tvServicoPrestado.addFilter(filtro); formToolkit.paintBordersFor(table); TableViewerColumn tvcNumero = new TableViewerColumn(tvServicoPrestado, SWT.NONE); tvcNumero.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return ((ServicoPrestado)element).getId().toString(); } }); TableColumn tblclmnNumero = tvcNumero.getColumn(); tblclmnNumero.setWidth(100); tblclmnNumero.setText("N\u00FAmero"); TableViewerColumn tvcCliente = new TableViewerColumn(tvServicoPrestado, SWT.NONE); tvcCliente.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return ((ServicoPrestado)element).getCliente().getNomeFantasia(); } }); TableColumn tblclmnCliente = tvcCliente.getColumn(); tblclmnCliente.setWidth(203); tblclmnCliente.setText("Cliente"); TableViewerColumn tvcVeiculo = new TableViewerColumn(tvServicoPrestado, SWT.NONE); tvcVeiculo.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return ((ServicoPrestado)element).getVeiculo().getModelo(); } }); TableColumn tblclmnVeculo = tvcVeiculo.getColumn(); tblclmnVeculo.setWidth(148); tblclmnVeculo.setText("Ve�culo"); TableViewerColumn tvcStatus = new TableViewerColumn(tvServicoPrestado, SWT.NONE); tvcStatus.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { boolean executando = ((ServicoPrestado)element).isEmExecucao(); return executando ? "Aberta" : "Fechada"; } }); TableColumn tblclmnStatus = tvcStatus.getColumn(); tblclmnStatus.setWidth(100); tblclmnStatus.setText("Status"); Menu menu = new Menu(table); table.setMenu(menu); MenuItem mntmGerarRelatorio = new MenuItem(menu, SWT.NONE); mntmGerarRelatorio.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { try { IStructuredSelection selecao = (IStructuredSelection) tvServicoPrestado.getSelection(); if(selecao.isEmpty()) return; new ShowServicoPrestadoAnaliticoClienteCommand(false,((ServicoPrestado)selecao.getFirstElement())).execute(null); } catch (ExecutionException e1) { log.error(e1); } } }); mntmGerarRelatorio.setImage(ResourceManager.getPluginImage("mecasoft", "assents/relatorio/relatorio16.png")); mntmGerarRelatorio.setText("Gerar relat\u00F3rio"); frmServiosPrestados.getToolBarManager().add(actionAtualizar); frmServiosPrestados.getToolBarManager().add(actionNovo); frmServiosPrestados.updateToolBar(); } /** * Create the actions. */ private void createActions() { // Create the actions { actionAtualizar = new Action("Atualizar") { @Override public void run() { Date dtInicial = null; Date dtFinal = null; try{ dtInicial = FormatterHelper.getDateFormatData().parse(txtDataInicial.getText()); dtFinal = FormatterHelper.getDateFormatData().parse(txtDataFinal.getText()); }catch(Exception e){ openError("Informe as datas corretamente."); return; } tvServicoPrestado.setInput(service.findAllAtivosByPeriodo(dtInicial, dtFinal)); tvServicoPrestado.refresh(); } }; actionAtualizar.setImageDescriptor(ResourceManager.getPluginImageDescriptor("mecasoft", "assents/funcoes/refresh16.png")); } { actionNovo = new Action("Abrir Nova Ordem") { @Override public void run() { try { getSite().getPage().openEditor(new AbrirOrdemServicoEditorInput(), AbrirOrdemServicoEditor.ID); } catch (PartInitException e) { log.error(e); } } }; actionNovo.setImageDescriptor(ResourceManager.getPluginImageDescriptor("mecasoft", "assents/funcoes/add16.png")); } } @Override public void setFocus() { actionAtualizar.run(); } }