package com.drawbridge.vl;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
import com.drawbridge.utils.GraphicUtils;
import com.drawbridge.vl.blocks.BlockOperator;
import com.drawbridge.vl.blocks.BlockOperator.SupportedOperationType;
public class PopupSelectorOperator extends Popup
{
/**
*
*/
private static final long serialVersionUID = 265488567065362276L;
JButton mButtonPlu = new JButton(GraphicUtils.loadIconFromResource("/Assets/operator-plus-trans.png"));
JButton mButtonMin = new JButton(GraphicUtils.loadIconFromResource("/Assets/operator-minus-trans.png"));
JButton mButtonDiv = new JButton(GraphicUtils.loadIconFromResource("/Assets/operator-div-trans.png"));
JButton mButtonMul = new JButton(GraphicUtils.loadIconFromResource("/Assets/operator-mult-trans.png"));
JButton mButtonMod = new JButton(GraphicUtils.loadIconFromResource("/Assets/operator-mod-trans.png"));
BoxLayout mBoxLayout;
PopupSelectorListener mParent;
public PopupSelectorOperator(PopupSelectorListener parent){
super(true, 0.6f);
mParent = parent;
initUI();
}
public void initUI()
{
BoxLayout bl = new BoxLayout(this, BoxLayout.Y_AXIS);
this.setLayout(bl);
add(new PopupSelectorOverlay());
}
public interface PopupSelectorListener{
public void onPopupSelectorChange(BlockOperator.SupportedOperationType opType);
}
class PopupSelectorOverlay extends JComponent{
/**
*
*/
private static final long serialVersionUID = -5216308426633193027L;
public PopupSelectorOverlay(){
mBoxLayout = new BoxLayout(this, BoxLayout.X_AXIS);
this.setSize(getPreferredSize());
setLayout(mBoxLayout);
setOpaque(false);
add(mButtonPlu);
mButtonPlu.addMouseListener(ma);
add(Box.createHorizontalGlue());
add(mButtonMin);
mButtonMin.addMouseListener(ma);
add(Box.createHorizontalGlue());
add(mButtonDiv);
mButtonDiv.addMouseListener(ma);
add(Box.createHorizontalGlue());
add(mButtonMul);
mButtonMul.addMouseListener(ma);
add(Box.createHorizontalGlue());
add(mButtonMod);
mButtonMod.addMouseListener(ma);
}
MouseAdapter ma = new MouseAdapter(){
@Override
public void mousePressed(MouseEvent me){
SupportedOperationType op = null;
if(me.getSource().equals(mButtonPlu))
op = SupportedOperationType.ADDITION;
else if(me.getSource().equals(mButtonMin))
op = SupportedOperationType.SUBTRACTION;
else if(me.getSource().equals(mButtonDiv))
op = SupportedOperationType.DIVISION;
else if(me.getSource().equals(mButtonMod))
op = SupportedOperationType.MODULUS;
else if(me.getSource().equals(mButtonMul))
op = SupportedOperationType.MULTIPLICATION;
mParent.onPopupSelectorChange(op);
}
};
@Override
public Dimension getMinimumSize()
{
return new Dimension(230, 30);
}
@Override
public Dimension getMaximumSize()
{
return new Dimension(230, 30);
}
@Override
public Dimension getPreferredSize()
{
return new Dimension(230, 30);
}
}
}