Package clips.directory.editors.checkUpType

Source Code of clips.directory.editors.checkUpType.PanelCheckupTypeListAbstract

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/*
* PanelCheckupTypeListAbstract.java
*
* Created on 11.03.2009, 17:02:50
*/

package clips.directory.editors.checkUpType;

import cli_fmw.delegate.directory.complex.DirectoryLocator;
import cli_fmw.main.ClipsException;
import cli_fmw.main.MainWindow;
import cli_fmw.main.PageContainer;
import cli_fmw.main.PageGeneric;
import cli_fmw.utils.MessageBox;
import cli_fmw.utils.SelectorEditableExceptional;
import cli_fmw.utils.sorted_table.SortedTable;
import cli_fmw.utils.table_config_states.StateSaver;
import clips.delegate.directory.filtered.DirectoryCheckupType;
import clips.delegate.directory.filtered.DirectoryCheckupTypeItem;
import beans.directory.checkuptype.entity.CheckupTypeDetails;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.util.ArrayList;
import javax.swing.DefaultListModel;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import org.jdom.JDOMException;

/**
* Абстрактная панель, редактирующая список Чекаптайпов - либо осмотров либо анализов
* @author vip
*/
abstract public class PanelCheckupTypeListAbstract extends PageGeneric {
    private DirectoryCheckupType directory;
    private boolean isAnalyse;
    private final TableModelCheckupTypes model;

    public PanelCheckupTypeListAbstract(PageContainer container, boolean isAnalyse) throws ClipsException {
        super(container);
        this.isAnalyse = isAnalyse;
        initComponents();
        directory = (DirectoryCheckupType) DirectoryLocator.getDirectory(DirectoryCheckupType.class, true);
        ArrayList<DirectoryCheckupTypeItem> items = loadItems(isAnalyse);

        model = createModel();
        model.setItems(items);
        tblTypes.setModel(model);
        addRenderAndEditor(tblTypes);
        setEnabledComponents();
        tblTypes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        tblTypes.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

            @Override
            public void valueChanged(ListSelectionEvent e) {
                setEnabledComponents();
            }
        });

        Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();
        Rectangle dlgSize = this.getBounds();
        this.setLocation((scrSize.width - dlgSize.width) / 2, (scrSize.height - dlgSize.height) / 2);
    StateSaver.attachTo(this);
    }

    private ArrayList<DirectoryCheckupTypeItem> loadItems(boolean isAnalyse) throws ClipsException {
        directory = (DirectoryCheckupType) DirectoryLocator.getDirectory(DirectoryCheckupType.class, true);
        ArrayList<DirectoryCheckupTypeItem> items = new ArrayList<DirectoryCheckupTypeItem>();
        for (int i = 0; i < directory.getItems().size(); i++) {
            DirectoryCheckupTypeItem item = directory.getItems().get(i);
            if (item.getID() != 0 && item.isAnalyse() == isAnalyse) {
                items.add(item);
            }
        }
        return items;
    }

    private void setEnabledComponents() {
        if (tblTypes.getSelectedRowCount() > 0){
            Object item = tblTypes.getValueAt(tblTypes.getSelectedRowSorted(), 0);
            boolean isDirItem = (item != null && item instanceof DirectoryCheckupTypeItem);
            boolean isVisible = (isDirItem && ((DirectoryCheckupTypeItem)item).isVisible());
            btNew.setEnabled(true);
            btCopy.setEnabled(isDirItem);
            btEdit.setEnabled(isDirItem);
            btRemove.setEnabled(isVisible);
        }else{
            btNew.setEnabled(true);
            btCopy.setEnabled(false);
            btEdit.setEnabled(false);
            btRemove.setEnabled(false);
        }
    }

//    private void formList() throws ClipsException {
//        DefaultListModel model = new DefaultListModel();
//        for (int i = 0; i < directory.getItems().size(); i++) {
//            DirectoryCheckupTypeItem item = directory.getItems().get(i);
//            if (item.getID() != 0 && item.isAnalyse() == isAnalyse) {
//                model.addElement(directory.getItems().get(i));
//            }
//        }
//        tblTypes.setModel(model);
//    }


    /** 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() {

        jScrollPane1 = new javax.swing.JScrollPane();
        lstCheckupTypes = new javax.swing.JList();
        jPanel1 = new javax.swing.JPanel();
        btCopy = new javax.swing.JButton();
        btRemove = new javax.swing.JButton();
        btNew = new javax.swing.JButton();
        btEdit = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        tblTypes = new cli_fmw.utils.sorted_table.SortedTable();

        lstCheckupTypes.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                lstCheckupTypesMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(lstCheckupTypes);

        btCopy.setText("Сделать копию");
        btCopy.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCopyActionPerformed(evt);
            }
        });

        btRemove.setText("      Удалить      ");
        btRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btRemoveActionPerformed(evt);
            }
        });

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

        btEdit.setText("Редактировать");
        btEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btEditActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(btCopy)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btRemove)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btNew)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btEdit)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btCopy, btEdit, btNew, btRemove});

        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(btCopy)
                .addComponent(btRemove)
                .addComponent(btNew)
                .addComponent(btEdit))
        );

        tblTypes.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane2.setViewportView(tblTypes);

        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()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(24, Short.MAX_VALUE))
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 594, Short.MAX_VALUE)
                    .addContainerGap()))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(164, Short.MAX_VALUE)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 141, Short.MAX_VALUE)
                    .addGap(48, 48, 48)))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void lstCheckupTypesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lstCheckupTypesMouseClicked
        if (evt.getClickCount() == 2) {
            btEditActionPerformed(null);
        }
}//GEN-LAST:event_lstCheckupTypesMouseClicked

    private void btCopyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btCopyActionPerformed

        try {
            DirectoryCheckupTypeItem checkupType = (DirectoryCheckupTypeItem) tblTypes.getValueAt(tblTypes.getSelectedRowSorted(), 0);
            CheckupTypeDetails details = new CheckupTypeDetails();
            DirectoryCheckupTypeItem checkupTypeNew = new DirectoryCheckupTypeItem(details);
            checkupTypeNew.setTitle(checkupType.getTitle() + " (копия)");
            checkupTypeNew.setDescription(checkupType.getDescription());
            checkupTypeNew.setMetadata(checkupType.getMetadata());
            checkupTypeNew.setIsAnalyse(checkupType.isAnalyse());
            directory.getItems().append(checkupTypeNew);
            model.setItems(loadItems(isAnalyse));
        } catch (ClipsException e) {
            MessageBox.showException(e);
        }
}//GEN-LAST:event_btCopyActionPerformed

    private void btRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btRemoveActionPerformed
        try {
            DirectoryCheckupTypeItem checkupType = (DirectoryCheckupTypeItem) tblTypes.getValueAt(tblTypes.getSelectedRowSorted(), 0);
            SelectorEditableExceptional<DirectoryCheckupTypeItem> items = directory.getItems();
            items.remove(checkupType);
            /*for (int i = 0; i < items.size(); i++) {
                if (checkupType == items.get(i)) {
                    items.remove(i);
                    break;
                }
            }*/
            model.setItems(loadItems(isAnalyse));
        } catch (ClipsException ex) {
            MessageBox.showException(ex);
        }
}//GEN-LAST:event_btRemoveActionPerformed

    private void btNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btNewActionPerformed
        try {
            DlgMetadataEdit dialog = new DlgMetadataEdit(MainWindow.mainWindow, null, isAnalyse, getAuditManager());
            dialog.setVisible(true);
            if (dialog.getDlgResult() == DlgMetadataEdit.DLG_OK) {
                DirectoryCheckupTypeItem checkupType = dialog.getResult();
                directory.getItems().append(checkupType);
            }
            model.setItems(loadItems(isAnalyse));
        } catch (JDOMException ex) {
            MessageBox.showError(MessageBox.E_INVALID_XML_STRING);
        } catch (Exception ex) {
            MessageBox.showException(ex);
        }
}//GEN-LAST:event_btNewActionPerformed

    private void btEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btEditActionPerformed
        try {
            DirectoryCheckupTypeItem checkupType = (DirectoryCheckupTypeItem) tblTypes.getValueAt(tblTypes.getSelectedRowSorted(), 0);
            DlgMetadataEdit dialog = new DlgMetadataEdit(MainWindow.mainWindow, checkupType, isAnalyse, getAuditManager());
            dialog.setVisible(true);
            tblTypes.repaint();
        } catch (JDOMException ex) {
            MessageBox.showError(MessageBox.E_INVALID_XML_STRING);
        } catch (Exception ex) {
            MessageBox.showException(ex);
        }

    }//GEN-LAST:event_btEditActionPerformed


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btCopy;
    private javax.swing.JButton btEdit;
    private javax.swing.JButton btNew;
    private javax.swing.JButton btRemove;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JList lstCheckupTypes;
    private cli_fmw.utils.sorted_table.SortedTable tblTypes;
    // End of variables declaration//GEN-END:variables

    protected TableModelCheckupTypes createModel() throws ClipsException {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    protected void addRenderAndEditor(SortedTable tblTypes) throws ClipsException {
    }

}
TOP

Related Classes of clips.directory.editors.checkUpType.PanelCheckupTypeListAbstract

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.