/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* ConditionPanelUnary.java
*
* Created on 28.04.2009, 14:22:13
*/
package reportgen.math.condition.unaryexist;
import reportgen.prototype.context.group.ExpressionEditorPanel;
import java.awt.BorderLayout;
import java.awt.Window;
import javax.swing.JPanel;
import reportgen.math.MathExpression;
import reportgen.math.MathExpressionOperand;
import reportgen.math.reference.inline.MathExpressionInlineRef;
/**
*
* @author axe
*/
abstract class MathExpressionConditionUnaryExistPanel
extends ExpressionEditorPanel<MathExpressionConditionUnaryExist> {
private final Window parent;
protected final MathExpressionConditionUnaryExist me;
private ExpressionEditorPanel operandPanel = null;
public MathExpressionConditionUnaryExistPanel(Window aParent,
MathExpressionConditionUnaryExist exp) {
initComponents();
this.parent = aParent;
if(exp != null) {
this.me = exp;
} else {
this.me = initNew();
}
mainPanel.add(me.getOperator().getPanel(parent), BorderLayout.NORTH);
//берем операнд
//если не пустой, берем у него панель
MathExpressionOperand operand = me.getOperand();
if(operand != null) {
//панель останется как нулл
mainPanel.add(operand.getPanel(parent), BorderLayout.CENTER);
} else {
//иначе создаем панель
operandPanel = MathExpressionInlineRef.GROUP.getCreatePanel(parent,
me.getChildContext(MathExpressionInlineRef.GROUP));
mainPanel.add(operandPanel);
}
mainPanel.validate();
}
/**
*
* @return
*/
@Override
public MathExpressionConditionUnaryExist getValue() {
if(operandPanel != null) {
MathExpression value = operandPanel.getValue();
if(value == null) {
return null;
}
me.setOperand((MathExpressionOperand) value);
}
return me;
}
protected abstract MathExpressionConditionUnaryExist initNew();
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jPanel6 = new javax.swing.JPanel();
mainPanel = new javax.swing.JPanel();
jPanel6.setLayout(new java.awt.BorderLayout(5, 5));
mainPanel.setLayout(new java.awt.BorderLayout());
jPanel6.add(mainPanel, java.awt.BorderLayout.CENTER);
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(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, 295, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel mainPanel;
// End of variables declaration//GEN-END:variables
}