package tela.view; import org.apache.log4j.Logger; import org.eclipse.jface.action.Action; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ColumnLabelProvider; 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.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.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.editor.VeiculoEditor; import tela.editor.editorInput.VeiculoEditorInput; import tela.filter.VeiculoFilter; import aplicacao.service.VeiculoService; import banco.modelo.Veiculo; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.DoubleClickEvent; public class VeiculoView extends ViewPart { public static final String ID = "tela.view.VeiculoView"; //$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 tvVeiculo; private Action actionAtualizar; private Action actionNovo; private VeiculoService service = new VeiculoService(); private VeiculoFilter filtro = new VeiculoFilter(); public VeiculoView() { createActions(); } /** * Create contents of the view part. * @param parent */ @Override public void createPartControl(Composite parent) { Composite container = new Composite(parent, SWT.NONE); container.setLayout(new FillLayout(SWT.HORIZONTAL)); Form frmListaDeVeculos = formToolkit.createForm(container); frmListaDeVeculos.setImage(ResourceManager.getPluginImage("mecasoft", "assents/veiculo/veiculo32.png")); formToolkit.paintBordersFor(frmListaDeVeculos); frmListaDeVeculos.setText("Lista de ve\u00EDculos"); frmListaDeVeculos.getBody().setLayout(new GridLayout(2, false)); Label lblBuscar = new Label(frmListaDeVeculos.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(frmListaDeVeculos.getBody(), SWT.BORDER); txtFiltro.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { filtro.setSearch(txtFiltro.getText()); tvVeiculo.refresh(); } }); txtFiltro.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); txtFiltro.setMessage("Filtro..."); formToolkit.adapt(txtFiltro, true, true); tvVeiculo = new TableViewer(frmListaDeVeculos.getBody(), SWT.BORDER | SWT.FULL_SELECTION); tvVeiculo.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { try { IStructuredSelection selecao = (IStructuredSelection)event.getSelection(); if(selecao.isEmpty()) return; Veiculo v = (Veiculo)selecao.getFirstElement(); getSite().getPage().openEditor(new VeiculoEditorInput(v), VeiculoEditor.ID); } catch (PartInitException e) { log.error(e); } } }); table = tvVeiculo.getTable(); table.setLinesVisible(true); table.setHeaderVisible(true); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); formToolkit.paintBordersFor(table); tvVeiculo.setContentProvider(ArrayContentProvider.getInstance()); tvVeiculo.addFilter(filtro); TableViewerColumn tvcModelo = new TableViewerColumn(tvVeiculo, SWT.NONE); tvcModelo.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return ((Veiculo)element).getModelo(); } }); TableColumn tblclmnModelo = tvcModelo.getColumn(); tblclmnModelo.setWidth(100); tblclmnModelo.setText("Modelo"); TableViewerColumn tvcMarca = new TableViewerColumn(tvVeiculo, SWT.NONE); tvcMarca.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return ((Veiculo)element).getMarca(); } }); TableColumn tblclmnMarca = tvcMarca.getColumn(); tblclmnMarca.setWidth(100); tblclmnMarca.setText("Marca"); TableViewerColumn tvcTipo = new TableViewerColumn(tvVeiculo, SWT.NONE); tvcTipo.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return ((Veiculo)element).getTipo(); } }); TableColumn tblclmnTipo = tvcTipo.getColumn(); tblclmnTipo.setWidth(100); tblclmnTipo.setText("Tipo"); TableViewerColumn tvcSituacao = new TableViewerColumn(tvVeiculo, SWT.NONE); tvcSituacao.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return ((Veiculo)element).getStatus(); } }); TableColumn tblclmnSitucao = tvcSituacao.getColumn(); tblclmnSitucao.setWidth(100); tblclmnSitucao.setText("Situa\u00E7\u00E3o"); TableViewerColumn tvcProprietario = new TableViewerColumn(tvVeiculo, SWT.NONE); tvcProprietario.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return ((Veiculo)element).getCliente().getNomeFantasia(); } }); TableColumn tblclmnProprietario = tvcProprietario.getColumn(); tblclmnProprietario.setWidth(100); tblclmnProprietario.setText("Propriet\u00E1rio"); frmListaDeVeculos.getToolBarManager().add(actionAtualizar); frmListaDeVeculos.getToolBarManager().add(actionNovo); frmListaDeVeculos.updateToolBar(); } /** * Create the actions. */ private void createActions() { // Create the actions { actionAtualizar = new Action("Atualizar") { @Override public void run() { tvVeiculo.setInput(service.findAll()); tvVeiculo.refresh(); } }; actionAtualizar.setImageDescriptor(ResourceManager.getPluginImageDescriptor("mecasoft", "assents/funcoes/refresh16.png")); } { actionNovo = new Action("Novo") { @Override public void run() { try { getSite().getPage().openEditor(new VeiculoEditorInput(), VeiculoEditor.ID); } catch (PartInitException e) { log.error(e); } } }; actionNovo.setImageDescriptor(ResourceManager.getPluginImageDescriptor("mecasoft", "assents/funcoes/add16.png")); } } @Override public void setFocus() { actionAtualizar.run(); } }