Package clips.directory.editors.servicePacketTemplate

Source Code of clips.directory.editors.servicePacketTemplate.DlgEditTemplateItems

/*
* DlgEditTemplateItems.java
*
* Created on 17 Июнь 2008 г., 17:51
*/

package clips.directory.editors.servicePacketTemplate;

import beans.directory.packet.entity.PacketTemplateItemDetails;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import clips.delegate.directory.complex.DirectoryPacketTemplateItem;
import clips.delegate.directory.complex.DirectoryPacketTemplateList;
import clips.delegate.directory.complex.DirectoryPacketTemplateListItem;
import clips.delegate.directory.filtered.DirectoryServiceItem;
import clips.directory.dialogs.DirectoryDialogService;
import cli_fmw.utils.MessageBox;
import cli_fmw.main.ClipsException;
import cli_fmw.main.audit.AuditManager;
import cli_fmw.utils.Selector;
import cli_fmw.utils.ModalDialog;
import cli_fmw.utils.table_config_states.StateSaver;
import cli_fmw.utils.table_config_states.TableState;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.util.ArrayList;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.TableColumn;


/**
* диалог редактирования итемов пакета
* @author  lacoste
*/
public class DlgEditTemplateItems extends ModalDialog {
    private DirectoryPacketTemplateItem packet;
    private Frame cont;

    /** Creates new form DlgEditTemplateItems */
    public DlgEditTemplateItems(java.awt.Frame parent, DirectoryPacketTemplateItem packet, AuditManager am) throws ClipsException {
        super(parent, "Редактор шаблонов пакетов услуг", am);
        initComponents();
       
        Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();
        Rectangle dlgSize = new Rectangle((int)(0.6 * scrSize.width), (int)(0.6 * scrSize.height));
        this.setBounds(dlgSize);
        this.setLocation((scrSize.width - dlgSize.width) / 2, (scrSize.height - dlgSize.height) / 2);
       
        this.cont = parent;
        this.packet = packet;
       
        tabPacketItems.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        tabPacketItems.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

            @Override
            public void valueChanged(ListSelectionEvent e) {
                btDel.setEnabled(tabPacketItems.getSelectedRowsSorted().length > 0);
            }
        });

        this.setTitle("Состав шаблона пакета: " + packet.getTitle());

        setTable();
    resizeColumn();
    StateSaver.attachTo(this);
    }

    private void setTable() throws ClipsException {
        tabPacketItems.setModel(new TableModelEditPacketItems(packet));
    }
   
    private void resizeColumn() {
    TableState          state = new TableState();
    state.setPreferredWidth(TableModelEditPacketItems.COL_ID,      2);
    state.setPreferredWidth(TableModelEditPacketItems.COL_SERVICE,    14);
    state.setPreferredWidth(TableModelEditPacketItems.COL_WEIGHT,    6);
    state.setPreferredWidth(TableModelEditPacketItems.COL_DURATION,    6);
    state.setPreferredWidth(TableModelEditPacketItems.COL_DISCOUNT,    4);
      StateSaver.setDefaultState(this, tabPacketItems, state);
    }
   
    private void stopEdit() {
        if (tabPacketItems.isEditing()) {
            tabPacketItems.getCellEditor().stopCellEditing();
        }
    }
   
    /** 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() {

        jPanel4 = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        btDel = new javax.swing.JButton();
        btAdd = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        tabPacketItems = new cli_fmw.utils.sorted_table.SortedTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosed(java.awt.event.WindowEvent evt) {
                formWindowClosed(evt);
            }
        });

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

        jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));

        btDel.setText("Удалить");
        btDel.setEnabled(false);
        btDel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btDelActionPerformed(evt);
            }
        });
        jPanel1.add(btDel);

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

        jPanel4.add(jPanel1, java.awt.BorderLayout.SOUTH);

        jScrollPane1.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentResized(java.awt.event.ComponentEvent evt) {
                jScrollPane1ComponentResized(evt);
            }
        });

        tabPacketItems.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tabPacketItemsMouseClicked(evt);
            }
        });
        tabPacketItems.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseMoved(java.awt.event.MouseEvent evt) {
                tabPacketItemsMouseMoved(evt);
            }
        });
        jScrollPane1.setViewportView(tabPacketItems);

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

        getContentPane().add(jPanel4, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>//GEN-END:initComponents

private void btAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAddActionPerformed
    stopEdit();
    try {
        //выбор услуг которые добавятся в пакет
        DirectoryDialogService dlg = new DirectoryDialogService(true, null);
        dlg.setVisible(true);
        if (dlg.getDlgResult() == ModalDialog.DLG_OK) {
            Selector ii = dlg.getSelectedItems();
            if (ii.size() < 1) {
                return;
            }
            DirectoryPacketTemplateList dir = DirectoryLocator.getDirectory(DirectoryPacketTemplateList.class, false);
            for (int i = 0; i < ii.size(); i ++) {
                DirectoryServiceItem service = (DirectoryServiceItem) ii.get(i);
                //может быть выбранная услуга уже есть в пакете
                boolean isInPacket = false;
                for (int j = 0; j < packet.getPacketItemCount(); j++) {
                    if (packet.getPacketItem(j).getService().getID() == service.getID()) {
                        isInPacket = true;
                        break;
                    }                   
                }
                //если нет в пакете то добавляем
                if (!isInPacket) {
                    PacketTemplateItemDetails d = new PacketTemplateItemDetails();
                    d.id = 0;
                    d.title = service.getTitle();
                    d.service = service.getID();
                    d.defaultDuration = 0;
                    d.discount = 0;
                    d.weight = 0;
                    d.packetTemplate = packet.getID();
                    DirectoryPacketTemplateListItem item = new DirectoryPacketTemplateListItem(d);
                    if (!dir.checkContracts(d)) {
                        if (MessageBox.showConfirmYesNo(MessageBox.C_CONTRACT_SETVICE_NOT_FOUNDED) == MessageBox.ANSWER_NO) {
                            return;
                        }
                    }
                    dir.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
    stopEdit();
    try {
        ArrayList<DirectoryPacketTemplateListItem> items = new ArrayList<DirectoryPacketTemplateListItem>();
        int[] sel = tabPacketItems.getSelectedRowsSorted();
        for (int i = 0; i < sel.length; i++) {
            items.add(packet.getPacketItem(sel[i]));
        }
        DirectoryPacketTemplateList dir =
                (DirectoryPacketTemplateList) DirectoryLocator.getDirectory(DirectoryPacketTemplateList.class, false);
        for (int i = 0; i < items.size(); i++) {
            DirectoryPacketTemplateListItem item = items.get(i);
            dir.getItems().remove(item);
        }
        setTable();
    } catch (ClipsException ex) {
        MessageBox.showException(ex);
    }   
}//GEN-LAST:event_btDelActionPerformed

private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed
    stopEdit();
}//GEN-LAST:event_formWindowClosed

private void tabPacketItemsMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tabPacketItemsMouseMoved
    int col = tabPacketItems.columnAtPoint(evt.getPoint());
    TableColumn coll = tabPacketItems.getColumnModel().getColumn(col);
    col = coll.getModelIndex();
    if (col == TableModelEditPacketItems.COL_SERVICE) {
        tabPacketItems.setToolTipText("Двойной клик, чтобы поменять услугу");
    }   
    else {
        tabPacketItems.setToolTipText(null);
    }
}//GEN-LAST:event_tabPacketItemsMouseMoved

private void tabPacketItemsMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tabPacketItemsMouseClicked
    stopEdit();
    try {
        int row = tabPacketItems.getSelectedRowSorted();

        int col = tabPacketItems.columnAtPoint(evt.getPoint());
        TableColumn coll = tabPacketItems.getColumnModel().getColumn(col);
        col = coll.getModelIndex();

        if (row < 0 || evt.getClickCount() < 2 || col != TableModelEditPacketItems.COL_SERVICE) {
            return;
        }
        //просмотр услуги пакета, при необходимости замена
        DirectoryServiceItem servItem = packet.getPacketItem(row).getService();
        DirectoryDialogService dlg = new DirectoryDialogService(false, servItem);
        dlg.setVisible(true);
        if (dlg.getDlgResult() == ModalDialog.DLG_OK) {
            Selector ii = dlg.getSelectedItems();
            if (ii.size() > 0) {
                DirectoryServiceItem item = (DirectoryServiceItem) ii.get(0);
                boolean isInPacket = false;
                for (int i = 0; i < packet.getPacketItemCount(); i++) {
                    if (packet.getPacketItem(i).getService().getID() == item.getID()) {
                        isInPacket = true;
                        break;
                    }
                }
                if (!isInPacket) {                   
                    packet.getPacketItem(row).setService(item);
                }
            }
            setTable();
        }
    } catch (ClipsException ex) {
        MessageBox.showException(ex);
    }
}//GEN-LAST:event_tabPacketItemsMouseClicked

private void jScrollPane1ComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_jScrollPane1ComponentResized
}//GEN-LAST:event_jScrollPane1ComponentResized

    // 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.JPanel jPanel4;
    private javax.swing.JScrollPane jScrollPane1;
    private cli_fmw.utils.sorted_table.SortedTable tabPacketItems;
    // End of variables declaration//GEN-END:variables

}
TOP

Related Classes of clips.directory.editors.servicePacketTemplate.DlgEditTemplateItems

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.