Package clips.report.panels

Source Code of clips.report.panels.PanelDiseaseReportsList

/*
* ListDiseaseReportsPanel.java
*
* Created on September 22, 2008, 4:57 PM
*/

package clips.report.panels;

import cli_fmw.delegate.DelegateLine2;
import clips.delegate.report.DiseaseReportLocal;
import clips.delegate.report.DiseaseReportSearchLocal;
import cli_fmw.main.ClipsException;
import cli_fmw.main.MainWindow;
import cli_fmw.main.PageContainer;
import cli_fmw.main.Persistentable;
import cli_fmw.main.Printable;
import cli_fmw.report.implemenatation.ReportPreview;
import cli_fmw.report.panels.model.delegate.DelegateTableModel;
import cli_fmw.utils.MessageBox;
import cli_fmw.utils.ModalDialog;
import cli_fmw.utils.table_config_states.StateSaver;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JTabbedPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperPrint;

/**
*
* @author  finder
*/
public class PanelDiseaseReportsList extends PanelPageContainer implements Persistentable, Printable, PageContainer {
  private static final long serialVersionUID = 1L;
  DelegateTableModel<DiseaseReportLocal>        tReportListModel;
  DiseaseReportLocal                  curReport;
  DiseaseReportPanel                  diseasePanel;
 
  /** Creates new form ListDiseaseReportsPanel
   * @param container
   * @throws ClipsException
   */
  public PanelDiseaseReportsList(PageContainer container) throws ClipsException {
    super(container);
    initComponents();
    initModels();
    StateSaver.attachTo(this);
  }
 
 
  void initModels() throws ClipsException{
    ArrayList<DiseaseReportLocal>      reports = new DiseaseReportSearchLocal(getAuditManager()).getReports();
    tReportListModel = new DelegateTableModel<DiseaseReportLocal>(reports) {
      private static final long serialVersionUID = 1L;
      @Override
      public Object getColumnValue(DiseaseReportLocal delegate, int column) throws ClipsException {
        switch (column){
          case 0:
            return delegate.getFormNumber();
          case 1:
            return delegate.getName();
          case 2:
            return delegate.getResolutionDateNumber();
        }
        throw new RuntimeException("Вау, вылетело!");
      }

      @Override
      public int getColumnCount() {
        return 3;
      }

      @Override
      public String getColumnName(int column) {
        switch (column){
          case 0:
            return "Код";
          case 1:
            return "Имя отчета";
          case 2:
            return "Постановление";
        }
        throw new RuntimeException("Вау, вылетело!");
      }     
    };
    tReportList.setModel(tReportListModel);
    tReportList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
   
    tReportList.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

      @Override
      public void valueChanged(ListSelectionEvent e) {
        int        row = tReportList.getSelectedRowSorted();
        DiseaseReportLocal  newReport = null;
        if (row >= 0 && row < tReportListModel.getRowCount()) {
          newReport = tReportListModel.get(row);
        }
        if (setPanelReport(newReport, true)){
          return;
        }
        int        old = tReportListModel.indexOf(curReport);
        tReportList.getSelectionModel().addSelectionInterval(old, old);
      }
    });
  }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        tpReportTabs = new javax.swing.JTabbedPane();
        pReportList = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        bAdd = new javax.swing.JButton();
        bRemove = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        tReportList = new cli_fmw.utils.sorted_table.SortedTable();

        setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        setLayout(new java.awt.BorderLayout());

        pReportList.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
        pReportList.setLayout(new java.awt.BorderLayout(0, 4));

        bAdd.setText("Добавить");
        bAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bAddActionPerformed(evt);
            }
        });

        bRemove.setText("Удалить");
        bRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bRemoveActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(bAdd)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(bRemove)
                .addGap(152, 152, 152))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(bAdd)
                .addComponent(bRemove))
        );

        pReportList.add(jPanel1, java.awt.BorderLayout.PAGE_START);

        jScrollPane1.setViewportView(tReportList);

        pReportList.add(jScrollPane1, java.awt.BorderLayout.CENTER);

        tpReportTabs.addTab("Список", pReportList);

        add(tpReportTabs, java.awt.BorderLayout.CENTER);
    }// </editor-fold>//GEN-END:initComponents

private void bAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bAddActionPerformed
  DiseaseReportLocal      newR = new DiseaseReportLocal(getAuditManager());
  if (setPanelReport(null, true)){
    tReportListModel.add(newR);
    tReportList.setRowSelectionInterval(tReportListModel.getRowCount() - 1, tReportListModel.getRowCount() - 1);
  }
}//GEN-LAST:event_bAddActionPerformed

private void bRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bRemoveActionPerformed
  remove();
}//GEN-LAST:event_bRemoveActionPerformed


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton bAdd;
    private javax.swing.JButton bRemove;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JPanel pReportList;
    private cli_fmw.utils.sorted_table.SortedTable tReportList;
    private javax.swing.JTabbedPane tpReportTabs;
    // End of variables declaration//GEN-END:variables
 
  boolean setPanelReport(DiseaseReportLocal report, boolean queryUser){
    if (curReport != report){
      if (curReport != null){
        if (curReport.isDirty() && queryUser){
          int  res = MessageBox.showConfirmYesNoCancel(MessageBox.C_SAVE_CHANGES);
          if (res == MessageBox.ANSWER_YES){
            try {
              save();
            } catch (ClipsException ex) {
              MessageBox.showException(ex);
              return false;
            }
          }
          else if (res == MessageBox.ANSWER_NO){
            restore();
            return true;
          }
          else {
            return false;
          }
        }
        if (curReport != null){
          curReport.removeContentStateListener(getContainer());
        }
      }
      curReport = report;
      clearAllSubPage();
      if (curReport != null){
        curReport.addContentStateListener(getContainer());
        if (diseasePanel == null) {
          try {
            diseasePanel = new DiseaseReportPanel(this);
          } catch (ClipsException ex) {
            MessageBox.showException(ex);
          }
        }
        if (diseasePanel != null) {
          diseasePanel.setPanelReport(curReport, false);
          addSubTab(diseasePanel);
        }
      }
      else{
        if (diseasePanel != null) {
          diseasePanel.setPanelReport(null, false);
          tpReportTabs.remove(diseasePanel);
        }
      }
      tpReportTabs.revalidate();
    }
   
    getContainer().contentStateChanged();
    return true;
  }
 
  @Override
  public String getPageTitle() {
    return "Отчеты по заболеваемости";
  }

  @Override
  public DelegateLine2 getDelegate() {
    return null;
  }

  @Override
  public boolean isDirty() {
    if (curReport != null) {
      return curReport.isDirty();
    }
    else {
      return false;
    }
  }

  @Override
  public void save() throws ClipsException {
    if (diseasePanel != null) {
      diseasePanel.save();
    }
    curReport.save1();
  }

  @Override
  public void restore() {
    if (curReport != null){
      if (curReport.isNewlyCreated()){
        remove();
      }
      else{
        curReport.restore();
      }
    }
   
    if (diseasePanel != null) {
      diseasePanel.restore();
    }
  }

  public void remove(){
    if (curReport != null){
      if (curReport.isNewlyCreated()){
        DiseaseReportLocal    tmp = curReport;
        setPanelReport(null, false);
        tReportListModel.remove(tmp);
      }
      else {
        int    res = MessageBox.showConfirmYesNo(MessageBox.C_DEL_OBJECT);
        if (res == MessageBox.ANSWER_YES){
          try {
            DiseaseReportLocal tmp = curReport;
            setPanelReport(null, false);
            tmp.remove();
            tReportListModel.remove(tmp);
          } catch (ClipsException ex) {
            MessageBox.showException(ex);
          }
        }
      }
    }
  }
 
  @Override
  public boolean readyForPrint() {
    return curReport != null;
  }

  @Override
  public void print() {
    if (curReport == null) {
      return;
    }
   
    if (isDirty()){
      int  res = MessageBox.showConfirmYesNoCancel(MessageBox.C_SAVE_CHANGES);
      if (res == MessageBox.ANSWER_YES){
        try {
          save();
        } catch (ClipsException ex) {
          MessageBox.showException(ex);
          return;
        }
      }
      else{
        return;
      }
    }
     
    YearsSelectDialog      dlg = new YearsSelectDialog(MainWindow.mainWindow);
    dlg.setVisible(true);
    if (dlg.getDlgResult() == ModalDialog.DLG_OK){
      try {
        JasperPrint        report = curReport.getReport(dlg.getYear());
        ReportPreview.showReport(report);
      } catch (JRException ex) {
        MessageBox.showExceptionOnly(ex);
      } catch (ClipsException ex) {
        MessageBox.showException(ex);
      }
    }
  }

  @Override
  public void contentStateChanged() {
  }

  @Override
  protected JTabbedPane getTabbedPane() {
    return tpReportTabs;
  }
}
TOP

Related Classes of clips.report.panels.PanelDiseaseReportsList

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.