Package controller

Source Code of controller.Controller$UsunListener

package controller;

import java.util.ArrayList;
import java.util.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableColumn;

import model.Klub;
import model.Pilkarz;
import model.Stadion;
import model.Trener;
import crud.Service;
import utils.ImageRenderer;
import view.Fetchable;
import view.Objectable;
import view.View;
import view.forms.KlubForm;
import view.forms.PilkarzForm;
import view.forms.StadionForm;
import view.forms.TrenerForm;
import view.models.KlubTableModel;
import view.models.PilkarzTableModel;
import view.models.StadionTableModel;
import view.models.TrenerTableModel;

public class Controller {
 
 
  private Service<Trener> trenerService = new Service<Trener>(Trener.class);
  private Service<Stadion> stadionService = new Service<Stadion>(Stadion.class);
  private Service<Klub> klubService = new Service<Klub>(Klub.class);
  private Service<Pilkarz> pilkarzService = new Service<Pilkarz>(Pilkarz.class);
 
  private TrenerTableModel tm = new TrenerTableModel();
  private StadionTableModel sm = new StadionTableModel();
  private KlubTableModel km = new KlubTableModel();
  private PilkarzTableModel pm = new PilkarzTableModel();
 
  private View view;
 
  private static int OPCJA = 0;
 
  TrenerForm trenerForm = new TrenerForm();
  StadionForm stadionForm = new StadionForm();
  KlubForm klubForm = new KlubForm(stadionService.getAll(), trenerService.getAll());
  PilkarzForm pilkarzForm = new PilkarzForm(klubService.getAll());
 
  ActionListener usunListener = new UsunListener<Trener>(trenerService, tm);
  List<String[]> lista = new ArrayList<String[]>();

  public Controller(View view) {
    this.view = view;
   
    tm.addTableModelListener(new AktualizujListener<Trener>(trenerService, tm));
    sm.addTableModelListener(new AktualizujListener<Stadion>(stadionService, sm));
    km.addTableModelListener(new AktualizujListener<Klub>(klubService, km));
    pm.addTableModelListener(new AktualizujListener<Pilkarz>(pilkarzService, pm));
   
    stadionForm.addZapiszListener(new DodajListener<Stadion>(stadionForm, stadionService, sm, stadionForm));
    trenerForm.addZapiszListener(new DodajListener<Trener>(trenerForm, trenerService, tm, trenerForm));
    klubForm.addZapiszListener(new DodajListener<Klub>(klubForm, klubService, km, klubForm));
    pilkarzForm.addZapiszListener(new DodajListener<Pilkarz>(pilkarzForm, pilkarzService, pm, pilkarzForm));
   
    tm.setObjects(trenerService.getAll());
   
    view.addWindowListener(new WindowAdapter() {
       public void windowClosing(WindowEvent e) {
        //trenerService.close();
        //stadionService.close();
         Service.close();
       }
     
    });
    view.addDodajListener(new FormListener());
    view.getJtable().setModel(tm);
    view.addTrenerListener(new AddTrenerListener());
    view.addStadionListener(new AddStadionListener());
    view.addklubListener(new AddKlubListener());
    view.addPilkarzListener(new AddPilkarzListener());
    view.addUsunListener(usunListener);
    view.setVisible(true);
   
    view.getJtable().addMouseListener(new MouseAdapter() {
       @Override
       public void mouseClicked(java.awt.event.MouseEvent evt) {
         if(OPCJA == 3) {
           int row = Controller.this.view.getJtable().rowAtPoint(evt.getPoint());
             int col = Controller.this.view.getJtable().columnAtPoint(evt.getPoint());
             if(col == 3) {
               JFileChooser fc = new JFileChooser();
               int result = fc.showOpenDialog(Controller.this.view);
               if (result == JFileChooser.APPROVE_OPTION) {
                 File file = fc.getSelectedFile();
                      FileInputStream fileInputStream = null;
                        byte[] bFile = new byte[(int) file.length()];

                      try {
                  fileInputStream = new FileInputStream(file);
                  fileInputStream.read(bFile);
                        fileInputStream.close();
                    Controller.this.view.getJtable().getModel().setValueAt(bFile, row, col);

                } catch (FileNotFoundException e1) {
                  // TODO Auto-generated catch block
                  e1.printStackTrace();
                } catch (IOException e2) {
                  // TODO Auto-generated catch block
                  e2.printStackTrace();
                }
               }
             }
         }
       }
    });
  }
 
  class AddTrenerListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
      OPCJA = 0;
      tm.setObjects(trenerService.getAll());
      view.removeUsunListener(usunListener);
      usunListener = new UsunListener<Trener>(trenerService, tm);
      view.addUsunListener(usunListener);
      view.getJtable().setRowHeight(20);
      view.getJtable().setModel(tm);
    }
   
  }
 
  class AddStadionListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
      OPCJA = 1;
      sm.setObjects(stadionService.getAll());
      view.removeUsunListener(usunListener);
      usunListener = new UsunListener<Stadion>(stadionService, sm);
      view.addUsunListener(usunListener);
      view.getJtable().setRowHeight(20);
      view.getJtable().setModel(sm);
    }
   
  }
 
  class AddKlubListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
      OPCJA = 2;
      km.setObjects(klubService.getAll());
      view.removeUsunListener(usunListener);
      usunListener = new UsunListener<Klub>(klubService, km);
      view.addUsunListener(usunListener);
      view.getJtable().setModel(km);
      view.getJtable().setRowHeight(20);
      new ComboBoxColumn<Trener>(3, trenerService);
      new ComboBoxColumn<Stadion>(2, stadionService);
    }
   
  }
 
  class AddPilkarzListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
      OPCJA = 3;
      pm.setObjects(pilkarzService.getAll());
      view.removeUsunListener(usunListener);
      usunListener = new UsunListener<Pilkarz>(pilkarzService, pm);
      view.addUsunListener(usunListener);
      view.getJtable().setModel(pm);
      view.getJtable().setRowHeight(200);
      new ComboBoxColumn<Klub>(2, klubService);
      view.getJtable().getColumnModel().getColumn(3).setCellRenderer(new ImageRenderer());
    }
   
  }
 
  class AktualizujListener<T> implements TableModelListener {
    Service<T> service;
    Fetchable<T> fetch;
   
    public AktualizujListener(Service<T> service, Fetchable<T> fetch) {
      this.service = service;
      this.fetch = fetch;
    }
   
        @Override
        public void tableChanged(TableModelEvent arg0) {
            if (arg0.getType() == TableModelEvent.UPDATE) {
                int id = arg0.getFirstRow();
                T t = fetch.getList().get(id);
                service.dodaj(t);
            }
        }

    }
 
  class FormListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
      // TODO Auto-generated method stub
      if(OPCJA == 0) {
        trenerForm.setVisible(true);
      } else if(OPCJA == 1) {
        stadionForm.setVisible(true);
      } else if(OPCJA == 2) {
        klubForm.setVisible(true);
      } else if(OPCJA == 3) {
        pilkarzForm.setVisible(true);
      }
    }
   
  }
 
  class UsunListener<T> implements ActionListener {
    Service<T> service;
    Fetchable<T> fetch;

   
    public UsunListener(Service<T> service, Fetchable<T> fetch) {
      this.service = service;
      this.fetch = fetch;
    }
   
    @Override
    public void actionPerformed(ActionEvent e) {
      int[] array = view.getJtable().getSelectedRows();
     
            for (int i = 0; i < array.length; i++) {
              T t = fetch.getList().get(array[i] - i);
                fetch.usun(array[i] - i);
                service.usun(t);
            }
     
    }
  }
 
  class DodajListener<T> implements ActionListener {
   
    Objectable<T> objectable;
    Service<T> service;
    Fetchable<T> fetch;
    JDialog jd;
   
    public DodajListener(Objectable<T> objectable,
        Service<T> service,
        Fetchable<T> fetch, JDialog jd) {
      this.objectable = objectable;
      this.service = service;
      this.fetch = fetch;
      this.jd = jd;
    }
   
    @Override
    public void actionPerformed(ActionEvent e) {
      T t = objectable.getObject();
      service.dodaj(t);
      fetch.addRow(t);
      jd.setVisible(false);
    }
  }
 
  class ComboBoxColumn<T> {
    Service<T> service;
   
    public ComboBoxColumn(int columnNr, Service<T> service) {
      this.service = service;
      setUpColumn(columnNr);
    }
   
    public void setUpColumn(int columnNr) {
      TableColumn column = view.getJtable().getColumnModel().getColumn(columnNr);
      JComboBox<T> comboBox = new JComboBox<T>();
      List<T> lista = service.getAll();
          for(T t : lista) {
            comboBox.addItem(t);
          }

          column.setCellEditor(new DefaultCellEditor(comboBox));
         
          //Set up tool tips for the sport cells.
          DefaultTableCellRenderer renderer =
          new DefaultTableCellRenderer();
          renderer.setToolTipText("Click for combo box");
          column.setCellRenderer(renderer);
    }
  }
 
 
 
}

TOP

Related Classes of controller.Controller$UsunListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.