/*
* DiseaseReportPanel.java
*
* Created on August 19, 2008, 4:20 PM
*/
package clips.report.panels;
import beans.report.DiseaseReportMaps;
import cli_fmw.delegate.DelegateLine2;
import clips.delegate.report.DiseaseReportLocal;
import cli_fmw.delegate.report.ReportLocal;
import cli_fmw.delegate.report.ReportSearchLocal;
import cli_fmw.main.ContentStateListener;
import cli_fmw.main.PageContainer;
import cli_fmw.main.PageException;
import cli_fmw.main.Persistentable;
import cli_fmw.report.panels.model.delegate.DelegateTextModel;
import cli_fmw.utils.MessageBox;
import cli_fmw.main.ClipsException;
import cli_fmw.report.panels.model.delegate.DelegateListComboBoxModel;
import cli_fmw.report.panels.model.delegate.DelegateComboboxModel;
import cli_fmw.utils.table_config_states.StateSaver;
import java.awt.EventQueue;
import java.util.ArrayList;
import java.util.Iterator;
/**
*
* @author finder
*/
public class DiseaseReportPanel extends PanelWinthSubTabs implements ContentStateListener, Persistentable {
static final long serialVersionUID = 1L;
DiseaseReportLocal curReport;
// delegate models
DelegateTextModel<DiseaseReportLocal> reportNameModel;
DelegateComboboxModel<DiseaseReportLocal> typeModel;
DelegateListComboBoxModel<DiseaseReportLocal>reportsModel;
DelegateTextModel<DiseaseReportLocal> okudModel;
DelegateTextModel<DiseaseReportLocal> formNumberModel;
DelegateTextModel<DiseaseReportLocal> resolutionDateModel;
DelegateTextModel<DiseaseReportLocal> targetDeaprtamentsModel;
DelegateTextModel<DiseaseReportLocal> targetDatesModel;
DiseaseLinesPanel linesPanel;
static int reportCount = 1;
//TableEditPanel reportTableEditPanel;
public DiseaseReportPanel(PageContainer container) throws ClipsException {
super(container);
initComponents();
initModels();
/*linesPanel = new DiseaseLinesPanel(curReport);
rootTabbedPane.addTab("Ряды", linesPanel);*/
setPanelReport(null, false);
StateSaver.attachTo(this);
}
void initModels(){
try {
reportNameModel = new DelegateTextModel<DiseaseReportLocal>(reportNameField, null) {
static final long serialVersionUID = 1L;
@Override
public void setModelTextChecked(String text) throws ClipsException {
getObject().setName(text);
}
@Override
public String getModelTextChecked() throws ClipsException {
return getObject().getName();
}
};
typeModel = new DelegateComboboxModel<DiseaseReportLocal>(typeComboBox, false) {
static final long serialVersionUID = 1L;
@Override
public void onContentStateChanged() {
}
@Override
public int getSizeImp() {
return DiseaseReportMaps.getReportTypes().length;
}
@Override
public Object getElementAtImp(int index) {
return DiseaseReportMaps.getReportTypes()[index];
}
@Override
public Object getSelectedItemImp() throws ClipsException {
return getElementAtImp(getObject().getType());
}
@Override
public void setSelectedItemImp(Object anId) throws ClipsException {
getObject().setType(getid(anId));
}
};
ArrayList<ReportLocal> reports = new ReportSearchLocal(getAuditManager()).getReports();
for (Iterator<ReportLocal> it = reports.iterator(); it.hasNext();) {
ReportLocal reportLocal = it.next();
if (reportLocal.isSpecialReport()) {
it.remove();
}
}
reportsModel = new DelegateListComboBoxModel<DiseaseReportLocal>(reports, reportsComboBox, false) {
static final long serialVersionUID = 1L;
@Override
public Object getSelectedItemImp() throws ClipsException {
return getObject().getReport();
}
@Override
public void setSelectedItemImp(Object anItem) throws ClipsException {
getObject().setReport((ReportLocal) anItem);
}
};
okudModel = new DelegateTextModel<DiseaseReportLocal>(okudTextField, null) {
static final long serialVersionUID = 1L;
@Override
public void setModelTextChecked(String text) throws ClipsException {
getObject().setOkudFormCode(text);
}
@Override
protected String getModelTextChecked() throws ClipsException {
return getObject().getOkudFormCode();
}
};
formNumberModel = new DelegateTextModel<DiseaseReportLocal>(formNumberTextField, null) {
static final long serialVersionUID = 1L;
@Override
protected void setModelTextChecked(String text) throws ClipsException {
getObject().setFormNumber(text);
}
@Override
protected String getModelTextChecked() throws ClipsException {
return getObject().getFormNumber();
}
};
resolutionDateModel = new DelegateTextModel<DiseaseReportLocal>(resolutionDateTextField, null) {
static final long serialVersionUID = 1L;
@Override
protected void setModelTextChecked(String text) throws ClipsException {
getObject().setResolutionDateNumber(text);
}
@Override
protected String getModelTextChecked() throws ClipsException {
return getObject().getResolutionDateNumber();
}
};
targetDeaprtamentsModel = new DelegateTextModel<DiseaseReportLocal>(targetDeaprtamentsTextArea, null) {
static final long serialVersionUID = 1L;
@Override
protected void setModelTextChecked(String text) throws ClipsException {
getObject().setTargetDeaprtaments(text);
}
@Override
protected String getModelTextChecked() throws ClipsException {
return getObject().getTargetDeaprtaments();
}
};
targetDatesModel = new DelegateTextModel<DiseaseReportLocal>(targetDatesTextArea, null) {
static final long serialVersionUID = 1L;
@Override
protected void setModelTextChecked(String text) throws ClipsException {
getObject().setTargetDates(text);
}
@Override
protected String getModelTextChecked() throws ClipsException {
return getObject().getTargetDates();
}
};
} catch (ClipsException ex) {
MessageBox.showException(ex);
}
}
/** 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() {
jPanel1 = new javax.swing.JPanel();
jPanel8 = new javax.swing.JPanel();
jPanel13 = new javax.swing.JPanel();
jLabel6 = new javax.swing.JLabel();
okudTextField = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
formNumberTextField = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
resolutionDateTextField = new javax.swing.JTextField();
jPanel9 = new javax.swing.JPanel();
jSplitPane1 = new javax.swing.JSplitPane();
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
targetDeaprtamentsTextArea = new javax.swing.JTextArea();
jLabel2 = new javax.swing.JLabel();
jPanel4 = new javax.swing.JPanel();
jScrollPane5 = new javax.swing.JScrollPane();
targetDatesTextArea = new javax.swing.JTextArea();
jLabel3 = new javax.swing.JLabel();
jPanel10 = new javax.swing.JPanel();
jPanel5 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
reportNameField = new javax.swing.JTextField();
jPanel11 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
typeComboBox = new javax.swing.JComboBox();
jPanel12 = new javax.swing.JPanel();
reportsComboBox = new javax.swing.JComboBox();
jLabel5 = new javax.swing.JLabel();
setLayout(new java.awt.BorderLayout());
jPanel1.setLayout(new java.awt.BorderLayout());
jPanel8.setLayout(new java.awt.BorderLayout());
jLabel6.setText("Код формы по ОКУД");
okudTextField.setText("okud");
jLabel7.setText("Номер формы");
formNumberTextField.setText("formcode");
jLabel8.setText("Дата и номер постановления");
resolutionDateTextField.setText("resolutionDate");
javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
jPanel13.setLayout(jPanel13Layout);
jPanel13Layout.setHorizontalGroup(
jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel13Layout.createSequentialGroup()
.addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel13Layout.createSequentialGroup()
.addComponent(jLabel6)
.addGap(5, 5, 5)
.addComponent(okudTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(4, 4, 4)
.addComponent(jLabel7)
.addGap(5, 5, 5)
.addComponent(formNumberTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel13Layout.createSequentialGroup()
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(resolutionDateTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(255, Short.MAX_VALUE))
);
jPanel13Layout.setVerticalGroup(
jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel13Layout.createSequentialGroup()
.addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel13Layout.createSequentialGroup()
.addGap(5, 5, 5)
.addComponent(jLabel6))
.addGroup(jPanel13Layout.createSequentialGroup()
.addGap(5, 5, 5)
.addComponent(jLabel7))
.addComponent(formNumberTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(okudTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(resolutionDateTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel8)))
);
jPanel8.add(jPanel13, java.awt.BorderLayout.PAGE_START);
jPanel9.setLayout(new java.awt.BorderLayout());
jSplitPane1.setDividerLocation(390);
jPanel2.setLayout(new java.awt.BorderLayout());
targetDeaprtamentsTextArea.setColumns(20);
targetDeaprtamentsTextArea.setLineWrap(true);
targetDeaprtamentsTextArea.setRows(5);
jScrollPane1.setViewportView(targetDeaprtamentsTextArea);
jPanel2.add(jScrollPane1, java.awt.BorderLayout.CENTER);
jLabel2.setText("Представляют:");
jPanel2.add(jLabel2, java.awt.BorderLayout.PAGE_START);
jSplitPane1.setLeftComponent(jPanel2);
jPanel4.setLayout(new java.awt.BorderLayout());
jScrollPane5.setPreferredSize(new java.awt.Dimension(100, 87));
targetDatesTextArea.setColumns(10);
targetDatesTextArea.setLineWrap(true);
targetDatesTextArea.setRows(5);
jScrollPane5.setViewportView(targetDatesTextArea);
jPanel4.add(jScrollPane5, java.awt.BorderLayout.CENTER);
jLabel3.setText("Сроки прeдставления:");
jPanel4.add(jLabel3, java.awt.BorderLayout.PAGE_START);
jSplitPane1.setRightComponent(jPanel4);
jPanel9.add(jSplitPane1, java.awt.BorderLayout.CENTER);
jPanel8.add(jPanel9, java.awt.BorderLayout.CENTER);
jPanel1.add(jPanel8, java.awt.BorderLayout.CENTER);
jPanel10.setLayout(new java.awt.GridLayout(0, 1, 0, 2));
jPanel5.setLayout(new java.awt.BorderLayout(2, 2));
jLabel1.setText("Имя отчета");
jPanel5.add(jLabel1, java.awt.BorderLayout.WEST);
jPanel5.add(reportNameField, java.awt.BorderLayout.CENTER);
jPanel10.add(jPanel5);
jPanel11.setLayout(new java.awt.BorderLayout(2, 2));
jLabel4.setText("Тип отчета");
jPanel11.add(jLabel4, java.awt.BorderLayout.WEST);
typeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
jPanel11.add(typeComboBox, java.awt.BorderLayout.CENTER);
jPanel10.add(jPanel11);
jPanel12.setLayout(new java.awt.BorderLayout(2, 2));
reportsComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
jPanel12.add(reportsComboBox, java.awt.BorderLayout.CENTER);
jLabel5.setText("Шаблон отчета");
jPanel12.add(jLabel5, java.awt.BorderLayout.LINE_START);
jPanel10.add(jPanel12);
jPanel1.add(jPanel10, java.awt.BorderLayout.PAGE_START);
add(jPanel1, java.awt.BorderLayout.CENTER);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JTextField formNumberTextField;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel10;
private javax.swing.JPanel jPanel11;
private javax.swing.JPanel jPanel12;
private javax.swing.JPanel jPanel13;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel8;
private javax.swing.JPanel jPanel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane5;
private javax.swing.JSplitPane jSplitPane1;
private javax.swing.JTextField okudTextField;
private javax.swing.JTextField reportNameField;
private javax.swing.JComboBox reportsComboBox;
private javax.swing.JTextField resolutionDateTextField;
private javax.swing.JTextArea targetDatesTextArea;
private javax.swing.JTextArea targetDeaprtamentsTextArea;
private javax.swing.JComboBox typeComboBox;
// End of variables declaration//GEN-END:variables
boolean setPanelReport(DiseaseReportLocal report, boolean queryUser){
if (curReport != null){
curReport.removeContentStateListener(this);
}
try {
curReport = report;
clearAllSubPage();
if (report != null) {
addSubTab(new PanelTableEdit(getContainer(), report));
}
} catch (ClipsException ex) {
MessageBox.showException(ex);
}
reportNameModel.setObject(curReport);
reportsModel.setObject(curReport);
typeModel.setObject(curReport);
okudModel.setObject(curReport);
formNumberModel.setObject(curReport);
resolutionDateModel.setObject(curReport);
targetDeaprtamentsModel.setObject(curReport);
targetDatesModel.setObject(curReport);
updateButtons();
return true;
}
@Override
public void contentStateChanged() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
updateButtons();
}
});
}
void updateButtons(){
// boolean removeReportButtonEn = false, addButtonEn = false;
/* if (curReport != null){
removeReportButtonEn = true;
addRowButtonEn = true;
moveUpButtonEn = canMoveLines(true);
moveDownButtonEn = canMoveLines(false);
}*/
//removeReportButton.setEnabled(removeReportButtonEn);
}
@Override
public String getPageTitle() {
return "Заголовок";
}
@Override
public DelegateLine2 getDelegate() {
return curReport;
}
@Override
public boolean isDirty() {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void save() throws ClipsException {
/*if (reportTableEditPanel != null) {
reportTableEditPanel.onTableChange();
}*/
}
@Override
public void restore() {
DiseaseReportLocal rep = curReport;
setPanelReport(null, true);
setPanelReport(rep, false);
}
@Override
public void beforeClose() {
setPanelReport(null, false);
super.beforeClose();
}
}