SlideShare a Scribd company logo
Creating a Facebook Clone - Part IV
© Codename One 2017 all rights reserved
© Codename One 2017 all rights reserved
© Codename One 2017 all rights reserved
© Codename One 2017 all rights reserved
public class LoginForm extends Form {
private Label logo =
new Label("uf308", "IconFont");
private TextField user = new TextField("", "Email or Phone", 30,
TextField.EMAILADDR);
private TextField password = new TextField("", "Password", 30,
TextField.PASSWORD);
private Button login = new Button("Log In");
private Button signUp = new Button("Sign Up for Facebook");
private Button needHelp = new Button("Need Help?");
public LoginForm() {
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
LoginForm
public class LoginForm extends Form {
private Label logo =
new Label("uf308", "IconFont");
private TextField user = new TextField("", "Email or Phone", 30,
TextField.EMAILADDR);
private TextField password = new TextField("", "Password", 30,
TextField.PASSWORD);
private Button login = new Button("Log In");
private Button signUp = new Button("Sign Up for Facebook");
private Button needHelp = new Button("Need Help?");
public LoginForm() {
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
LoginForm
public class LoginForm extends Form {
private Label logo =
new Label("uf308", "IconFont");
private TextField user = new TextField("", "Email or Phone", 30,
TextField.EMAILADDR);
private TextField password = new TextField("", "Password", 30,
TextField.PASSWORD);
private Button login = new Button("Log In");
private Button signUp = new Button("Sign Up for Facebook");
private Button needHelp = new Button("Need Help?");
public LoginForm() {
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
LoginForm
public class LoginForm extends Form {
private Label logo =
new Label("uf308", "IconFont");
private TextField user = new TextField("", "Email or Phone", 30,
TextField.EMAILADDR);
private TextField password = new TextField("", "Password", 30,
TextField.PASSWORD);
private Button login = new Button("Log In");
private Button signUp = new Button("Sign Up for Facebook");
private Button needHelp = new Button("Need Help?");
public LoginForm() {
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
LoginForm
public class LoginForm extends Form {
private Label logo =
new Label("uf308", "IconFont");
private TextField user = new TextField("", "Email or Phone", 30,
TextField.EMAILADDR);
private TextField password = new TextField("", "Password", 30,
TextField.PASSWORD);
private Button login = new Button("Log In");
private Button signUp = new Button("Sign Up for Facebook");
private Button needHelp = new Button("Need Help?");
public LoginForm() {
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
LoginForm
public class LoginForm extends Form {
private Label logo =
new Label("uf308", "IconFont");
private TextField user = new TextField("", "Email or Phone", 30,
TextField.EMAILADDR);
private TextField password = new TextField("", "Password", 30,
TextField.PASSWORD);
private Button login = new Button("Log In");
private Button signUp = new Button("Sign Up for Facebook");
private Button needHelp = new Button("Need Help?");
public LoginForm() {
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
LoginForm
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
bl.defineLandscapeSwap(NORTH, EAST);
}
if(getUIManager().
isThemeConstant("ComponentGroupBool", false)) {
Container content = BorderLayout.centerAbsolute(
BoxLayout.encloseY(
ComponentGroup.enclose(user, password),
login));
content.setUIID("PaddedContainer");
add(CENTER, content);
login.setUIID("BlueButtonOnBlueBackground");
setUIID("SplashForm");
signUp.setUIID("WhiteLinkButton");
needHelp.setUIID("WhiteLinkButton");
content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp));
} else {
LoginForm
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
bl.defineLandscapeSwap(NORTH, EAST);
}
if(getUIManager().
isThemeConstant("ComponentGroupBool", false)) {
Container content = BorderLayout.centerAbsolute(
BoxLayout.encloseY(
ComponentGroup.enclose(user, password),
login));
content.setUIID("PaddedContainer");
add(CENTER, content);
login.setUIID("BlueButtonOnBlueBackground");
setUIID("SplashForm");
signUp.setUIID("WhiteLinkButton");
needHelp.setUIID("WhiteLinkButton");
content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp));
} else {
LoginForm
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
bl.defineLandscapeSwap(NORTH, EAST);
}
if(getUIManager().
isThemeConstant("ComponentGroupBool", false)) {
Container content = BorderLayout.centerAbsolute(
BoxLayout.encloseY(
ComponentGroup.enclose(user, password),
login));
content.setUIID("PaddedContainer");
add(CENTER, content);
login.setUIID("BlueButtonOnBlueBackground");
setUIID("SplashForm");
signUp.setUIID("WhiteLinkButton");
needHelp.setUIID("WhiteLinkButton");
content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp));
} else {
LoginForm
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
bl.defineLandscapeSwap(NORTH, EAST);
}
if(getUIManager().
isThemeConstant("ComponentGroupBool", false)) {
Container content = BorderLayout.centerAbsolute(
BoxLayout.encloseY(
ComponentGroup.enclose(user, password),
login));
content.setUIID("PaddedContainer");
add(CENTER, content);
login.setUIID("BlueButtonOnBlueBackground");
setUIID("SplashForm");
signUp.setUIID("WhiteLinkButton");
needHelp.setUIID("WhiteLinkButton");
content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp));
} else {
LoginForm
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
bl.defineLandscapeSwap(NORTH, EAST);
}
if(getUIManager().
isThemeConstant("ComponentGroupBool", false)) {
Container content = BorderLayout.centerAbsolute(
BoxLayout.encloseY(
ComponentGroup.enclose(user, password),
login));
content.setUIID("PaddedContainer");
add(CENTER, content);
login.setUIID("BlueButtonOnBlueBackground");
setUIID("SplashForm");
signUp.setUIID("WhiteLinkButton");
needHelp.setUIID("WhiteLinkButton");
content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp));
} else {
LoginForm
super(new BorderLayout());
getToolbar().setUIID("Container");
logo.setName("Logo");
Container logoContainer = BorderLayout.centerAbsolute(logo);
logoContainer.setUIID("LoginTitle");
add(NORTH, logoContainer);
if(!isTablet()) {
BorderLayout bl = ((BorderLayout)getLayout());
bl.defineLandscapeSwap(NORTH, EAST);
}
if(getUIManager().
isThemeConstant("ComponentGroupBool", false)) {
Container content = BorderLayout.centerAbsolute(
BoxLayout.encloseY(
ComponentGroup.enclose(user, password),
login));
content.setUIID("PaddedContainer");
add(CENTER, content);
login.setUIID("BlueButtonOnBlueBackground");
setUIID("SplashForm");
signUp.setUIID("WhiteLinkButton");
needHelp.setUIID("WhiteLinkButton");
content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp));
} else {
LoginForm
content.setUIID("PaddedContainer");
add(CENTER, content);
login.setUIID("BlueButtonOnBlueBackground");
setUIID("SplashForm");
signUp.setUIID("WhiteLinkButton");
needHelp.setUIID("WhiteLinkButton");
content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp));
} else {
login.setUIID("BlueButton");
Button forgotPassword = new Button("Forgot Password", "BlueText");
signUp.setUIID("GreenButton");
signUp.setText("Create new Facebook Account");
Container cnt = BoxLayout.encloseY(
user, password, login, forgotPassword, signUp);
cnt.setUIID("PaddedContainer");
cnt.setScrollableY(true);
add(CENTER, cnt);
}
}
protected boolean shouldPaintStatusBar() {
return false;
}
}
LoginForm
content.setUIID("PaddedContainer");
add(CENTER, content);
login.setUIID("BlueButtonOnBlueBackground");
setUIID("SplashForm");
signUp.setUIID("WhiteLinkButton");
needHelp.setUIID("WhiteLinkButton");
content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp));
} else {
login.setUIID("BlueButton");
Button forgotPassword = new Button("Forgot Password", "BlueText");
signUp.setUIID("GreenButton");
signUp.setText("Create new Facebook Account");
Container cnt = BoxLayout.encloseY(
user, password, login, forgotPassword, signUp);
cnt.setUIID("PaddedContainer");
cnt.setScrollableY(true);
add(CENTER, cnt);
}
}
protected boolean shouldPaintStatusBar() {
return false;
}
}
LoginForm
Why we Need the Content Container
© Codename One 2017 all rights reserved
#Constants {
includeNativeBool: true;
scrollVisibleBool: false;
labelGap: 2;
capsButtonUiids:"BlueText,GreenButton,BlueButton";
}
theme.css
© Codename One 2017 all rights reserved
LoginTitle {
background-image: url(images/login-banner.jpg);
cn1-source-dpi: 0;
cn1-background-type: cn1-image-scaled-fill;
margin: 0px;
padding: 8mm;
}
PaddedContainer {
padding: 3mm;
margin: 0mm;
background: transparent;
}
BaseButton {
text-align: center;
font-family: "native:MainRegular";
font-size: 2.6mm;
padding: 1.4mm;
margin: 2mm;
color: white;
}
BlueButtonOnBlueBackground {
theme.css
LoginTitle {
background-image: url(images/login-banner.jpg);
cn1-source-dpi: 0;
cn1-background-type: cn1-image-scaled-fill;
margin: 0px;
padding: 8mm;
}
PaddedContainer {
padding: 3mm;
margin: 0mm;
background: transparent;
}
BaseButton {
text-align: center;
font-family: "native:MainRegular";
font-size: 2.6mm;
padding: 1.4mm;
margin: 2mm;
color: white;
}
BlueButtonOnBlueBackground {
theme.css
LoginTitle {
background-image: url(images/login-banner.jpg);
cn1-source-dpi: 0;
cn1-background-type: cn1-image-scaled-fill;
margin: 0px;
padding: 8mm;
}
PaddedContainer {
padding: 3mm;
margin: 0mm;
background: transparent;
}
BaseButton {
text-align: center;
font-family: "native:MainRegular";
font-size: 2.6mm;
padding: 1.4mm;
margin: 2mm;
color: white;
}
BlueButtonOnBlueBackground {
theme.css
LoginTitle {
background-image: url(images/login-banner.jpg);
cn1-source-dpi: 0;
cn1-background-type: cn1-image-scaled-fill;
margin: 0px;
padding: 8mm;
}
PaddedContainer {
padding: 3mm;
margin: 0mm;
background: transparent;
}
BaseButton {
text-align: center;
font-family: "native:MainRegular";
font-size: 2.6mm;
padding: 1.4mm;
margin: 2mm;
color: white;
}
BlueButtonOnBlueBackground {
theme.css
LoginTitle {
background-image: url(images/login-banner.jpg);
cn1-source-dpi: 0;
cn1-background-type: cn1-image-scaled-fill;
margin: 0px;
padding: 8mm;
}
PaddedContainer {
padding: 3mm;
margin: 0mm;
background: transparent;
}
BaseButton {
text-align: center;
font-family: "native:MainRegular";
font-size: 2.6mm;
padding: 1.4mm;
margin: 2mm;
color: white;
}
BlueButtonOnBlueBackground {
theme.css
LoginTitle {
background-image: url(images/login-banner.jpg);
cn1-source-dpi: 0;
cn1-background-type: cn1-image-scaled-fill;
margin: 0px;
padding: 8mm;
}
PaddedContainer {
padding: 3mm;
margin: 0mm;
background: transparent;
}
BaseButton {
text-align: center;
font-family: "native:MainRegular";
font-size: 2.6mm;
padding: 1.4mm;
margin: 2mm;
color: white;
}
BlueButtonOnBlueBackground {
theme.css
padding: 1.4mm;
margin: 2mm;
color: white;
}
BlueButtonOnBlueBackground {
border-radius: 1mm;
background: #587EBE;
cn1-derive: BaseButton;
}
BlueButton {
background: #587EBE;
font-family: "native:MainBold";
cn1-derive: BaseButton;
}
BlueText {
cn1-derive: BaseButton;
font-family: "native:MainBold";
color: #385898;
background: transparent;
}
GreenButton {
cn1-derive: BaseButton;
font-family: "native:MainBold";
background: #00A400;
theme.css
}
GreenButton {
cn1-derive: BaseButton;
font-family: "native:MainBold";
background: #00A400;
}
WhiteLinkButton {
cn1-derive: BaseButton;
font-family: "native:MainLight";
margin: 0px;
}
TextHint {
font-family: "native:MainLight";
font-size: 2.6mm;
padding: 2mm;
}
TextField {
margin: 2mm;
}
GroupElementFirst {
padding: 3mm;
}
GroupElementLast {
padding: 3mm;
theme.css
GreenButton {
cn1-derive: BaseButton;
font-family: "native:MainBold";
background: #00A400;
}
WhiteLinkButton {
cn1-derive: BaseButton;
font-family: "native:MainLight";
margin: 0px;
}
TextHint {
font-family: "native:MainLight";
font-size: 2.6mm;
padding: 2mm;
}
TextField {
margin: 2mm;
}
GroupElementFirst {
padding: 3mm;
}
GroupElementLast {
padding: 3mm;
}
theme.css
public static void showLoginForm() {
new LoginForm().show();
}
UIController

More Related Content

Similar to Creating a Facebook Clone - Part IV.pdf

Creating a Facebook Clone - Part VII.pdf
Creating a Facebook Clone - Part VII.pdfCreating a Facebook Clone - Part VII.pdf
Creating a Facebook Clone - Part VII.pdf
ShaiAlmog1
 
Creating a Facebook Clone - Part XLI.pdf
Creating a Facebook Clone - Part XLI.pdfCreating a Facebook Clone - Part XLI.pdf
Creating a Facebook Clone - Part XLI.pdf
ShaiAlmog1
 
Creating a Facebook Clone - Part XV - Transcript.pdf
Creating a Facebook Clone - Part XV - Transcript.pdfCreating a Facebook Clone - Part XV - Transcript.pdf
Creating a Facebook Clone - Part XV - Transcript.pdf
ShaiAlmog1
 
Creating an Uber Clone - Part V.pdf
Creating an Uber Clone - Part V.pdfCreating an Uber Clone - Part V.pdf
Creating an Uber Clone - Part V.pdf
ShaiAlmog1
 
Creating a Facebook Clone - Part XXXV - Transcript.pdf
Creating a Facebook Clone - Part XXXV - Transcript.pdfCreating a Facebook Clone - Part XXXV - Transcript.pdf
Creating a Facebook Clone - Part XXXV - Transcript.pdf
ShaiAlmog1
 
Creating an Uber Clone - Part V - Transcript.pdf
Creating an Uber Clone - Part V - Transcript.pdfCreating an Uber Clone - Part V - Transcript.pdf
Creating an Uber Clone - Part V - Transcript.pdf
ShaiAlmog1
 
Creating a Facebook Clone - Part XXXV.pdf
Creating a Facebook Clone - Part XXXV.pdfCreating a Facebook Clone - Part XXXV.pdf
Creating a Facebook Clone - Part XXXV.pdf
ShaiAlmog1
 
Creating a Facebook Clone - Part XXVIII - Transcript.pdf
Creating a Facebook Clone - Part XXVIII - Transcript.pdfCreating a Facebook Clone - Part XXVIII - Transcript.pdf
Creating a Facebook Clone - Part XXVIII - Transcript.pdf
ShaiAlmog1
 
Creating a Facebook Clone - Part XLII.pdf
Creating a Facebook Clone - Part XLII.pdfCreating a Facebook Clone - Part XLII.pdf
Creating a Facebook Clone - Part XLII.pdf
ShaiAlmog1
 
Creating a Facebook Clone - Part VIII.pdf
Creating a Facebook Clone - Part VIII.pdfCreating a Facebook Clone - Part VIII.pdf
Creating a Facebook Clone - Part VIII.pdf
ShaiAlmog1
 
UI Framework Development using GWT and HTML Canvas - By Iarosla Kobyliukh
UI Framework Development using GWT and HTML Canvas - By Iarosla KobyliukhUI Framework Development using GWT and HTML Canvas - By Iarosla Kobyliukh
UI Framework Development using GWT and HTML Canvas - By Iarosla Kobyliukh
GWTcon
 
Creating a Facebook Clone - Part VIII - Transcript.pdf
Creating a Facebook Clone - Part VIII - Transcript.pdfCreating a Facebook Clone - Part VIII - Transcript.pdf
Creating a Facebook Clone - Part VIII - Transcript.pdf
ShaiAlmog1
 
Initial UI Mockup - Part 2.pdf
Initial UI Mockup - Part 2.pdfInitial UI Mockup - Part 2.pdf
Initial UI Mockup - Part 2.pdf
ShaiAlmog1
 
Initial UI Mockup - Part 2 - Transcript.pdf
Initial UI Mockup - Part 2 - Transcript.pdfInitial UI Mockup - Part 2 - Transcript.pdf
Initial UI Mockup - Part 2 - Transcript.pdf
ShaiAlmog1
 
Why am I getting an out of memory error and no window of my .pdf
Why am I getting an out of memory error and no window of my .pdfWhy am I getting an out of memory error and no window of my .pdf
Why am I getting an out of memory error and no window of my .pdf
aakarcreations1
 
Creating a Facebook Clone - Part XXX.pdf
Creating a Facebook Clone - Part XXX.pdfCreating a Facebook Clone - Part XXX.pdf
Creating a Facebook Clone - Part XXX.pdf
ShaiAlmog1
 
Object Oriented Programming Session 4 part 2 Slides .pptx
Object Oriented Programming Session 4 part 2 Slides .pptxObject Oriented Programming Session 4 part 2 Slides .pptx
Object Oriented Programming Session 4 part 2 Slides .pptx
r209777z
 
Adapting to Tablets and Desktops - Part 1.pdf
Adapting to Tablets and Desktops - Part 1.pdfAdapting to Tablets and Desktops - Part 1.pdf
Adapting to Tablets and Desktops - Part 1.pdf
ShaiAlmog1
 
Creating an Uber - Part VI.pdf
Creating an Uber - Part VI.pdfCreating an Uber - Part VI.pdf
Creating an Uber - Part VI.pdf
ShaiAlmog1
 
Creating an Uber Clone - Part XXXX - Transcript.pdf
Creating an Uber Clone - Part XXXX - Transcript.pdfCreating an Uber Clone - Part XXXX - Transcript.pdf
Creating an Uber Clone - Part XXXX - Transcript.pdf
ShaiAlmog1
 

Similar to Creating a Facebook Clone - Part IV.pdf (20)

Creating a Facebook Clone - Part VII.pdf
Creating a Facebook Clone - Part VII.pdfCreating a Facebook Clone - Part VII.pdf
Creating a Facebook Clone - Part VII.pdf
 
Creating a Facebook Clone - Part XLI.pdf
Creating a Facebook Clone - Part XLI.pdfCreating a Facebook Clone - Part XLI.pdf
Creating a Facebook Clone - Part XLI.pdf
 
Creating a Facebook Clone - Part XV - Transcript.pdf
Creating a Facebook Clone - Part XV - Transcript.pdfCreating a Facebook Clone - Part XV - Transcript.pdf
Creating a Facebook Clone - Part XV - Transcript.pdf
 
Creating an Uber Clone - Part V.pdf
Creating an Uber Clone - Part V.pdfCreating an Uber Clone - Part V.pdf
Creating an Uber Clone - Part V.pdf
 
Creating a Facebook Clone - Part XXXV - Transcript.pdf
Creating a Facebook Clone - Part XXXV - Transcript.pdfCreating a Facebook Clone - Part XXXV - Transcript.pdf
Creating a Facebook Clone - Part XXXV - Transcript.pdf
 
Creating an Uber Clone - Part V - Transcript.pdf
Creating an Uber Clone - Part V - Transcript.pdfCreating an Uber Clone - Part V - Transcript.pdf
Creating an Uber Clone - Part V - Transcript.pdf
 
Creating a Facebook Clone - Part XXXV.pdf
Creating a Facebook Clone - Part XXXV.pdfCreating a Facebook Clone - Part XXXV.pdf
Creating a Facebook Clone - Part XXXV.pdf
 
Creating a Facebook Clone - Part XXVIII - Transcript.pdf
Creating a Facebook Clone - Part XXVIII - Transcript.pdfCreating a Facebook Clone - Part XXVIII - Transcript.pdf
Creating a Facebook Clone - Part XXVIII - Transcript.pdf
 
Creating a Facebook Clone - Part XLII.pdf
Creating a Facebook Clone - Part XLII.pdfCreating a Facebook Clone - Part XLII.pdf
Creating a Facebook Clone - Part XLII.pdf
 
Creating a Facebook Clone - Part VIII.pdf
Creating a Facebook Clone - Part VIII.pdfCreating a Facebook Clone - Part VIII.pdf
Creating a Facebook Clone - Part VIII.pdf
 
UI Framework Development using GWT and HTML Canvas - By Iarosla Kobyliukh
UI Framework Development using GWT and HTML Canvas - By Iarosla KobyliukhUI Framework Development using GWT and HTML Canvas - By Iarosla Kobyliukh
UI Framework Development using GWT and HTML Canvas - By Iarosla Kobyliukh
 
Creating a Facebook Clone - Part VIII - Transcript.pdf
Creating a Facebook Clone - Part VIII - Transcript.pdfCreating a Facebook Clone - Part VIII - Transcript.pdf
Creating a Facebook Clone - Part VIII - Transcript.pdf
 
Initial UI Mockup - Part 2.pdf
Initial UI Mockup - Part 2.pdfInitial UI Mockup - Part 2.pdf
Initial UI Mockup - Part 2.pdf
 
Initial UI Mockup - Part 2 - Transcript.pdf
Initial UI Mockup - Part 2 - Transcript.pdfInitial UI Mockup - Part 2 - Transcript.pdf
Initial UI Mockup - Part 2 - Transcript.pdf
 
Why am I getting an out of memory error and no window of my .pdf
Why am I getting an out of memory error and no window of my .pdfWhy am I getting an out of memory error and no window of my .pdf
Why am I getting an out of memory error and no window of my .pdf
 
Creating a Facebook Clone - Part XXX.pdf
Creating a Facebook Clone - Part XXX.pdfCreating a Facebook Clone - Part XXX.pdf
Creating a Facebook Clone - Part XXX.pdf
 
Object Oriented Programming Session 4 part 2 Slides .pptx
Object Oriented Programming Session 4 part 2 Slides .pptxObject Oriented Programming Session 4 part 2 Slides .pptx
Object Oriented Programming Session 4 part 2 Slides .pptx
 
Adapting to Tablets and Desktops - Part 1.pdf
Adapting to Tablets and Desktops - Part 1.pdfAdapting to Tablets and Desktops - Part 1.pdf
Adapting to Tablets and Desktops - Part 1.pdf
 
Creating an Uber - Part VI.pdf
Creating an Uber - Part VI.pdfCreating an Uber - Part VI.pdf
Creating an Uber - Part VI.pdf
 
Creating an Uber Clone - Part XXXX - Transcript.pdf
Creating an Uber Clone - Part XXXX - Transcript.pdfCreating an Uber Clone - Part XXXX - Transcript.pdf
Creating an Uber Clone - Part XXXX - Transcript.pdf
 

More from ShaiAlmog1

The Duck Teaches Learn to debug from the masters. Local to production- kill ...
The Duck Teaches  Learn to debug from the masters. Local to production- kill ...The Duck Teaches  Learn to debug from the masters. Local to production- kill ...
The Duck Teaches Learn to debug from the masters. Local to production- kill ...
ShaiAlmog1
 
create-netflix-clone-06-client-ui.pdf
create-netflix-clone-06-client-ui.pdfcreate-netflix-clone-06-client-ui.pdf
create-netflix-clone-06-client-ui.pdf
ShaiAlmog1
 
create-netflix-clone-01-introduction_transcript.pdf
create-netflix-clone-01-introduction_transcript.pdfcreate-netflix-clone-01-introduction_transcript.pdf
create-netflix-clone-01-introduction_transcript.pdf
ShaiAlmog1
 
create-netflix-clone-02-server_transcript.pdf
create-netflix-clone-02-server_transcript.pdfcreate-netflix-clone-02-server_transcript.pdf
create-netflix-clone-02-server_transcript.pdf
ShaiAlmog1
 
create-netflix-clone-04-server-continued_transcript.pdf
create-netflix-clone-04-server-continued_transcript.pdfcreate-netflix-clone-04-server-continued_transcript.pdf
create-netflix-clone-04-server-continued_transcript.pdf
ShaiAlmog1
 
create-netflix-clone-01-introduction.pdf
create-netflix-clone-01-introduction.pdfcreate-netflix-clone-01-introduction.pdf
create-netflix-clone-01-introduction.pdf
ShaiAlmog1
 
create-netflix-clone-06-client-ui_transcript.pdf
create-netflix-clone-06-client-ui_transcript.pdfcreate-netflix-clone-06-client-ui_transcript.pdf
create-netflix-clone-06-client-ui_transcript.pdf
ShaiAlmog1
 
create-netflix-clone-03-server.pdf
create-netflix-clone-03-server.pdfcreate-netflix-clone-03-server.pdf
create-netflix-clone-03-server.pdf
ShaiAlmog1
 
create-netflix-clone-04-server-continued.pdf
create-netflix-clone-04-server-continued.pdfcreate-netflix-clone-04-server-continued.pdf
create-netflix-clone-04-server-continued.pdf
ShaiAlmog1
 
create-netflix-clone-05-client-model_transcript.pdf
create-netflix-clone-05-client-model_transcript.pdfcreate-netflix-clone-05-client-model_transcript.pdf
create-netflix-clone-05-client-model_transcript.pdf
ShaiAlmog1
 
create-netflix-clone-03-server_transcript.pdf
create-netflix-clone-03-server_transcript.pdfcreate-netflix-clone-03-server_transcript.pdf
create-netflix-clone-03-server_transcript.pdf
ShaiAlmog1
 
create-netflix-clone-02-server.pdf
create-netflix-clone-02-server.pdfcreate-netflix-clone-02-server.pdf
create-netflix-clone-02-server.pdf
ShaiAlmog1
 
create-netflix-clone-05-client-model.pdf
create-netflix-clone-05-client-model.pdfcreate-netflix-clone-05-client-model.pdf
create-netflix-clone-05-client-model.pdf
ShaiAlmog1
 
Creating a Whatsapp Clone - Part II.pdf
Creating a Whatsapp Clone - Part II.pdfCreating a Whatsapp Clone - Part II.pdf
Creating a Whatsapp Clone - Part II.pdf
ShaiAlmog1
 
Creating a Whatsapp Clone - Part IX - Transcript.pdf
Creating a Whatsapp Clone - Part IX - Transcript.pdfCreating a Whatsapp Clone - Part IX - Transcript.pdf
Creating a Whatsapp Clone - Part IX - Transcript.pdf
ShaiAlmog1
 
Creating a Whatsapp Clone - Part II - Transcript.pdf
Creating a Whatsapp Clone - Part II - Transcript.pdfCreating a Whatsapp Clone - Part II - Transcript.pdf
Creating a Whatsapp Clone - Part II - Transcript.pdf
ShaiAlmog1
 
Creating a Whatsapp Clone - Part V - Transcript.pdf
Creating a Whatsapp Clone - Part V - Transcript.pdfCreating a Whatsapp Clone - Part V - Transcript.pdf
Creating a Whatsapp Clone - Part V - Transcript.pdf
ShaiAlmog1
 
Creating a Whatsapp Clone - Part IV - Transcript.pdf
Creating a Whatsapp Clone - Part IV - Transcript.pdfCreating a Whatsapp Clone - Part IV - Transcript.pdf
Creating a Whatsapp Clone - Part IV - Transcript.pdf
ShaiAlmog1
 
Creating a Whatsapp Clone - Part IV.pdf
Creating a Whatsapp Clone - Part IV.pdfCreating a Whatsapp Clone - Part IV.pdf
Creating a Whatsapp Clone - Part IV.pdf
ShaiAlmog1
 
Creating a Whatsapp Clone - Part I - Transcript.pdf
Creating a Whatsapp Clone - Part I - Transcript.pdfCreating a Whatsapp Clone - Part I - Transcript.pdf
Creating a Whatsapp Clone - Part I - Transcript.pdf
ShaiAlmog1
 

More from ShaiAlmog1 (20)

The Duck Teaches Learn to debug from the masters. Local to production- kill ...
The Duck Teaches  Learn to debug from the masters. Local to production- kill ...The Duck Teaches  Learn to debug from the masters. Local to production- kill ...
The Duck Teaches Learn to debug from the masters. Local to production- kill ...
 
create-netflix-clone-06-client-ui.pdf
create-netflix-clone-06-client-ui.pdfcreate-netflix-clone-06-client-ui.pdf
create-netflix-clone-06-client-ui.pdf
 
create-netflix-clone-01-introduction_transcript.pdf
create-netflix-clone-01-introduction_transcript.pdfcreate-netflix-clone-01-introduction_transcript.pdf
create-netflix-clone-01-introduction_transcript.pdf
 
create-netflix-clone-02-server_transcript.pdf
create-netflix-clone-02-server_transcript.pdfcreate-netflix-clone-02-server_transcript.pdf
create-netflix-clone-02-server_transcript.pdf
 
create-netflix-clone-04-server-continued_transcript.pdf
create-netflix-clone-04-server-continued_transcript.pdfcreate-netflix-clone-04-server-continued_transcript.pdf
create-netflix-clone-04-server-continued_transcript.pdf
 
create-netflix-clone-01-introduction.pdf
create-netflix-clone-01-introduction.pdfcreate-netflix-clone-01-introduction.pdf
create-netflix-clone-01-introduction.pdf
 
create-netflix-clone-06-client-ui_transcript.pdf
create-netflix-clone-06-client-ui_transcript.pdfcreate-netflix-clone-06-client-ui_transcript.pdf
create-netflix-clone-06-client-ui_transcript.pdf
 
create-netflix-clone-03-server.pdf
create-netflix-clone-03-server.pdfcreate-netflix-clone-03-server.pdf
create-netflix-clone-03-server.pdf
 
create-netflix-clone-04-server-continued.pdf
create-netflix-clone-04-server-continued.pdfcreate-netflix-clone-04-server-continued.pdf
create-netflix-clone-04-server-continued.pdf
 
create-netflix-clone-05-client-model_transcript.pdf
create-netflix-clone-05-client-model_transcript.pdfcreate-netflix-clone-05-client-model_transcript.pdf
create-netflix-clone-05-client-model_transcript.pdf
 
create-netflix-clone-03-server_transcript.pdf
create-netflix-clone-03-server_transcript.pdfcreate-netflix-clone-03-server_transcript.pdf
create-netflix-clone-03-server_transcript.pdf
 
create-netflix-clone-02-server.pdf
create-netflix-clone-02-server.pdfcreate-netflix-clone-02-server.pdf
create-netflix-clone-02-server.pdf
 
create-netflix-clone-05-client-model.pdf
create-netflix-clone-05-client-model.pdfcreate-netflix-clone-05-client-model.pdf
create-netflix-clone-05-client-model.pdf
 
Creating a Whatsapp Clone - Part II.pdf
Creating a Whatsapp Clone - Part II.pdfCreating a Whatsapp Clone - Part II.pdf
Creating a Whatsapp Clone - Part II.pdf
 
Creating a Whatsapp Clone - Part IX - Transcript.pdf
Creating a Whatsapp Clone - Part IX - Transcript.pdfCreating a Whatsapp Clone - Part IX - Transcript.pdf
Creating a Whatsapp Clone - Part IX - Transcript.pdf
 
Creating a Whatsapp Clone - Part II - Transcript.pdf
Creating a Whatsapp Clone - Part II - Transcript.pdfCreating a Whatsapp Clone - Part II - Transcript.pdf
Creating a Whatsapp Clone - Part II - Transcript.pdf
 
Creating a Whatsapp Clone - Part V - Transcript.pdf
Creating a Whatsapp Clone - Part V - Transcript.pdfCreating a Whatsapp Clone - Part V - Transcript.pdf
Creating a Whatsapp Clone - Part V - Transcript.pdf
 
Creating a Whatsapp Clone - Part IV - Transcript.pdf
Creating a Whatsapp Clone - Part IV - Transcript.pdfCreating a Whatsapp Clone - Part IV - Transcript.pdf
Creating a Whatsapp Clone - Part IV - Transcript.pdf
 
Creating a Whatsapp Clone - Part IV.pdf
Creating a Whatsapp Clone - Part IV.pdfCreating a Whatsapp Clone - Part IV.pdf
Creating a Whatsapp Clone - Part IV.pdf
 
Creating a Whatsapp Clone - Part I - Transcript.pdf
Creating a Whatsapp Clone - Part I - Transcript.pdfCreating a Whatsapp Clone - Part I - Transcript.pdf
Creating a Whatsapp Clone - Part I - Transcript.pdf
 

Recently uploaded

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 

Recently uploaded (20)

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 

Creating a Facebook Clone - Part IV.pdf

  • 1. Creating a Facebook Clone - Part IV
  • 2. © Codename One 2017 all rights reserved
  • 3. © Codename One 2017 all rights reserved
  • 4. © Codename One 2017 all rights reserved
  • 5. © Codename One 2017 all rights reserved
  • 6. public class LoginForm extends Form { private Label logo = new Label("uf308", "IconFont"); private TextField user = new TextField("", "Email or Phone", 30, TextField.EMAILADDR); private TextField password = new TextField("", "Password", 30, TextField.PASSWORD); private Button login = new Button("Log In"); private Button signUp = new Button("Sign Up for Facebook"); private Button needHelp = new Button("Need Help?"); public LoginForm() { super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); LoginForm
  • 7. public class LoginForm extends Form { private Label logo = new Label("uf308", "IconFont"); private TextField user = new TextField("", "Email or Phone", 30, TextField.EMAILADDR); private TextField password = new TextField("", "Password", 30, TextField.PASSWORD); private Button login = new Button("Log In"); private Button signUp = new Button("Sign Up for Facebook"); private Button needHelp = new Button("Need Help?"); public LoginForm() { super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); LoginForm
  • 8. public class LoginForm extends Form { private Label logo = new Label("uf308", "IconFont"); private TextField user = new TextField("", "Email or Phone", 30, TextField.EMAILADDR); private TextField password = new TextField("", "Password", 30, TextField.PASSWORD); private Button login = new Button("Log In"); private Button signUp = new Button("Sign Up for Facebook"); private Button needHelp = new Button("Need Help?"); public LoginForm() { super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); LoginForm
  • 9. public class LoginForm extends Form { private Label logo = new Label("uf308", "IconFont"); private TextField user = new TextField("", "Email or Phone", 30, TextField.EMAILADDR); private TextField password = new TextField("", "Password", 30, TextField.PASSWORD); private Button login = new Button("Log In"); private Button signUp = new Button("Sign Up for Facebook"); private Button needHelp = new Button("Need Help?"); public LoginForm() { super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); LoginForm
  • 10. public class LoginForm extends Form { private Label logo = new Label("uf308", "IconFont"); private TextField user = new TextField("", "Email or Phone", 30, TextField.EMAILADDR); private TextField password = new TextField("", "Password", 30, TextField.PASSWORD); private Button login = new Button("Log In"); private Button signUp = new Button("Sign Up for Facebook"); private Button needHelp = new Button("Need Help?"); public LoginForm() { super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); LoginForm
  • 11. public class LoginForm extends Form { private Label logo = new Label("uf308", "IconFont"); private TextField user = new TextField("", "Email or Phone", 30, TextField.EMAILADDR); private TextField password = new TextField("", "Password", 30, TextField.PASSWORD); private Button login = new Button("Log In"); private Button signUp = new Button("Sign Up for Facebook"); private Button needHelp = new Button("Need Help?"); public LoginForm() { super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); LoginForm
  • 12. super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); bl.defineLandscapeSwap(NORTH, EAST); } if(getUIManager(). isThemeConstant("ComponentGroupBool", false)) { Container content = BorderLayout.centerAbsolute( BoxLayout.encloseY( ComponentGroup.enclose(user, password), login)); content.setUIID("PaddedContainer"); add(CENTER, content); login.setUIID("BlueButtonOnBlueBackground"); setUIID("SplashForm"); signUp.setUIID("WhiteLinkButton"); needHelp.setUIID("WhiteLinkButton"); content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp)); } else { LoginForm
  • 13. super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); bl.defineLandscapeSwap(NORTH, EAST); } if(getUIManager(). isThemeConstant("ComponentGroupBool", false)) { Container content = BorderLayout.centerAbsolute( BoxLayout.encloseY( ComponentGroup.enclose(user, password), login)); content.setUIID("PaddedContainer"); add(CENTER, content); login.setUIID("BlueButtonOnBlueBackground"); setUIID("SplashForm"); signUp.setUIID("WhiteLinkButton"); needHelp.setUIID("WhiteLinkButton"); content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp)); } else { LoginForm
  • 14. super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); bl.defineLandscapeSwap(NORTH, EAST); } if(getUIManager(). isThemeConstant("ComponentGroupBool", false)) { Container content = BorderLayout.centerAbsolute( BoxLayout.encloseY( ComponentGroup.enclose(user, password), login)); content.setUIID("PaddedContainer"); add(CENTER, content); login.setUIID("BlueButtonOnBlueBackground"); setUIID("SplashForm"); signUp.setUIID("WhiteLinkButton"); needHelp.setUIID("WhiteLinkButton"); content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp)); } else { LoginForm
  • 15. super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); bl.defineLandscapeSwap(NORTH, EAST); } if(getUIManager(). isThemeConstant("ComponentGroupBool", false)) { Container content = BorderLayout.centerAbsolute( BoxLayout.encloseY( ComponentGroup.enclose(user, password), login)); content.setUIID("PaddedContainer"); add(CENTER, content); login.setUIID("BlueButtonOnBlueBackground"); setUIID("SplashForm"); signUp.setUIID("WhiteLinkButton"); needHelp.setUIID("WhiteLinkButton"); content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp)); } else { LoginForm
  • 16. super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); bl.defineLandscapeSwap(NORTH, EAST); } if(getUIManager(). isThemeConstant("ComponentGroupBool", false)) { Container content = BorderLayout.centerAbsolute( BoxLayout.encloseY( ComponentGroup.enclose(user, password), login)); content.setUIID("PaddedContainer"); add(CENTER, content); login.setUIID("BlueButtonOnBlueBackground"); setUIID("SplashForm"); signUp.setUIID("WhiteLinkButton"); needHelp.setUIID("WhiteLinkButton"); content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp)); } else { LoginForm
  • 17. super(new BorderLayout()); getToolbar().setUIID("Container"); logo.setName("Logo"); Container logoContainer = BorderLayout.centerAbsolute(logo); logoContainer.setUIID("LoginTitle"); add(NORTH, logoContainer); if(!isTablet()) { BorderLayout bl = ((BorderLayout)getLayout()); bl.defineLandscapeSwap(NORTH, EAST); } if(getUIManager(). isThemeConstant("ComponentGroupBool", false)) { Container content = BorderLayout.centerAbsolute( BoxLayout.encloseY( ComponentGroup.enclose(user, password), login)); content.setUIID("PaddedContainer"); add(CENTER, content); login.setUIID("BlueButtonOnBlueBackground"); setUIID("SplashForm"); signUp.setUIID("WhiteLinkButton"); needHelp.setUIID("WhiteLinkButton"); content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp)); } else { LoginForm
  • 18. content.setUIID("PaddedContainer"); add(CENTER, content); login.setUIID("BlueButtonOnBlueBackground"); setUIID("SplashForm"); signUp.setUIID("WhiteLinkButton"); needHelp.setUIID("WhiteLinkButton"); content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp)); } else { login.setUIID("BlueButton"); Button forgotPassword = new Button("Forgot Password", "BlueText"); signUp.setUIID("GreenButton"); signUp.setText("Create new Facebook Account"); Container cnt = BoxLayout.encloseY( user, password, login, forgotPassword, signUp); cnt.setUIID("PaddedContainer"); cnt.setScrollableY(true); add(CENTER, cnt); } } protected boolean shouldPaintStatusBar() { return false; } } LoginForm
  • 19. content.setUIID("PaddedContainer"); add(CENTER, content); login.setUIID("BlueButtonOnBlueBackground"); setUIID("SplashForm"); signUp.setUIID("WhiteLinkButton"); needHelp.setUIID("WhiteLinkButton"); content.add(SOUTH, FlowLayout.encloseCenter(signUp, needHelp)); } else { login.setUIID("BlueButton"); Button forgotPassword = new Button("Forgot Password", "BlueText"); signUp.setUIID("GreenButton"); signUp.setText("Create new Facebook Account"); Container cnt = BoxLayout.encloseY( user, password, login, forgotPassword, signUp); cnt.setUIID("PaddedContainer"); cnt.setScrollableY(true); add(CENTER, cnt); } } protected boolean shouldPaintStatusBar() { return false; } } LoginForm
  • 20. Why we Need the Content Container © Codename One 2017 all rights reserved
  • 21. #Constants { includeNativeBool: true; scrollVisibleBool: false; labelGap: 2; capsButtonUiids:"BlueText,GreenButton,BlueButton"; } theme.css
  • 22. © Codename One 2017 all rights reserved
  • 23. LoginTitle { background-image: url(images/login-banner.jpg); cn1-source-dpi: 0; cn1-background-type: cn1-image-scaled-fill; margin: 0px; padding: 8mm; } PaddedContainer { padding: 3mm; margin: 0mm; background: transparent; } BaseButton { text-align: center; font-family: "native:MainRegular"; font-size: 2.6mm; padding: 1.4mm; margin: 2mm; color: white; } BlueButtonOnBlueBackground { theme.css
  • 24. LoginTitle { background-image: url(images/login-banner.jpg); cn1-source-dpi: 0; cn1-background-type: cn1-image-scaled-fill; margin: 0px; padding: 8mm; } PaddedContainer { padding: 3mm; margin: 0mm; background: transparent; } BaseButton { text-align: center; font-family: "native:MainRegular"; font-size: 2.6mm; padding: 1.4mm; margin: 2mm; color: white; } BlueButtonOnBlueBackground { theme.css
  • 25. LoginTitle { background-image: url(images/login-banner.jpg); cn1-source-dpi: 0; cn1-background-type: cn1-image-scaled-fill; margin: 0px; padding: 8mm; } PaddedContainer { padding: 3mm; margin: 0mm; background: transparent; } BaseButton { text-align: center; font-family: "native:MainRegular"; font-size: 2.6mm; padding: 1.4mm; margin: 2mm; color: white; } BlueButtonOnBlueBackground { theme.css
  • 26. LoginTitle { background-image: url(images/login-banner.jpg); cn1-source-dpi: 0; cn1-background-type: cn1-image-scaled-fill; margin: 0px; padding: 8mm; } PaddedContainer { padding: 3mm; margin: 0mm; background: transparent; } BaseButton { text-align: center; font-family: "native:MainRegular"; font-size: 2.6mm; padding: 1.4mm; margin: 2mm; color: white; } BlueButtonOnBlueBackground { theme.css
  • 27. LoginTitle { background-image: url(images/login-banner.jpg); cn1-source-dpi: 0; cn1-background-type: cn1-image-scaled-fill; margin: 0px; padding: 8mm; } PaddedContainer { padding: 3mm; margin: 0mm; background: transparent; } BaseButton { text-align: center; font-family: "native:MainRegular"; font-size: 2.6mm; padding: 1.4mm; margin: 2mm; color: white; } BlueButtonOnBlueBackground { theme.css
  • 28. LoginTitle { background-image: url(images/login-banner.jpg); cn1-source-dpi: 0; cn1-background-type: cn1-image-scaled-fill; margin: 0px; padding: 8mm; } PaddedContainer { padding: 3mm; margin: 0mm; background: transparent; } BaseButton { text-align: center; font-family: "native:MainRegular"; font-size: 2.6mm; padding: 1.4mm; margin: 2mm; color: white; } BlueButtonOnBlueBackground { theme.css
  • 29. padding: 1.4mm; margin: 2mm; color: white; } BlueButtonOnBlueBackground { border-radius: 1mm; background: #587EBE; cn1-derive: BaseButton; } BlueButton { background: #587EBE; font-family: "native:MainBold"; cn1-derive: BaseButton; } BlueText { cn1-derive: BaseButton; font-family: "native:MainBold"; color: #385898; background: transparent; } GreenButton { cn1-derive: BaseButton; font-family: "native:MainBold"; background: #00A400; theme.css
  • 30. } GreenButton { cn1-derive: BaseButton; font-family: "native:MainBold"; background: #00A400; } WhiteLinkButton { cn1-derive: BaseButton; font-family: "native:MainLight"; margin: 0px; } TextHint { font-family: "native:MainLight"; font-size: 2.6mm; padding: 2mm; } TextField { margin: 2mm; } GroupElementFirst { padding: 3mm; } GroupElementLast { padding: 3mm; theme.css
  • 31. GreenButton { cn1-derive: BaseButton; font-family: "native:MainBold"; background: #00A400; } WhiteLinkButton { cn1-derive: BaseButton; font-family: "native:MainLight"; margin: 0px; } TextHint { font-family: "native:MainLight"; font-size: 2.6mm; padding: 2mm; } TextField { margin: 2mm; } GroupElementFirst { padding: 3mm; } GroupElementLast { padding: 3mm; } theme.css
  • 32. public static void showLoginForm() { new LoginForm().show(); } UIController