/*
* PanelEditWorkTypes.java
*
* Created on 5 Июнь 2008 г., 10:23
*/
package clips.directory.editors.workTypes;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import clips.delegate.directory.complex.DirectoryWorkTypeItem;
import clips.delegate.directory.complex.DirectoryWorkType;
import cli_fmw.delegate.DelegateLine2;
import beans.directory.worktypes.entities.WorkTypeDetails;
import cli_fmw.main.ClipsException;
import cli_fmw.main.DirectoryItemNotFoundException;
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.ModalDialog;
import cli_fmw.utils.Selector;
import cli_fmw.utils.table_config_states.StateSaver;
import cli_fmw.utils.table_config_states.TableState;
import clips.delegate.directory.simple.receptionType.DirectoryReceptionType;
import clips.delegate.directory.simple.receptionType.DirectoryReceptionTypeItem;
import java.awt.Color;
import javax.swing.JComboBox;
import javax.swing.ListSelectionModel;
import javax.swing.table.TableColumn;
/**
* редактор справочника WorkTypes...
* @author lacoste
*/
public class PanelEditWorkTypes extends PageGeneric implements Printable {
private DirectoryWorkType directory;
private JComboBox box;
/** Creates new form PanelEditWorkTypes */
public PanelEditWorkTypes(PageContainer container) throws ClipsException {
super(container);
initComponents();
directory = DirectoryLocator.getDirectory(DirectoryWorkType.class, false);
tabWorkTypes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
box = new JComboBox();
DirectoryReceptionType recTypeDir = DirectoryLocator.getDirectory(DirectoryReceptionType.class);
Selector<DirectoryReceptionTypeItem> items = recTypeDir.getItems();
for (int i = 0; i < items.size(); i++) {
DirectoryReceptionTypeItem item = items.get(i);
box.addItem(item);
}
setTable();
resizeColumn();
StateSaver.attachTo(this);
}
private void setTable() throws ClipsException {
tabWorkTypes.setModel(new TableModelEditWorkTypes(directory));
tabWorkTypes.setDefaultRenderer(Object.class, new TableCellRendererWorkTypes());
tabWorkTypes.getColumnModel().getColumn(TableModelEditWorkTypes.COL_HIGHLIGHT).setCellEditor(new TableColorEditorWorkTypes());
tabWorkTypes.getColumnModel().getColumn(TableModelEditWorkTypes.COL_SHADOW).setCellEditor(new TableColorEditorWorkTypes());
}
private void resizeColumn() {
TableState state = new TableState();
state.setPreferredWidth(TableModelEditWorkTypes.COL_ID, 2);
state.setPreferredWidth(TableModelEditWorkTypes.COL_TITLE, 8);
state.setPreferredWidth(TableModelEditWorkTypes.COL_AVAILIABLE, 5);
state.setPreferredWidth(TableModelEditWorkTypes.COL_CANBEOVERLAPPED,5);
state.setPreferredWidth(TableModelEditWorkTypes.COL_HIGHLIGHT, 5);
state.setPreferredWidth(TableModelEditWorkTypes.COL_SHADOW, 5);
state.setPreferredWidth(TableModelEditWorkTypes.COL_TIME, 5);
StateSaver.setDefaultState(this, tabWorkTypes, 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() {
jScrollPane1 = new javax.swing.JScrollPane();
tabWorkTypes = new cli_fmw.utils.sorted_table.SortedTable();
jPanel1 = new javax.swing.JPanel();
btAdd = new javax.swing.JButton();
btDel = new javax.swing.JButton();
jScrollPane1.addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentResized(java.awt.event.ComponentEvent evt) {
jScrollPane1ComponentResized(evt);
}
});
tabWorkTypes.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabWorkTypesMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tabWorkTypes);
jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
btAdd.setText("Добавить");
btAdd.setPreferredSize(new java.awt.Dimension(95, 34));
btAdd.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btAddActionPerformed(evt);
}
});
jPanel1.add(btAdd);
btDel.setText("Удалить");
btDel.setPreferredSize(new java.awt.Dimension(95, 34));
btDel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btDelActionPerformed(evt);
}
});
jPanel1.add(btDel);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 525, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 525, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 273, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
}// </editor-fold>//GEN-END:initComponents
private void jScrollPane1ComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_jScrollPane1ComponentResized
}//GEN-LAST:event_jScrollPane1ComponentResized
private void btAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAddActionPerformed
try {
WorkTypeDetails d = new WorkTypeDetails();
d.colorHightlight = new Color(255, 255, 255);
d.colorShadow = new Color(255, 255, 255);
d.availiable = true;
d.canBeOverlapped = true;
d.id = 0;
d.title = "Введите название";
directory.getItems().append(new DirectoryWorkTypeItem(d));
setTable();
} catch (ClipsException e) {
MessageBox.showException(e);
}
}//GEN-LAST:event_btAddActionPerformed
private void btDelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btDelActionPerformed
try {
int k = tabWorkTypes.getSelectedRowSorted();
if (k > -1) {
directory.getItems().remove(k);
}
directory = DirectoryLocator.getDirectory(DirectoryWorkType.class, true);
setTable();
} catch(ClipsException e) {
MessageBox.showException(e);
}
}//GEN-LAST:event_btDelActionPerformed
private void tabWorkTypesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tabWorkTypesMouseClicked
// try {
if (evt.getClickCount() < 2) {
return;
}
int col = tabWorkTypes.columnAtPoint(evt.getPoint());
TableColumn coll = tabWorkTypes.getColumnModel().getColumn(col);
col = coll.getModelIndex();
if (col == TableModelEditWorkTypes.COL_TIME) {
int row = tabWorkTypes.getSelectedRowSorted();
if (row > -1) {
DirectoryWorkTypeItem item = directory.getItems().get(row);
DlgWorkTypeSetTime dlg = new DlgWorkTypeSetTime(MainWindow.mainWindow, item, getAuditManager());
dlg.setVisible(true);
if (dlg.getDlgResult() == ModalDialog.DLG_OK) {
tabWorkTypes.updateUI();
}
}
}
/* } catch (DirectoryItemNotFoundException e) {
MessageBox.showException(e);
}*/
}//GEN-LAST:event_tabWorkTypesMouseClicked
// 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 tabWorkTypes;
// End of variables declaration//GEN-END:variables
@Override
public String getPageTitle() {
return "Редактор типов работ";
}
@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, tabWorkTypes.getModel(), getClass());
}
}
@Override
public DelegateLine2 getDelegate() {
return null;
}
}