Package reportgen.gui.genepanel.formatpanel.dlg.range

Source Code of reportgen.gui.genepanel.formatpanel.dlg.range.RangeDlg

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

/*
* TableDlg.java
*
* Created on 22.06.2009, 13:43:09
*/

package reportgen.gui.genepanel.formatpanel.dlg.range;

import reportgen.gui.genepanel.formatpanel.dlg.ChildRangePanel;
import java.awt.BorderLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import reportgen.gui.genepanel.formatpanel.dlg.StylePanel;
import reportgen.gui.genepanel.formatpanel.dlg.TableListener;
import reportgen.ren.report.extendedformat.range.ColRowRange;
import reportgen.ren.report.extendedformat.range.RangeOrderList;
import reportgen.ren.report.extendedformat.range.cross.ColRowRangeCrossReport;
import reportgen.ren.report.extendedformat.range.generic.ColRowRangeGeneric;
import reportgen.ren.report.extendedformat.range.group.ColRowRangeGroup;
import reportgen.utils.ReportDialog;

/**
*
* @author axe
*/
public class RangeDlg extends ReportDialog {

    private final ColRowRange range;
    private final TableListener tableListener;

    public RangeDlg(Window aParent, ColRowRange aRange, TableListener aTableListener) {
        super(aParent, "Параметры таблицы");
        initComponents();
        this.range = aRange;
        this.tableListener = aTableListener;

        this.tableTitleField.setText(range.getTitle());
        this.tableTitleField.getDocument().addDocumentListener( new DocumentListener() {

            @Override
            public void insertUpdate(DocumentEvent e) {
                update(e.getDocument());
            }

            @Override
            public void removeUpdate(DocumentEvent e) {
                update(e.getDocument());
            }

            @Override
            public void changedUpdate(DocumentEvent e) {}

            private void update(Document doc) {
                try {
                    range.setTitle(doc.getText(0, doc.getLength()));
                } catch (BadLocationException ex) {
                    ex.printStackTrace();
                    //do nothing
                }
            }
        });

        removeEmptyCheck.setSelected(range.isRemoveEmptyRange());
        removeEmptyCheck.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                range.setRemoveEmptyRange(removeEmptyCheck.isSelected());
            }
        });

        visibleCheck.setSelected(range.isVisible());
        visibleCheck.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                range.setVisible(visibleCheck.isSelected());
            }
        });

        criteriaPanelInner.add(range.getCriteria().getPanel(this));
        titlePanel.add(range.getTitleExpression().getPanel(this), BorderLayout.CENTER);

        RangeOrderList orders = range.getOrders();
        if(orders != null) {
            mainTab.add("Сортировка", new OrderRangePanel(this, orders, range.getLocalContext()));
        }

        mainTab.add("Фильтр(включая)",
                new ExternalCriteriaPanel(range, range.getIncluded()));
        mainTab.add("Фильтр(исключая)",
                new ExternalCriteriaPanel(range, range.getExcluded()));

        childPanelInner.removeAll();
        childPanelInner.add(new ChildRangePanel(range.getInner(), this, tableListener));

        initPanels();

        typeCombo.addItem(ChildRangePanel.GENERIC);
        typeCombo.addItem(ChildRangePanel.GROUP);
        typeCombo.addItem(ChildRangePanel.CROSS);
        if(range instanceof ColRowRangeGeneric) {
            typeCombo.setSelectedItem(ChildRangePanel.GENERIC);
        } else if(range instanceof ColRowRangeGroup) {
            typeCombo.setSelectedItem(ChildRangePanel.GROUP);
        } else if(range instanceof ColRowRangeCrossReport) {
            typeCombo.setSelectedItem(ChildRangePanel.CROSS);
        }
        typeCombo.setEnabled(false);

        mainTab.add("Стиль оформления", new StylePanel(range.getStyle(), tableListener));

    }


   
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jPanel5 = new javax.swing.JPanel();
        jPanel8 = new javax.swing.JPanel();
        typeCombo = new javax.swing.JComboBox();
        jLabel2 = new javax.swing.JLabel();
        removeEmptyCheck = new javax.swing.JCheckBox();
        jPanel2 = new javax.swing.JPanel();
        mainTab = new javax.swing.JTabbedPane();
        mainPanel = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        jPanel6 = new javax.swing.JPanel();
        visibleCheck = new javax.swing.JCheckBox();
        titlePanel = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        tableTitleField = new javax.swing.JTextArea();
        criteriaPanel = new javax.swing.JPanel();
        criteriaPanelInner = new javax.swing.JPanel();
        childPanel = new javax.swing.JPanel();
        childPanelInner = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        okBtn = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jPanel1.setLayout(new java.awt.BorderLayout(5, 5));

        jPanel5.setLayout(new java.awt.GridLayout(0, 1, 5, 5));

        jPanel8.setLayout(new java.awt.BorderLayout(5, 5));
        jPanel8.add(typeCombo, java.awt.BorderLayout.CENTER);

        jLabel2.setText("Вид диапазона:");
        jPanel8.add(jLabel2, java.awt.BorderLayout.WEST);

        jPanel5.add(jPanel8);

        removeEmptyCheck.setText("Не отображать, если  не содержит данных");
        jPanel5.add(removeEmptyCheck);

        jPanel1.add(jPanel5, java.awt.BorderLayout.NORTH);

        jPanel2.setLayout(new java.awt.BorderLayout(5, 5));

        jPanel4.setLayout(new java.awt.BorderLayout(10, 10));

        jPanel6.setLayout(new java.awt.GridLayout(0, 1, 5, 5));

        visibleCheck.setText("Отображать заголовок раздела");
        jPanel6.add(visibleCheck);

        jPanel4.add(jPanel6, java.awt.BorderLayout.NORTH);

        titlePanel.setBorder(javax.swing.BorderFactory.createCompoundBorder(javax.swing.BorderFactory.createTitledBorder("Заголовок диапазона"), javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)));
        titlePanel.setLayout(new java.awt.BorderLayout(10, 10));

        tableTitleField.setColumns(20);
        tableTitleField.setRows(5);
        jScrollPane1.setViewportView(tableTitleField);

        titlePanel.add(jScrollPane1, java.awt.BorderLayout.NORTH);
        jScrollPane1.getAccessibleContext().setAccessibleName("Простое название диапазона");

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

        javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
        mainPanel.setLayout(mainPanelLayout);
        mainPanelLayout.setHorizontalGroup(
            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mainPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, 550, Short.MAX_VALUE)
                .addContainerGap())
        );
        mainPanelLayout.setVerticalGroup(
            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mainPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, 518, Short.MAX_VALUE)
                .addContainerGap())
        );

        mainTab.addTab("Название", mainPanel);

        criteriaPanelInner.setLayout(new java.awt.GridLayout(1, 0));

        javax.swing.GroupLayout criteriaPanelLayout = new javax.swing.GroupLayout(criteriaPanel);
        criteriaPanel.setLayout(criteriaPanelLayout);
        criteriaPanelLayout.setHorizontalGroup(
            criteriaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 574, Short.MAX_VALUE)
            .addGroup(criteriaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(criteriaPanelLayout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(criteriaPanelInner, javax.swing.GroupLayout.DEFAULT_SIZE, 550, Short.MAX_VALUE)
                    .addContainerGap()))
        );
        criteriaPanelLayout.setVerticalGroup(
            criteriaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 542, Short.MAX_VALUE)
            .addGroup(criteriaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(criteriaPanelLayout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(criteriaPanelInner, javax.swing.GroupLayout.DEFAULT_SIZE, 518, Short.MAX_VALUE)
                    .addContainerGap()))
        );

        mainTab.addTab("Критерии выборки", criteriaPanel);

        childPanelInner.setLayout(new java.awt.GridLayout(1, 0));

        javax.swing.GroupLayout childPanelLayout = new javax.swing.GroupLayout(childPanel);
        childPanel.setLayout(childPanelLayout);
        childPanelLayout.setHorizontalGroup(
            childPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 574, Short.MAX_VALUE)
            .addGroup(childPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(childPanelLayout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(childPanelInner, javax.swing.GroupLayout.DEFAULT_SIZE, 550, Short.MAX_VALUE)
                    .addContainerGap()))
        );
        childPanelLayout.setVerticalGroup(
            childPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 542, Short.MAX_VALUE)
            .addGroup(childPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(childPanelLayout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(childPanelInner, javax.swing.GroupLayout.DEFAULT_SIZE, 518, Short.MAX_VALUE)
                    .addContainerGap()))
        );

        mainTab.addTab("Дочерние элементы", childPanel);

        jPanel2.add(mainTab, java.awt.BorderLayout.CENTER);

        jPanel1.add(jPanel2, java.awt.BorderLayout.CENTER);

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

        okBtn.setText("    OK    ");
        okBtn.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                okBtnActionPerformed(evt);
            }
        });
        jPanel3.add(okBtn);

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

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 579, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 683, Short.MAX_VALUE)
                .addContainerGap())
        );

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

    private void initPanels()  {

        if(range instanceof ColRowRangeGroup) {
            ColRowRangeGroup group = (ColRowRangeGroup) range;
            mainTab.add("Группировка", group.getGroupValue().getPanel(this));

        } else if(range instanceof ColRowRangeCrossReport) {
            ColRowRangeCrossReport cross = (ColRowRangeCrossReport) range;
            mainTab.add("Кроссотчет", new CrossReportPanel(this, cross));
        }
    }

    private void okBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okBtnActionPerformed
        setVisible(false);
    }//GEN-LAST:event_okBtnActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel childPanel;
    private javax.swing.JPanel childPanelInner;
    private javax.swing.JPanel criteriaPanel;
    private javax.swing.JPanel criteriaPanelInner;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JPanel mainPanel;
    private javax.swing.JTabbedPane mainTab;
    private javax.swing.JButton okBtn;
    private javax.swing.JCheckBox removeEmptyCheck;
    private javax.swing.JTextArea tableTitleField;
    private javax.swing.JPanel titlePanel;
    private javax.swing.JComboBox typeCombo;
    private javax.swing.JCheckBox visibleCheck;
    // End of variables declaration//GEN-END:variables
}
TOP

Related Classes of reportgen.gui.genepanel.formatpanel.dlg.range.RangeDlg

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.