Package reportgen.gui.genepanel.formatpanel.dlg.main

Source Code of reportgen.gui.genepanel.formatpanel.dlg.main.SheetCellDlg

/*
* 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.main;

import java.util.List;
import reportgen.prototype.context.group.ExpressionEditorPanel;
import reportgen.math.complex.ExpressionListener;
import java.awt.BorderLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import reportgen.gui.genepanel.formatpanel.dlg.StylePanel;
import reportgen.gui.genepanel.formatpanel.dlg.TableListener;
import reportgen.utils.ReportException;
import reportgen.math.agregate.agregate.AggregateFunction;
import reportgen.ren.report.extendedformat.cell.CellValue;
import reportgen.utils.ReportDialog;

/**
*
* @author axe
*/
class SheetCellDlg extends ReportDialog implements ExpressionListener {

    private final CellValue value;
    private boolean activeCombo = true;
    private final TableListener tableListener;

    /** Creates new form TableDlg */
    public SheetCellDlg(Window parent, CellValue aCell, TableListener aTableListener) {
        super(parent, "Параметры таблицы");
        initComponents();
        this.value = aCell;
        this.tableListener = aTableListener;

        ExpressionEditorPanel panel = value.getValue().getPanel(this);
        panel.addExpressionListener(this);
        mainPanel.add(panel, BorderLayout.CENTER);

        colLabel.setText("Столбец: " + aCell.getColReference().getTitle());
        rowLabel.setText("Строка: " + aCell.getRowReference().getTitle());

        changed();

        functionCombo.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(activeCombo) {
                    value.setFunction((AggregateFunction) functionCombo.getSelectedItem());
                }
            }
        });

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

    @Override
    public void changed() {
        activeCombo = false;
        try {
            Class cls = value.getValue().getCls();
            List<AggregateFunction> func = value.getContext().getAggregFunctions(cls);
            functionCombo.setModel(new DefaultComboBoxModel(func.toArray()));
            if(!func.contains(value.getFunction())) {
                value.setFunction(AggregateFunction.ASIS);
            }
            functionCombo.setSelectedItem(value.getFunction());
        } catch (ReportException ex) {
            value.setFunction(AggregateFunction.ASIS);
            functionCombo.removeAllItems();
            functionCombo.addItem(AggregateFunction.ASIS);
            functionCombo.setSelectedItem(AggregateFunction.ASIS);
        }
        activeCombo = true;
    }

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

        jPanel1 = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        colLabel = new javax.swing.JLabel();
        rowLabel = new javax.swing.JLabel();
        mainTab = new javax.swing.JTabbedPane();
        jPanel2 = new javax.swing.JPanel();
        mainPanel = new javax.swing.JPanel();
        comboPanel = new javax.swing.JPanel();
        functionCombo = new javax.swing.JComboBox();
        jLabel1 = new javax.swing.JLabel();
        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));

        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Ячейка на пересечении"));
        jPanel4.setLayout(new java.awt.GridLayout(0, 1, 5, 5));

        colLabel.setText("Столбец:");
        jPanel4.add(colLabel);

        rowLabel.setText("Строка:");
        jPanel4.add(rowLabel);

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

        mainPanel.setLayout(new java.awt.BorderLayout(2, 2));

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

        functionCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        comboPanel.add(functionCombo, java.awt.BorderLayout.CENTER);

        jLabel1.setText("Функция:");
        comboPanel.add(jLabel1, java.awt.BorderLayout.WEST);

        mainPanel.add(comboPanel, java.awt.BorderLayout.NORTH);

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 507, Short.MAX_VALUE)
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel2Layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(mainPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 483, Short.MAX_VALUE)
                    .addContainerGap()))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 504, Short.MAX_VALUE)
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(mainPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 480, Short.MAX_VALUE)
                    .addContainerGap()))
        );

        mainTab.addTab("Значение", jPanel2);

        jPanel1.add(mainTab, 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, 512, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 653, Short.MAX_VALUE)
                .addContainerGap())
        );

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

    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.JLabel colLabel;
    private javax.swing.JPanel comboPanel;
    private javax.swing.JComboBox functionCombo;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel mainPanel;
    private javax.swing.JTabbedPane mainTab;
    private javax.swing.JButton okBtn;
    private javax.swing.JLabel rowLabel;
    // End of variables declaration//GEN-END:variables

}
TOP

Related Classes of reportgen.gui.genepanel.formatpanel.dlg.main.SheetCellDlg

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.