[DEV] set checkbox properties (basic)
This commit is contained in:
parent
ce3e31743d
commit
b75a5b383d
@ -13,7 +13,7 @@ public class MainWindows extends BasicWindows {
|
|||||||
//! [ewol_sample_HW_windows_title]
|
//! [ewol_sample_HW_windows_title]
|
||||||
setPropertyTitle("Simple CheckBox");
|
setPropertyTitle("Simple CheckBox");
|
||||||
|
|
||||||
this.testWidget = new CheckBox();
|
this.testWidget = new CheckBox("<b>Hello, how Are</b> You?<br/>second-life?");
|
||||||
//this.testWidget.setPropertySource(new Uri("DATA", "mireA.png"));
|
//this.testWidget.setPropertySource(new Uri("DATA", "mireA.png"));
|
||||||
this.testWidget.setPropertyExpand(Vector3b.TRUE);
|
this.testWidget.setPropertyExpand(Vector3b.TRUE);
|
||||||
this.testWidget.setPropertyFill(Vector3b.TRUE);
|
this.testWidget.setPropertyFill(Vector3b.TRUE);
|
||||||
|
@ -1,29 +1,100 @@
|
|||||||
package org.atriasoft.ewol.widget;
|
package org.atriasoft.ewol.widget;
|
||||||
|
|
||||||
|
import org.atriasoft.esignal.Signal;
|
||||||
|
import org.atriasoft.esignal.SignalEmpty;
|
||||||
import org.atriasoft.etk.math.Vector3b;
|
import org.atriasoft.etk.math.Vector3b;
|
||||||
import org.atriasoft.ewol.Gravity;
|
import org.atriasoft.ewol.Gravity;
|
||||||
|
import org.atriasoft.ewol.annotation.EwolDescription;
|
||||||
|
import org.atriasoft.ewol.annotation.EwolSignal;
|
||||||
import org.atriasoft.ewol.widget.Sizer.DisplayMode;
|
import org.atriasoft.ewol.widget.Sizer.DisplayMode;
|
||||||
|
import org.atriasoft.exml.annotation.XmlAttribute;
|
||||||
|
import org.atriasoft.exml.annotation.XmlManaged;
|
||||||
|
import org.atriasoft.exml.annotation.XmlName;
|
||||||
|
|
||||||
public class CheckBox extends Container {
|
public class CheckBox extends Container {
|
||||||
|
|
||||||
|
protected static void eventLabelClick(final CheckBox self) {
|
||||||
|
self.tick.setPropertyValue(!self.tick.getPropertyValue());
|
||||||
|
self.signalClick.emit();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void eventTickClick(final CheckBox self) {
|
||||||
|
self.signalClick.emit();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void eventTickDown(final CheckBox self) {
|
||||||
|
self.signalDown.emit();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void eventTickUp(final CheckBox self) {
|
||||||
|
self.signalUp.emit();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void eventTickValue(final CheckBox self, final Boolean value) {
|
||||||
|
self.signalValue.emit(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EwolSignal(name = "down", description = "CheckBox is Down")
|
||||||
|
public SignalEmpty signalDown = new SignalEmpty();
|
||||||
|
@EwolSignal(name = "up", description = "CheckBox is Up")
|
||||||
|
public SignalEmpty signalUp = new SignalEmpty();
|
||||||
|
@EwolSignal(name = "click", description = "CheckBox is Clicked")
|
||||||
|
public SignalEmpty signalClick = new SignalEmpty();
|
||||||
|
@EwolSignal(name = "value", description = "CheckBox value change")
|
||||||
|
public Signal<Boolean> signalValue = new Signal<>();
|
||||||
|
final Tick tick;
|
||||||
|
final Label label;
|
||||||
|
|
||||||
public CheckBox() {
|
public CheckBox() {
|
||||||
|
this("No Label");
|
||||||
|
}
|
||||||
|
|
||||||
|
public CheckBox(final String basicLabel) {
|
||||||
final Sizer subs = new Sizer(DisplayMode.modeHori);
|
final Sizer subs = new Sizer(DisplayMode.modeHori);
|
||||||
subs.setPropertyLockExpand(Vector3b.TRUE);
|
subs.setPropertyLockExpand(Vector3b.TRUE);
|
||||||
subs.setPropertyGravity(Gravity.CENTER);
|
subs.setPropertyGravity(Gravity.CENTER);
|
||||||
setSubWidget(subs);
|
setSubWidget(subs);
|
||||||
|
|
||||||
final Tick tick = new Tick();
|
this.tick = new Tick();
|
||||||
tick.setPropertyExpand(new Vector3b(false, true, true));
|
this.tick.setPropertyExpand(new Vector3b(false, true, true));
|
||||||
tick.setPropertyFill(Vector3b.FALSE);
|
this.tick.setPropertyFill(Vector3b.FALSE);
|
||||||
tick.setPropertyGravity(Gravity.CENTER);
|
this.tick.setPropertyGravity(Gravity.CENTER);
|
||||||
subs.subWidgetAdd(tick);
|
subs.subWidgetAdd(this.tick);
|
||||||
|
this.tick.signalClick.connectAuto(this, CheckBox::eventTickClick);
|
||||||
final Label label = new Label("No Label");
|
this.tick.signalUp.connectAuto(this, CheckBox::eventTickUp);
|
||||||
label.setPropertyExpand(Vector3b.TRUE);
|
this.tick.signalDown.connectAuto(this, CheckBox::eventTickDown);
|
||||||
label.setPropertyFill(Vector3b.FALSE);
|
this.tick.signalValue.connectAuto(this, CheckBox::eventTickValue);
|
||||||
label.setPropertyGravity(Gravity.LEFT);
|
|
||||||
subs.subWidgetAdd(label);
|
|
||||||
|
|
||||||
|
this.label = new Label(basicLabel);
|
||||||
|
this.label.setPropertyExpand(Vector3b.TRUE);
|
||||||
|
this.label.setPropertyFill(Vector3b.FALSE);
|
||||||
|
this.label.setPropertyGravity(Gravity.LEFT);
|
||||||
|
subs.subWidgetAdd(this.label);
|
||||||
|
this.label.signalPressed.connectAuto(this, CheckBox::eventLabelClick);
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlManaged
|
||||||
|
@XmlAttribute
|
||||||
|
@XmlName(value = "label")
|
||||||
|
@EwolDescription(value = "value of the label")
|
||||||
|
public String getPropertyLabel() {
|
||||||
|
return this.label.getPropertyValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlManaged
|
||||||
|
@XmlAttribute
|
||||||
|
@XmlName(value = "value")
|
||||||
|
@EwolDescription(value = "State of the checkbox")
|
||||||
|
public Boolean getPropertyValue() {
|
||||||
|
return this.tick.getPropertyValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPropertyLabel(final String value) {
|
||||||
|
this.label.setPropertyValue(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPropertyValue(final Boolean value) {
|
||||||
|
this.tick.setPropertyValue(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ public class Tick extends Widget {
|
|||||||
@EwolSignal(name = "click", description = "Tick is Clicked")
|
@EwolSignal(name = "click", description = "Tick is Clicked")
|
||||||
public SignalEmpty signalClick = new SignalEmpty();
|
public SignalEmpty signalClick = new SignalEmpty();
|
||||||
@EwolSignal(name = "value", description = "Tick value change")
|
@EwolSignal(name = "value", description = "Tick value change")
|
||||||
public Signal<Boolean> signalValue;
|
public Signal<Boolean> signalValue = new Signal<>();
|
||||||
// element over:
|
// element over:
|
||||||
Vector3f overPositionStart = Vector3f.ZERO;
|
Vector3f overPositionStart = Vector3f.ZERO;
|
||||||
Vector3f overPositionStop = Vector3f.ZERO;
|
Vector3f overPositionStop = Vector3f.ZERO;
|
||||||
@ -305,6 +305,7 @@ public class Tick extends Widget {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.propertyValue = propertyValue;
|
this.propertyValue = propertyValue;
|
||||||
|
this.signalValue.emit(this.propertyValue);
|
||||||
onChangePropertyValue();
|
onChangePropertyValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user