/*
* PanelEditPacketTemplates.java
*
* Created on 17 Июнь 2008 г., 16:23
*/
package clips.directory.editors.servicePacketTemplate;
import cli_fmw.delegate.DelegateLine2;
import beans.directory.packet.entity.PacketTemplateDetails;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import clips.delegate.directory.complex.DirectoryPacketTemplate;
import clips.delegate.directory.complex.DirectoryPacketTemplateItem;
import cli_fmw.main.ClipsException;
import cli_fmw.main.MainWindow;
import cli_fmw.main.PageContainer;
import cli_fmw.main.PageGeneric;
import cli_fmw.main.PrintCreators;
import cli_fmw.main.Printable;
import cli_fmw.report.TableReportOptions;
import cli_fmw.utils.MessageBox;
import cli_fmw.utils.table_config_states.StateSaver;
import cli_fmw.utils.table_config_states.TableState;
import clips.delegate.directory.simple.medexam.DirectoryMedexamType;
import clips.login.UserInfo;
import javax.swing.DefaultCellEditor;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.ListSelectionModel;
import javax.swing.table.TableColumn;
/**
* панель редактирования справочника "пакет услуг"
* @author lacoste
*/
public class PanelEditPacketTemplates extends PageGeneric implements Printable {
private DirectoryPacketTemplate directory;
/** Creates new form PanelEditPacketTemplates */
public PanelEditPacketTemplates(PageContainer container) throws ClipsException {
super(container);
initComponents();
directory = (DirectoryPacketTemplate) DirectoryLocator.getDirectory(DirectoryPacketTemplate.class, false);
tabPacketTemplates.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
setTable();
resizeColumn();
StateSaver.attachTo(this);
}
private void setTable() throws ClipsException {
tabPacketTemplates.setModel(new TableModelEditPacketTemplates(directory));
DirectoryMedexamType dirTypes = DirectoryLocator.getDirectory(DirectoryMedexamType.class);
DefaultComboBoxModel modelTypes = new DefaultComboBoxModel(dirTypes.toArray());
JComboBox comboType = new JComboBox(modelTypes);
tabPacketTemplates.getColumnModel().getColumn(TableModelEditPacketTemplates.COL_TYPE).setCellEditor(new DefaultCellEditor(comboType));
}
private void resizeColumn() {
TableState state = new TableState();
state.setPreferredWidth(TableModelEditPacketTemplates.COL_ID, 2);
state.setPreferredWidth(TableModelEditPacketTemplates.COL_TITLE, 7);
state.setPreferredWidth(TableModelEditPacketTemplates.COL_TYPE, 5);
state.setPreferredWidth(TableModelEditPacketTemplates.COL_ITEMS, 15);
state.setPreferredWidth(TableModelEditPacketTemplates.COL_DIRTY, 2);
StateSaver.setDefaultState(this, tabPacketTemplates, state);
}
/** 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() {
jPanel1 = new javax.swing.JPanel();
btAdd = new javax.swing.JButton();
btDel = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
tabPacketTemplates = new cli_fmw.utils.sorted_table.SortedTable();
setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
setLayout(new java.awt.BorderLayout());
jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
btAdd.setText("Создать");
btAdd.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btAddActionPerformed(evt);
}
});
jPanel1.add(btAdd);
btDel.setText("Удалить");
btDel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btDelActionPerformed(evt);
}
});
jPanel1.add(btDel);
add(jPanel1, java.awt.BorderLayout.SOUTH);
jScrollPane1.addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentResized(java.awt.event.ComponentEvent evt) {
jScrollPane1ComponentResized(evt);
}
});
tabPacketTemplates.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabPacketTemplatesMouseClicked(evt);
}
});
tabPacketTemplates.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
tabPacketTemplatesMouseMoved(evt);
}
});
jScrollPane1.setViewportView(tabPacketTemplates);
add(jScrollPane1, java.awt.BorderLayout.CENTER);
}// </editor-fold>//GEN-END:initComponents
private void btAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAddActionPerformed
try {
PacketTemplateDetails d = new PacketTemplateDetails();
d.id = 0;
d.title = "Введите название пакета";
d.lpuID = UserInfo.get().getCollaborator().getLpu().getID();
DirectoryPacketTemplateItem item = new DirectoryPacketTemplateItem(d);
directory.getItems().append(item);
setTable();
} catch (ClipsException ex) {
MessageBox.showException(ex);
}
}//GEN-LAST:event_btAddActionPerformed
private void btDelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btDelActionPerformed
try {
int row = tabPacketTemplates.getSelectedRowSorted();
if (row < 0) {
return;
}
DirectoryPacketTemplateItem item = ((TableModelEditPacketTemplates) tabPacketTemplates.getModel()).getItem(row);
directory.getItems().remove(item);
//directory = (DirectoryPacketTemplate) DirectoryLocator.getDirectory(DirectoryPacketTemplate.class, true);
setTable();
} catch (ClipsException ex) {
MessageBox.showException(ex);
}
}//GEN-LAST:event_btDelActionPerformed
private void jScrollPane1ComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_jScrollPane1ComponentResized
}//GEN-LAST:event_jScrollPane1ComponentResized
private void tabPacketTemplatesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tabPacketTemplatesMouseClicked
if (evt.getClickCount() < 2) {
return;
}
int col = tabPacketTemplates.columnAtPoint(evt.getPoint());
TableColumn coll = tabPacketTemplates.getColumnModel().getColumn(col);
col = coll.getModelIndex();
int row = tabPacketTemplates.getSelectedRowSorted();
try {
DirectoryPacketTemplateItem packet = directory.getFilteredItems(UserInfo.get().getCollaborator().getLpu()).get(row);
if (packet.getID() == 0) {
return;
}
DlgEditTemplateItems dlg = new DlgEditTemplateItems(MainWindow.mainWindow, packet, getAuditManager());
dlg.setVisible(true);
setTable();
} catch (ClipsException e) {
MessageBox.showException(e);
}
}//GEN-LAST:event_tabPacketTemplatesMouseClicked
private void tabPacketTemplatesMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tabPacketTemplatesMouseMoved
int col = tabPacketTemplates.columnAtPoint(evt.getPoint());
TableColumn coll = tabPacketTemplates.getColumnModel().getColumn(col);
col = coll.getModelIndex();
if (col == TableModelEditPacketTemplates.COL_ITEMS) {
tabPacketTemplates.setToolTipText("Двойной клик, чтобы редактировать состав пакета");
}
else {
tabPacketTemplates.setToolTipText(null);
}
}//GEN-LAST:event_tabPacketTemplatesMouseMoved
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btAdd;
private javax.swing.JButton btDel;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private cli_fmw.utils.sorted_table.SortedTable tabPacketTemplates;
// End of variables declaration//GEN-END:variables
@Override
public String getPageTitle() {
return "Редактор пакетов услуг";
}
@Override
public DelegateLine2 getDelegate() {
return null;
}
@Override
public boolean readyForPrint() {
return true;
}
@Override
public void print() {
if (readyForPrint()) {
String title = "Шаблоны пакетов услуг";
TableReportOptions ops = new TableReportOptions(TableReportOptions.PageOrentation.horizontal);
PrintCreators.createGeneratedReport(title, ops, null, null, tabPacketTemplates.getModel(), getClass());
}
}
}