package jopui;
import com.jopdesign.jopui.JopUiApplication;
import com.jopdesign.jopui.core.Button;
import com.jopdesign.jopui.core.CheckBox;
import com.jopdesign.jopui.core.Label;
import com.jopdesign.jopui.core.Option;
import com.jopdesign.jopui.core.OptionGroup;
import com.jopdesign.jopui.core.TextField;
import com.jopdesign.jopui.event.JopEvent;
import com.jopdesign.jopui.event.KeyboardEvent;
import com.jopdesign.jopui.event.MouseEvent;
import com.jopdesign.jopui.helper.Color8Bit;
public class JopUiButton extends JopUiApplication {
private TextField text;
private Label disp;
private Option valignTop;
private Option valignMiddle;
private Option valignBottom;
private Option halignLeft;
private Option halignCenter;
private Option halignRight;
private CheckBox reset;
private Button apply;
public boolean init() {
text = new TextField(109, 159, 100, 15, "demo");
canvas.add(text);
disp = new Label(59,89,200,60, "demo");
disp.setHalign(Label.CENTER);
disp.setValign(Label.MIDDLE);
disp.setColorBody(new Color8Bit(Color8Bit.BLACK));
canvas.add(disp);
apply = new Button(209,214,100,15, "apply");
apply.register(this, "apply");
canvas.add(apply);
reset = new CheckBox(209, 14, 100, 15, "reset");
canvas.add(reset);
OptionGroup og = new OptionGroup();
valignTop = new Option(14, 14, 75, 15, "top");
valignTop.setOptionGroup(og);
canvas.add(valignTop);
valignMiddle = new Option(14, 29, 75, 15, "middle");
valignMiddle.setOptionGroup(og);
valignMiddle.setState(Option.MARKED);
canvas.add(valignMiddle);
valignBottom = new Option(14, 44, 75, 15, "bottom");
valignBottom.setOptionGroup(og);
canvas.add(valignBottom);
og = new OptionGroup();
halignLeft = new Option(89, 14, 75, 15, "left");
halignLeft.setOptionGroup(og);
canvas.add(halignLeft);
halignCenter = new Option(89, 29, 75, 15, "center");
halignCenter.setOptionGroup(og);
halignCenter.setState(Option.MARKED);
canvas.add(halignCenter);
halignRight = new Option(89, 44, 75, 15, "right");
halignRight.setOptionGroup(og);
canvas.add(halignRight);
return true;
}
public boolean notify(JopEvent ev) {
boolean ret = false;
System.out.println("notify - start");
if(ev.getCommand() == "apply") {
if(ev.getEventType() == JopEvent.MOUSE_EVENT) {
MouseEvent mev = (MouseEvent) ev;
if(mev.getButton() == MouseEvent.LEFT_BUTTON &&
mev.getAction() == MouseEvent.MOUSE_UP) {
ret = true;
apply();
}
} else {
KeyboardEvent kbev = (KeyboardEvent) ev;
if(kbev.getCharacter() == ' ' &&
kbev.getAction() == KeyboardEvent.KEY_RELEASED) {
ret = true;
apply();
}
}
}
System.out.println("notify - end");
return ret;
}
private void apply() {
if(reset.getState() == CheckBox.CHECKED) {
disp.setText("demo");
disp.setHalign(Label.CENTER);
disp.setValign(Label.MIDDLE);
text.setText("demo");
valignMiddle.setState(Option.MARKED);
halignCenter.setState(Option.MARKED);
reset.setState(CheckBox.UNCHECKED);
} else {
disp.setText(text.getText());
if(valignTop.getState() == Option.MARKED)
disp.setValign(Label.TOP);
if(valignMiddle.getState() == Option.MARKED)
disp.setValign(Label.MIDDLE);
if(valignBottom.getState() == Option.MARKED)
disp.setValign(Label.BOTTOM);
if(halignLeft.getState() == Option.MARKED)
disp.setHalign(Label.LEFT);
if(halignCenter.getState() == Option.MARKED)
disp.setHalign(Label.CENTER);
if(halignRight.getState() == Option.MARKED)
disp.setHalign(Label.RIGHT);
}
}
public void terminate() {
};
}