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

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

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

import reportgen.gui.genepanel.formatpanel.dlg.range.RangeDlg;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import reportgen.gui.genepanel.formatpanel.dlg.TableListener;
import reportgen.math.complex.MathExpressionComplex;
import reportgen.ren.report.extendedformat.range.ColRowRange;
import reportgen.ren.report.extendedformat.range.cross.ColRowRangeCrossReport;
import reportgen.ren.report.extendedformat.range.group.ColRowRangeGroup;
import reportgen.utils.ReportException;

class RangeCell extends StyledCell implements ActionListener {

    private final ColRowRange range;

    public RangeCell(Window parent, ColRowRange range, TableListener tableListener) {
        super(parent, tableListener, range.getStyle());
        this.range = range;
    }

    @Override
    public Object getValue() {
        String txt = "";

        if(range instanceof ColRowRangeGroup) {
            ColRowRangeGroup group = (ColRowRangeGroup) range;
            boolean valid = isValid(group.getGroupValue(), false);
            if(valid) {
                txt += "группа ";
            } else {
                txt += "ГР! ";
            }

        } else if(range instanceof ColRowRangeCrossReport) {
            ColRowRangeCrossReport crep = (ColRowRangeCrossReport) range;
            boolean valid = isValid(crep.getCrossCriteria(), false);
            if(valid) {
                txt += "кросс ";
            } else {
                txt += "КРОСС! ";
            }
        }

        boolean critValid = isValid(range.getCriteria(), true);
        if(critValid) {
            if(!range.getCriteria().isEmpty()) {
                txt = "(фильтр) ";
            }
        } else {
            txt += "УСЛ! ";
        }
        txt += range.getTitle();
        return txt;
    }

    @Override
    public void setValue(Object font) {
        throw new UnsupportedOperationException("Not supported yet.");
    }


    private static boolean isValid(MathExpressionComplex express, boolean canBeEmpty) {
        boolean ok = false;
        try {
            express.validate();
            if (canBeEmpty || !express.isEmpty()) {
                ok = true;
            }
        } catch (ReportException ex) {
            ok = false;
        }
        return ok;
    }  

    @Override
    public void actionPerformed(ActionEvent e) {
        RangeDlg dlg = new RangeDlg(parent, range, tableListener);
        dlg.setVisible(true);
        tableListener.dataChanged();
    }


}
TOP

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

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.