package ui; import myutil.TraceManager; public class RangeExpression extends Expression { private final Expression minExpression; private final Expression maxExpression; private final String labelOneNull; public RangeExpression( final String minExpressionText, final String maxExpressionText, final String nullText, final String labelGlobal, final String labelValues, final String labelOneNull) { super( null, nullText, labelGlobal ); this.labelOneNull = labelOneNull; minExpression = new Expression( minExpressionText, nullText, labelValues ); maxExpression = new Expression( maxExpressionText, nullText, labelValues ); } public Expression getMinExpression() { return minExpression; } public Expression getMaxExpression() { return maxExpression; } @Override public void setEnabled( final boolean enabled ) { getMinExpression().setEnabled( enabled ); getMaxExpression().setEnabled( enabled ); } @Override public boolean isEnabled() { return minExpression.isEnabled() || maxExpression.isEnabled(); } @Override public boolean isNull() { return minExpression.isNull() && maxExpression.isNull(); } public String getLabelOneNull() { return labelOneNull; } public Expression isOneNull() { if (isNull()) { return null; } if (minExpression.isNull()) { return maxExpression; } if (maxExpression.isNull()) { return minExpression; } return null; } @Override public String toString() { //TraceManager.addDev("Max Text=" + maxExpression.getText()); if ( getLabel() == null ) { //TraceManager.addDev("no label"); return "[" + getMinExpression().toString() + ", " + getMaxExpression().toString() + "]"; } Expression expr = isOneNull(); if (expr == null) { //TraceManager.addDev("max=" + getMaxExpression().toString()); final Object[] values = new String[]{getMinExpression().toString(), getMaxExpression().toString()}; return String.format(getLabel(), values); } Object[] vals = new String[]{expr.toString()}; //TraceManager.addDev("labelOneNull=" + labelOneNull) return String.format(getLabelOneNull(), vals); } }