More Related Content
Similar to Creating an Uber Clone - Part XIX.pdf (20)
More from ShaiAlmog1 (20)
Creating an Uber Clone - Part XIX.pdf
- 4. public class AutoCompleteAddressInput extends TextField {
private final Container layers;
private int firstX = -1, firstY = -1;
private boolean dragStarted;
private CompletionContainer completion;
private ActionListener<ActionEvent> dragListener, releaseListener;
private Location currentLocation;
private boolean blockChangeEvent;
public AutoCompleteAddressInput(String value, String hint,
Container layers, CompletionContainer completion) {
super(value, hint, 40, TextField.ANY);
this.completion = completion;
this.layers = layers;
getHintLabel().setUIID("FromToTextFieldHint");
setUIID("FromToTextField");
addDataChangedListener((i, ii) -> {
if(blockChangeEvent) {
return;
}
if(!getText().equals(value)) {
completion.updateCompletion(getText(), this);
}
AutoCompleteAddressInput
- 5. public class AutoCompleteAddressInput extends TextField {
private final Container layers;
private int firstX = -1, firstY = -1;
private boolean dragStarted;
private CompletionContainer completion;
private ActionListener<ActionEvent> dragListener, releaseListener;
private Location currentLocation;
private boolean blockChangeEvent;
public AutoCompleteAddressInput(String value, String hint,
Container layers, CompletionContainer completion) {
super(value, hint, 40, TextField.ANY);
this.completion = completion;
this.layers = layers;
getHintLabel().setUIID("FromToTextFieldHint");
setUIID("FromToTextField");
addDataChangedListener((i, ii) -> {
if(blockChangeEvent) {
return;
}
if(!getText().equals(value)) {
completion.updateCompletion(getText(), this);
}
AutoCompleteAddressInput
- 6. public class AutoCompleteAddressInput extends TextField {
private final Container layers;
private int firstX = -1, firstY = -1;
private boolean dragStarted;
private CompletionContainer completion;
private ActionListener<ActionEvent> dragListener, releaseListener;
private Location currentLocation;
private boolean blockChangeEvent;
public AutoCompleteAddressInput(String value, String hint,
Container layers, CompletionContainer completion) {
super(value, hint, 40, TextField.ANY);
this.completion = completion;
this.layers = layers;
getHintLabel().setUIID("FromToTextFieldHint");
setUIID("FromToTextField");
addDataChangedListener((i, ii) -> {
if(blockChangeEvent) {
return;
}
if(!getText().equals(value)) {
completion.updateCompletion(getText(), this);
}
AutoCompleteAddressInput
- 7. addDataChangedListener((i, ii) -> {
if(blockChangeEvent) {
return;
}
if(!getText().equals(value)) {
completion.updateCompletion(getText(), this);
}
});
}
public void setTextNoEvent(String text) {
blockChangeEvent = true;
setText(text);
blockChangeEvent = false;
}
@Override
protected void focusGained() {
completion.initCompletionBar();
}
@Override
protected void deinitialize() {
AutoCompleteAddressInput
- 8. protected void deinitialize() {
if(dragListener != null) {
Form f = getComponentForm();
f.removePointerDraggedListener(dragListener);
f.removePointerReleasedListener(dragListener);
}
super.deinitialize();
}
@Override
protected void initComponent() {
super.initComponent();
if(dragListener == null) {
dragListener = e -> {
Component cmp = layers.getComponentAt(1);
boolean dragUp = layers.getLayout().
getComponentConstraint(cmp).equals(SOUTH);
if(dragStarted) {
e.consume();
cmp.getUnselectedStyle().setMarginUnit(Style.UNIT_TYPE_PIXELS);
if(dragUp) {
cmp.setPreferredSize(new Dimension(getDisplayWidth(),
firstY - e.getY() + getDisplayHeight() / 8));
AutoCompleteAddressInput
- 9. protected void deinitialize() {
if(dragListener != null) {
Form f = getComponentForm();
f.removePointerDraggedListener(dragListener);
f.removePointerReleasedListener(dragListener);
}
super.deinitialize();
}
@Override
protected void initComponent() {
super.initComponent();
if(dragListener == null) {
dragListener = e -> {
Component cmp = layers.getComponentAt(1);
boolean dragUp = layers.getLayout().
getComponentConstraint(cmp).equals(SOUTH);
if(dragStarted) {
e.consume();
cmp.getUnselectedStyle().setMarginUnit(Style.UNIT_TYPE_PIXELS);
if(dragUp) {
cmp.setPreferredSize(new Dimension(getDisplayWidth(),
firstY - e.getY() + getDisplayHeight() / 8));
AutoCompleteAddressInput
- 10. protected void deinitialize() {
if(dragListener != null) {
Form f = getComponentForm();
f.removePointerDraggedListener(dragListener);
f.removePointerReleasedListener(dragListener);
}
super.deinitialize();
}
@Override
protected void initComponent() {
super.initComponent();
if(dragListener == null) {
dragListener = e -> {
Component cmp = layers.getComponentAt(1);
boolean dragUp = layers.getLayout().
getComponentConstraint(cmp).equals(SOUTH);
if(dragStarted) {
e.consume();
cmp.getUnselectedStyle().setMarginUnit(Style.UNIT_TYPE_PIXELS);
if(dragUp) {
cmp.setPreferredSize(new Dimension(getDisplayWidth(),
firstY - e.getY() + getDisplayHeight() / 8));
AutoCompleteAddressInput
- 11. protected void deinitialize() {
if(dragListener != null) {
Form f = getComponentForm();
f.removePointerDraggedListener(dragListener);
f.removePointerReleasedListener(dragListener);
}
super.deinitialize();
}
@Override
protected void initComponent() {
super.initComponent();
if(dragListener == null) {
dragListener = e -> {
Component cmp = layers.getComponentAt(1);
boolean dragUp = layers.getLayout().
getComponentConstraint(cmp).equals(SOUTH);
if(dragStarted) {
e.consume();
cmp.getUnselectedStyle().setMarginUnit(Style.UNIT_TYPE_PIXELS);
if(dragUp) {
cmp.setPreferredSize(new Dimension(getDisplayWidth(),
firstY - e.getY() + getDisplayHeight() / 8));
AutoCompleteAddressInput
- 12. protected void deinitialize() {
if(dragListener != null) {
Form f = getComponentForm();
f.removePointerDraggedListener(dragListener);
f.removePointerReleasedListener(dragListener);
}
super.deinitialize();
}
@Override
protected void initComponent() {
super.initComponent();
if(dragListener == null) {
dragListener = e -> {
Component cmp = layers.getComponentAt(1);
boolean dragUp = layers.getLayout().
getComponentConstraint(cmp).equals(SOUTH);
if(dragStarted) {
e.consume();
cmp.getUnselectedStyle().setMarginUnit(Style.UNIT_TYPE_PIXELS);
if(dragUp) {
cmp.setPreferredSize(new Dimension(getDisplayWidth(),
firstY - e.getY() + getDisplayHeight() / 8));
AutoCompleteAddressInput
- 13. protected void deinitialize() {
if(dragListener != null) {
Form f = getComponentForm();
f.removePointerDraggedListener(dragListener);
f.removePointerReleasedListener(dragListener);
}
super.deinitialize();
}
@Override
protected void initComponent() {
super.initComponent();
if(dragListener == null) {
dragListener = e -> {
Component cmp = layers.getComponentAt(1);
boolean dragUp = layers.getLayout().
getComponentConstraint(cmp).equals(SOUTH);
if(dragStarted) {
e.consume();
cmp.getUnselectedStyle().setMarginUnit(Style.UNIT_TYPE_PIXELS);
if(dragUp) {
cmp.setPreferredSize(new Dimension(getDisplayWidth(),
firstY - e.getY() + getDisplayHeight() / 8));
AutoCompleteAddressInput
- 14. cmp.setPreferredSize(new Dimension(getDisplayWidth(),
firstY - e.getY() + getDisplayHeight() / 8));
} else {
cmp.getUnselectedStyle().setMarginTop(
Math.max(0, e.getY() - firstY));
}
layers.revalidate();
} else {
Component draggedCmp =
getComponentForm().getComponentAt(e.getX(), e.getY());
if(!draggedCmp.isChildOf((Container)cmp)) {
return;
}
if(firstX == -1) {
firstX = e.getX();
firstY = e.getY();
}
if((!dragUp && e.getY() - firstY > convertToPixels(2)) ||
(dragUp && firstY - e.getY() > convertToPixels(2))) {
e.consume();
dragStarted = true;
}
AutoCompleteAddressInput
- 15. cmp.setPreferredSize(new Dimension(getDisplayWidth(),
firstY - e.getY() + getDisplayHeight() / 8));
} else {
cmp.getUnselectedStyle().setMarginTop(
Math.max(0, e.getY() - firstY));
}
layers.revalidate();
} else {
Component draggedCmp =
getComponentForm().getComponentAt(e.getX(), e.getY());
if(!draggedCmp.isChildOf((Container)cmp)) {
return;
}
if(firstX == -1) {
firstX = e.getX();
firstY = e.getY();
}
if((!dragUp && e.getY() - firstY > convertToPixels(2)) ||
(dragUp && firstY - e.getY() > convertToPixels(2))) {
e.consume();
dragStarted = true;
}
AutoCompleteAddressInput
- 16. (dragUp && firstY - e.getY() > convertToPixels(2))) {
e.consume();
dragStarted = true;
}
}
};
getComponentForm().addPointerDraggedListener(dragListener);
releaseListener = e -> {
if(dragStarted) {
e.consume();
Component cmp = layers.getComponentAt(1);
boolean dragUp = layers.getLayout().
getComponentConstraint(cmp).equals(SOUTH);
cmp.remove();
cmp.setUIID(cmp.getUIID());
boolean animateDown;
if(dragUp) {
animateDown = !(firstY - e.getY() > convertToPixels(8));
} else {
animateDown = e.getY() - firstY > convertToPixels(8);
}
if(animateDown) {
layers.add(SOUTH, cmp);
AutoCompleteAddressInput
- 17. if(dragUp) {
animateDown = !(firstY - e.getY() > convertToPixels(8));
} else {
animateDown = e.getY() - firstY > convertToPixels(8);
}
if(animateDown) {
layers.add(SOUTH, cmp);
cmp.setPreferredSize(
new Dimension(getDisplayWidth(), getDisplayHeight() / 8));
Style s = cmp.getUnselectedStyle();
s.setMarginUnit(Style.UNIT_TYPE_DIPS);
s.setMarginLeft(3);
s.setMarginRight(3);
} else {
layers.add(CENTER, cmp);
cmp.setPreferredSize(null);
}
layers.animateLayout(200);
firstX = -1;
firstY = -1;
dragStarted = false;
}
};
AutoCompleteAddressInput
- 18. s.setMarginRight(3);
} else {
layers.add(CENTER, cmp);
cmp.setPreferredSize(null);
}
layers.animateLayout(200);
firstX = -1;
firstY = -1;
dragStarted = false;
}
};
getComponentForm().addPointerReleasedListener(releaseListener);
}
}
public Location getCurrentLocation() {
return currentLocation;
}
public void setCurrentLocation(Location currentLocation) {
this.currentLocation = currentLocation;
}
}
AutoCompleteAddressInput