/*
* PanelDirectoryAdmin.java
*
* Created on 13 �?юнь 2008 г., 11:10
*/
package clips.directory.tempMapper;
import beans.directory.danger.TempMapperBean;
import beans.directory.danger.TempMapperBeanRemote;
import beans.directory.danger.TempMapperChunk;
import beans.directory.service.entity.ServiceGroup;
import cli_fmw.delegate.DelegateLine2;
import cli_fmw.delegate.SharedBean;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import cli_fmw.main.ClipsException;
import cli_fmw.main.PageContainer;
import cli_fmw.main.PageGeneric;
import cli_fmw.utils.MessageBox;
import cli_fmw.utils.SelectorEditableExceptional;
import cli_fmw.utils.table_config_states.StateSaver;
import cli_fmw.utils.table_config_states.TableState;
import clips.delegate.directory.filtered.DirectoryService;
import clips.delegate.directory.filtered.DirectoryServiceItem;
import clips.delegate.directory.simple.speciality.DirectorySpeciality;
import java.util.ArrayList;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
/**
*
* @author vip
*/
public class PanelTempMapperEditor extends PageGeneric {
private SharedBean<TempMapperBeanRemote> bean =
new SharedBean<TempMapperBeanRemote>(TempMapperBean.class.getSimpleName());
JComboBox jComboService;
JComboBox jComboSpec;
ArrayList<TempMapperChunk> tempMapperList;
/** Creates new form PanelDirectoryAdmin */
public PanelTempMapperEditor(PageContainer container) throws ClipsException {
super(container);
initComponents();
//существующие итемы
try {
tempMapperList = bean.get().getTempMapperList();
} catch (Exception ex) {
bean.clear();
throw new ClipsException("Не удалось прогрузить TempMapper", ex);
}
initCombo();
sortedTable1.setModel(new TableModelTempMapper(tempMapperList));
sortedTable1.getColumnModel().getColumn(TableModelTempMapper.COL_SERVICE2).setCellEditor(new DefaultCellEditor(jComboService));
sortedTable1.getColumnModel().getColumn(TableModelTempMapper.COL_SPEC).setCellEditor(new DefaultCellEditor(jComboSpec));
resizeTable();
StateSaver.attachTo(this);
}
private void resizeTable() {
TableState state = new TableState();
state.setPreferredWidth(TableModelTempMapper.COL_SERVICE1, 40);
state.setPreferredWidth(TableModelTempMapper.COL_SERVICE2, 30);
state.setPreferredWidth(TableModelTempMapper.COL_SPEC, 20);
StateSaver.setDefaultState(this, sortedTable1, state);
}
private void initCombo() throws ClipsException {
DirectoryService dirService = DirectoryLocator.getDirectory(DirectoryService.class);
ArrayList<DirectoryServiceItem> serviceList = new ArrayList<DirectoryServiceItem>();
//nullitem
serviceList.add(dirService.getItemFromID(0));
//нужные итемы
SelectorEditableExceptional<DirectoryServiceItem> servItems = dirService.getItems();
for (int i = 0; i < servItems.size(); i++) {
DirectoryServiceItem item = servItems.get(i);
if (item.getID() != 0 && !item.getCode().trim().isEmpty()
&& item.getGroup().getID() == ServiceGroup.SERVICE_GROUP_VISIT) {
serviceList.add(item);
}
}
for (int i = 0; i < tempMapperList.size(); i++) {
TempMapperChunk d = tempMapperList.get(i);
DirectoryServiceItem item = dirService.getItemFromID(d.service1ID);
serviceList.add(item);
}
jComboService = new JComboBox(serviceList.toArray());
DirectorySpeciality dirSpec = DirectoryLocator.getDirectory(DirectorySpeciality.class);
jComboSpec = new JComboBox(dirSpec.toArray(true));
}
/** 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.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
sortedTable1 = new cli_fmw.utils.sorted_table.SortedTable();
jPanel1 = new javax.swing.JPanel();
btConfirm = new javax.swing.JButton();
setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
setLayout(new java.awt.BorderLayout());
sortedTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
}
));
jScrollPane1.setViewportView(sortedTable1);
add(jScrollPane1, java.awt.BorderLayout.CENTER);
jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
btConfirm.setText("Применить");
btConfirm.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btConfirmActionPerformed(evt);
}
});
jPanel1.add(btConfirm);
add(jPanel1, java.awt.BorderLayout.SOUTH);
}// </editor-fold>//GEN-END:initComponents
private void btConfirmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btConfirmActionPerformed
try {
bean.get().update(tempMapperList);
} catch (Exception ex) {
bean.clear();
MessageBox.showException(ex);
}
}//GEN-LAST:event_btConfirmActionPerformed
//простые справочники
//типы анализов и осмотров
@Override
public String getPageTitle() {
return "Редактор TempMapper";
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btConfirm;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private cli_fmw.utils.sorted_table.SortedTable sortedTable1;
// End of variables declaration//GEN-END:variables
@Override
public DelegateLine2 getDelegate() {
return null;
}
}