Adapting to Tablets & Desktops - Part III
public void start() {
if(current != null){
current.show();
return;
}
AppSettings app = AppStorage.getInstance().fetchAppSettings();
if(app.logo.get() == null) {
app.setLogo(theme.getImage("icon.png"));
app.setTitleBackground(theme.getImage("title-image.jpg"));
}
if(Display.getInstance().isTablet()) {
Toolbar.setPermanentSideMenu(true);
new TabletUI(app);
}
BaseNavigationForm.showDishForm(app);
Display.getInstance().callSerially(() -> {
Display.getInstance().registerPush(new Hashtable(), true);
});
}
RestaurantAppBuilder
public class TabletUI extends Form {
private static TabletUI instance;
public TabletUI(AppSettings app) {
super(new BorderLayout());
instance = this;
Toolbar tb = getToolbar();
Style titleStyle = tb.getUnselectedStyle();
titleStyle.setBorder(Border.createEmpty());
titleStyle.setBgImage(app.getTitleBackground());
titleStyle.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL);
titleStyle.setPaddingUnit(Style.UNIT_TYPE_DIPS);
titleStyle.setPadding(4, 4, 4, 4);
TextField title = new TextField(Restaurant.getInstance().name.get());
title.setUIID("NavigationTitle");
title.addActionListener(a -> {
Restaurant.getInstance().name.set(title.getText());
new Builder().updateRestaurantSettings(app);
});
TextField tagline = new TextField(Restaurant.getInstance().tagline.get());
tagline.setUIID("Tagline");
TabletUI
public class TabletUI extends Form {
private static TabletUI instance;
public TabletUI(AppSettings app) {
super(new BorderLayout());
instance = this;
Toolbar tb = getToolbar();
Style titleStyle = tb.getUnselectedStyle();
titleStyle.setBorder(Border.createEmpty());
titleStyle.setBgImage(app.getTitleBackground());
titleStyle.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL);
titleStyle.setPaddingUnit(Style.UNIT_TYPE_DIPS);
titleStyle.setPadding(4, 4, 4, 4);
TextField title = new TextField(Restaurant.getInstance().name.get());
title.setUIID("NavigationTitle");
title.addActionListener(a -> {
Restaurant.getInstance().name.set(title.getText());
new Builder().updateRestaurantSettings(app);
});
TextField tagline = new TextField(Restaurant.getInstance().tagline.get());
tagline.setUIID("Tagline");
TabletUI
public class TabletUI extends Form {
private static TabletUI instance;
public TabletUI(AppSettings app) {
super(new BorderLayout());
instance = this;
Toolbar tb = getToolbar();
Style titleStyle = tb.getUnselectedStyle();
titleStyle.setBorder(Border.createEmpty());
titleStyle.setBgImage(app.getTitleBackground());
titleStyle.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL);
titleStyle.setPaddingUnit(Style.UNIT_TYPE_DIPS);
titleStyle.setPadding(4, 4, 4, 4);
TextField title = new TextField(Restaurant.getInstance().name.get());
title.setUIID("NavigationTitle");
title.addActionListener(a -> {
Restaurant.getInstance().name.set(title.getText());
new Builder().updateRestaurantSettings(app);
});
TextField tagline = new TextField(Restaurant.getInstance().tagline.get());
tagline.setUIID("Tagline");
TabletUI
tagline.addActionListener(a -> {
Restaurant.getInstance().tagline.set(tagline.getText());
new Builder().updateRestaurantSettings(app);
});
tb.setTitleComponent(BoxLayout.encloseY(title, tagline));
Button logoImage = new Button("", app.getRoundedScaledLogo(), "TabletLogoImage");
logoImage.addActionListener(e -> {
new ImagePickerForm(512, 512, "Icon", app.getLogo(),
newImage -> {
app.setLogo(newImage);
logoImage.setIcon(app.getRoundedScaledLogo());
}).show();
});
tb.addComponentToSideMenu(logoImage);
ButtonGroup bg = new ButtonGroup();
tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Dish List",
FontImage.MATERIAL_RESTAURANT_MENU, true,
e -> BaseNavigationForm.showDishForm(app)));
TabletUI
tagline.addActionListener(a -> {
Restaurant.getInstance().tagline.set(tagline.getText());
new Builder().updateRestaurantSettings(app);
});
tb.setTitleComponent(BoxLayout.encloseY(title, tagline));
Button logoImage = new Button("", app.getRoundedScaledLogo(), "TabletLogoImage");
logoImage.addActionListener(e -> {
new ImagePickerForm(512, 512, "Icon", app.getLogo(),
newImage -> {
app.setLogo(newImage);
logoImage.setIcon(app.getRoundedScaledLogo());
}).show();
});
tb.addComponentToSideMenu(logoImage);
ButtonGroup bg = new ButtonGroup();
tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Dish List",
FontImage.MATERIAL_RESTAURANT_MENU, true,
e -> BaseNavigationForm.showDishForm(app)));
TabletUI
tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Details",
FontImage.MATERIAL_DESCRIPTION,
e -> BaseNavigationForm.showDetailsForm(app)));
tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Billing",
FontImage.MATERIAL_CREDIT_CARD,
e -> BaseNavigationForm.showBillingForm(app)));
tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Build the App",
FontImage.MATERIAL_PHONE_IPHONE,
e -> BaseNavigationForm.showAppForm(app)));
tb.addComponentToSideMenu(createSideNavigationEntry(bg, "About Us",
FontImage.MATERIAL_INFO,
e -> BaseNavigationForm.showAboutForm(app)));
tb.addCommandToRightBar("Edit Background", null, e -> {
new ImagePickerForm(750, 295, "Background Image", app.getTitleBackground(),
newImage -> {
app.setTitleBackground(newImage);
titleStyle.setBgImage(newImage);
}).show();
});
}
TabletUI
tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Details",
FontImage.MATERIAL_DESCRIPTION,
e -> BaseNavigationForm.showDetailsForm(app)));
tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Billing",
FontImage.MATERIAL_CREDIT_CARD,
e -> BaseNavigationForm.showBillingForm(app)));
tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Build the App",
FontImage.MATERIAL_PHONE_IPHONE,
e -> BaseNavigationForm.showAppForm(app)));
tb.addComponentToSideMenu(createSideNavigationEntry(bg, "About Us",
FontImage.MATERIAL_INFO,
e -> BaseNavigationForm.showAboutForm(app)));
tb.addCommandToRightBar("Edit Background", null, e -> {
new ImagePickerForm(750, 295, "Background Image", app.getTitleBackground(),
newImage -> {
app.setTitleBackground(newImage);
titleStyle.setBgImage(newImage);
}).show();
});
}
TabletUI
private RadioButton createSideNavigationEntry(ButtonGroup bg, String title, char icon,
ActionListener<ActionEvent> ac) {
return createSideNavigationEntry(bg, title, icon, false, ac);
}
private RadioButton createSideNavigationEntry(ButtonGroup bg, String title, char icon,
boolean selected, ActionListener<ActionEvent> ac) {
RadioButton a = RadioButton.createToggle(title, bg);
a.setSelected(selected);
a.setUIID("SideCommand");
FontImage.setMaterialIcon(a, icon, 4);
a.addActionListener(ac);
return a;
}
void showContainer(Container cnt, boolean direction) {
if(getContentPane().getComponentCount() == 0) {
add(BorderLayout.CENTER, cnt);
show();
} else {
getContentPane().replace(getContentPane().getComponentAt(0), cnt,
CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL,
direction, 150));
}
}
TabletUI
private RadioButton createSideNavigationEntry(ButtonGroup bg, String title, char icon,
ActionListener<ActionEvent> ac) {
return createSideNavigationEntry(bg, title, icon, false, ac);
}
private RadioButton createSideNavigationEntry(ButtonGroup bg, String title, char icon,
boolean selected, ActionListener<ActionEvent> ac) {
RadioButton a = RadioButton.createToggle(title, bg);
a.setSelected(selected);
a.setUIID("SideCommand");
FontImage.setMaterialIcon(a, icon, 4);
a.addActionListener(ac);
return a;
}
void showContainer(Container cnt, boolean direction) {
if(getContentPane().getComponentCount() == 0) {
add(BorderLayout.CENTER, cnt);
show();
} else {
getContentPane().replace(getContentPane().getComponentAt(0), cnt,
CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL,
direction, 150));
}
}
TabletUI

Adapting to Tablets and Desktops - Part 3.pdf

  • 1.
    Adapting to Tablets& Desktops - Part III
  • 2.
    public void start(){ if(current != null){ current.show(); return; } AppSettings app = AppStorage.getInstance().fetchAppSettings(); if(app.logo.get() == null) { app.setLogo(theme.getImage("icon.png")); app.setTitleBackground(theme.getImage("title-image.jpg")); } if(Display.getInstance().isTablet()) { Toolbar.setPermanentSideMenu(true); new TabletUI(app); } BaseNavigationForm.showDishForm(app); Display.getInstance().callSerially(() -> { Display.getInstance().registerPush(new Hashtable(), true); }); } RestaurantAppBuilder
  • 3.
    public class TabletUIextends Form { private static TabletUI instance; public TabletUI(AppSettings app) { super(new BorderLayout()); instance = this; Toolbar tb = getToolbar(); Style titleStyle = tb.getUnselectedStyle(); titleStyle.setBorder(Border.createEmpty()); titleStyle.setBgImage(app.getTitleBackground()); titleStyle.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL); titleStyle.setPaddingUnit(Style.UNIT_TYPE_DIPS); titleStyle.setPadding(4, 4, 4, 4); TextField title = new TextField(Restaurant.getInstance().name.get()); title.setUIID("NavigationTitle"); title.addActionListener(a -> { Restaurant.getInstance().name.set(title.getText()); new Builder().updateRestaurantSettings(app); }); TextField tagline = new TextField(Restaurant.getInstance().tagline.get()); tagline.setUIID("Tagline"); TabletUI
  • 4.
    public class TabletUIextends Form { private static TabletUI instance; public TabletUI(AppSettings app) { super(new BorderLayout()); instance = this; Toolbar tb = getToolbar(); Style titleStyle = tb.getUnselectedStyle(); titleStyle.setBorder(Border.createEmpty()); titleStyle.setBgImage(app.getTitleBackground()); titleStyle.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL); titleStyle.setPaddingUnit(Style.UNIT_TYPE_DIPS); titleStyle.setPadding(4, 4, 4, 4); TextField title = new TextField(Restaurant.getInstance().name.get()); title.setUIID("NavigationTitle"); title.addActionListener(a -> { Restaurant.getInstance().name.set(title.getText()); new Builder().updateRestaurantSettings(app); }); TextField tagline = new TextField(Restaurant.getInstance().tagline.get()); tagline.setUIID("Tagline"); TabletUI
  • 5.
    public class TabletUIextends Form { private static TabletUI instance; public TabletUI(AppSettings app) { super(new BorderLayout()); instance = this; Toolbar tb = getToolbar(); Style titleStyle = tb.getUnselectedStyle(); titleStyle.setBorder(Border.createEmpty()); titleStyle.setBgImage(app.getTitleBackground()); titleStyle.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL); titleStyle.setPaddingUnit(Style.UNIT_TYPE_DIPS); titleStyle.setPadding(4, 4, 4, 4); TextField title = new TextField(Restaurant.getInstance().name.get()); title.setUIID("NavigationTitle"); title.addActionListener(a -> { Restaurant.getInstance().name.set(title.getText()); new Builder().updateRestaurantSettings(app); }); TextField tagline = new TextField(Restaurant.getInstance().tagline.get()); tagline.setUIID("Tagline"); TabletUI
  • 6.
    tagline.addActionListener(a -> { Restaurant.getInstance().tagline.set(tagline.getText()); newBuilder().updateRestaurantSettings(app); }); tb.setTitleComponent(BoxLayout.encloseY(title, tagline)); Button logoImage = new Button("", app.getRoundedScaledLogo(), "TabletLogoImage"); logoImage.addActionListener(e -> { new ImagePickerForm(512, 512, "Icon", app.getLogo(), newImage -> { app.setLogo(newImage); logoImage.setIcon(app.getRoundedScaledLogo()); }).show(); }); tb.addComponentToSideMenu(logoImage); ButtonGroup bg = new ButtonGroup(); tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Dish List", FontImage.MATERIAL_RESTAURANT_MENU, true, e -> BaseNavigationForm.showDishForm(app))); TabletUI
  • 7.
    tagline.addActionListener(a -> { Restaurant.getInstance().tagline.set(tagline.getText()); newBuilder().updateRestaurantSettings(app); }); tb.setTitleComponent(BoxLayout.encloseY(title, tagline)); Button logoImage = new Button("", app.getRoundedScaledLogo(), "TabletLogoImage"); logoImage.addActionListener(e -> { new ImagePickerForm(512, 512, "Icon", app.getLogo(), newImage -> { app.setLogo(newImage); logoImage.setIcon(app.getRoundedScaledLogo()); }).show(); }); tb.addComponentToSideMenu(logoImage); ButtonGroup bg = new ButtonGroup(); tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Dish List", FontImage.MATERIAL_RESTAURANT_MENU, true, e -> BaseNavigationForm.showDishForm(app))); TabletUI
  • 8.
    tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Details", FontImage.MATERIAL_DESCRIPTION, e ->BaseNavigationForm.showDetailsForm(app))); tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Billing", FontImage.MATERIAL_CREDIT_CARD, e -> BaseNavigationForm.showBillingForm(app))); tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Build the App", FontImage.MATERIAL_PHONE_IPHONE, e -> BaseNavigationForm.showAppForm(app))); tb.addComponentToSideMenu(createSideNavigationEntry(bg, "About Us", FontImage.MATERIAL_INFO, e -> BaseNavigationForm.showAboutForm(app))); tb.addCommandToRightBar("Edit Background", null, e -> { new ImagePickerForm(750, 295, "Background Image", app.getTitleBackground(), newImage -> { app.setTitleBackground(newImage); titleStyle.setBgImage(newImage); }).show(); }); } TabletUI
  • 9.
    tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Details", FontImage.MATERIAL_DESCRIPTION, e ->BaseNavigationForm.showDetailsForm(app))); tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Billing", FontImage.MATERIAL_CREDIT_CARD, e -> BaseNavigationForm.showBillingForm(app))); tb.addComponentToSideMenu(createSideNavigationEntry(bg, "Build the App", FontImage.MATERIAL_PHONE_IPHONE, e -> BaseNavigationForm.showAppForm(app))); tb.addComponentToSideMenu(createSideNavigationEntry(bg, "About Us", FontImage.MATERIAL_INFO, e -> BaseNavigationForm.showAboutForm(app))); tb.addCommandToRightBar("Edit Background", null, e -> { new ImagePickerForm(750, 295, "Background Image", app.getTitleBackground(), newImage -> { app.setTitleBackground(newImage); titleStyle.setBgImage(newImage); }).show(); }); } TabletUI
  • 10.
    private RadioButton createSideNavigationEntry(ButtonGroupbg, String title, char icon, ActionListener<ActionEvent> ac) { return createSideNavigationEntry(bg, title, icon, false, ac); } private RadioButton createSideNavigationEntry(ButtonGroup bg, String title, char icon, boolean selected, ActionListener<ActionEvent> ac) { RadioButton a = RadioButton.createToggle(title, bg); a.setSelected(selected); a.setUIID("SideCommand"); FontImage.setMaterialIcon(a, icon, 4); a.addActionListener(ac); return a; } void showContainer(Container cnt, boolean direction) { if(getContentPane().getComponentCount() == 0) { add(BorderLayout.CENTER, cnt); show(); } else { getContentPane().replace(getContentPane().getComponentAt(0), cnt, CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL, direction, 150)); } } TabletUI
  • 11.
    private RadioButton createSideNavigationEntry(ButtonGroupbg, String title, char icon, ActionListener<ActionEvent> ac) { return createSideNavigationEntry(bg, title, icon, false, ac); } private RadioButton createSideNavigationEntry(ButtonGroup bg, String title, char icon, boolean selected, ActionListener<ActionEvent> ac) { RadioButton a = RadioButton.createToggle(title, bg); a.setSelected(selected); a.setUIID("SideCommand"); FontImage.setMaterialIcon(a, icon, 4); a.addActionListener(ac); return a; } void showContainer(Container cnt, boolean direction) { if(getContentPane().getComponentCount() == 0) { add(BorderLayout.CENTER, cnt); show(); } else { getContentPane().replace(getContentPane().getComponentAt(0), cnt, CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL, direction, 150)); } } TabletUI