Skip to content

Commit

Permalink
Introduced base Screen class with modal dialog support and common han…
Browse files Browse the repository at this point in the history
…dlers.
  • Loading branch information
nmihajlovski committed Dec 30, 2014
1 parent 051fb63 commit da79c00
Show file tree
Hide file tree
Showing 12 changed files with 51 additions and 43 deletions.
Expand Up @@ -105,7 +105,9 @@ public Object content() {
Tag navMenu = navbarMenu(true, activeIndex, menuItems); Tag navMenu = navbarMenu(true, activeIndex, menuItems);
Object[] navbarContent = arr(navMenu, themesMenu, userMenu, searchForm); Object[] navbarContent = arr(navMenu, themesMenu, userMenu, searchForm);


Tag result = navbarPage(isFluid(), brand, navbarContent, pageContent); String modal = Cls.getPropValue(screen, "modal", null);
Object modalContent = modal != null ? Cls.getPropValue(screen, modal, null) : null;
Tag result = navbarPage(isFluid(), brand, navbarContent, arr(pageContent, modalContent));


Pages.store(x, screen); Pages.store(x, screen);


Expand Down
Expand Up @@ -27,7 +27,7 @@
import org.rapidoid.util.U; import org.rapidoid.util.U;
import org.rapidoid.widget.FormWidget; import org.rapidoid.widget.FormWidget;


public class EditEntityScreenGeneric extends AppGUI { public class EditEntityScreenGeneric extends Screen {


@Session @Session
private Object entity; private Object entity;
Expand Down
27 changes: 27 additions & 0 deletions rapidoid-app/src/main/java/org/rapidoid/app/Screen.java
@@ -0,0 +1,27 @@
package org.rapidoid.app;

import org.rapidoid.annotation.Session;
import org.rapidoid.http.HttpExchange;

public abstract class Screen extends AppGUI {

@Session
public String modal = null;

public void onCloseModal() {
modal = null;
}

public void onCancel(HttpExchange x) {
if (modal != null) {
modal = null;
} else {
x.goBack(1);
}
}

public void onBack(HttpExchange x) {
x.goBack(1);
}

}
Expand Up @@ -31,7 +31,7 @@
import org.rapidoid.widget.GridWidget; import org.rapidoid.widget.GridWidget;
import org.rapidoid.widget.HighlightedGridWidget; import org.rapidoid.widget.HighlightedGridWidget;


public class SearchScreen extends AppGUI { public class SearchScreen extends Screen {


public Object content(HttpExchange x) { public Object content(HttpExchange x) {


Expand Down
Expand Up @@ -27,7 +27,7 @@
import org.rapidoid.util.U; import org.rapidoid.util.U;
import org.rapidoid.widget.FormWidget; import org.rapidoid.widget.FormWidget;


public class ViewEntityScreenGeneric extends AppGUI { public class ViewEntityScreenGeneric extends Screen {


@Session @Session
private Object entity; private Object entity;
Expand Down
Expand Up @@ -20,13 +20,14 @@
* #L% * #L%
*/ */


import org.rapidoid.app.Screen;
import org.rapidoid.db.DB; import org.rapidoid.db.DB;
import org.rapidoid.demo.taskplanner.model.Task; import org.rapidoid.demo.taskplanner.model.Task;
import org.rapidoid.html.Tag; import org.rapidoid.html.Tag;
import org.rapidoid.html.tag.ButtonTag; import org.rapidoid.html.tag.ButtonTag;
import org.rapidoid.util.U; import org.rapidoid.util.U;


public class AboutScreen extends GUI { public class AboutScreen extends Screen {


public Object content() { public Object content() {
Tag mix = h2(a("Enter the mix").href("/mix")); Tag mix = h2(a("Enter the mix").href("/mix"));
Expand Down
Expand Up @@ -20,6 +20,7 @@
* #L% * #L%
*/ */


import org.rapidoid.app.Screen;
import org.rapidoid.db.DB; import org.rapidoid.db.DB;
import org.rapidoid.security.annotation.Admin; import org.rapidoid.security.annotation.Admin;
import org.rapidoid.security.annotation.Manager; import org.rapidoid.security.annotation.Manager;
Expand All @@ -30,7 +31,7 @@
@Admin @Admin
@Manager @Manager
@Roles({ @Role("RESTARTER") }) @Roles({ @Role("RESTARTER") })
public class AdminScreen extends GUI { public class AdminScreen extends Screen {


public Object[] content = { h2("Manage Application"), cmd("Shutdown") }; public Object[] content = { h2("Manage Application"), cmd("Shutdown") };


Expand Down

This file was deleted.

@@ -1,5 +1,7 @@
package org.rapidoid.demo.taskplanner.gui; package org.rapidoid.demo.taskplanner.gui;


import org.rapidoid.app.Screen;

/* /*
* #%L * #%L
* rapidoid-demo * rapidoid-demo
Expand All @@ -20,7 +22,7 @@
* #L% * #L%
*/ */


public class HomeScreen extends GUI { public class HomeScreen extends Screen {


public String title = "Welcome!"; public String title = "Welcome!";


Expand Down
Expand Up @@ -21,6 +21,7 @@
*/ */


import org.rapidoid.annotation.Session; import org.rapidoid.annotation.Session;
import org.rapidoid.app.Screen;
import org.rapidoid.app.Users; import org.rapidoid.app.Users;
import org.rapidoid.db.DB; import org.rapidoid.db.DB;
import org.rapidoid.demo.taskplanner.model.Task; import org.rapidoid.demo.taskplanner.model.Task;
Expand All @@ -31,28 +32,27 @@
import org.rapidoid.widget.FormWidget; import org.rapidoid.widget.FormWidget;
import org.rapidoid.widget.GridWidget; import org.rapidoid.widget.GridWidget;


public class NewTaskScreen extends GUI { public class NewTaskScreen extends Screen {


@Session @Session
private Task task = new Task(); private Task task = new Task();


public Object content() { public Object content() {


Tag caption = titleBox("Add new task"); Tag caption1 = titleBox("Add new task");

FormWidget frm = edit(task).buttons(SAVE, CANCEL); FormWidget frm = edit(task).buttons(SAVE, CANCEL);
frm = frm.fieldType("description", FieldType.TEXTAREA); frm = frm.fieldType("description", FieldType.TEXTAREA);


Tag recent = titleBox("Most recent tasks"); Tag caption2 = titleBox("Most recent tasks");

GridWidget grid = grid(Task.class, "-id", 7, "id", "priority", "title"); GridWidget grid = grid(Task.class, "-id", 7, "id", "priority", "title");
return row(col4(caption, frm), col8(recent, grid));
return row(col4(caption1, frm), col8(caption2, grid));
} }


public void onSave(HttpExchange x) { public void onSave(HttpExchange x) {
task.owner.set(Users.current(x, User.class)); task.owner.set(Users.current(x, User.class));
DB.insert(task); DB.insert(task);
task = null; task = new Task();
} }


public void onCancel() { public void onCancel() {
Expand Down
@@ -1,5 +1,6 @@
package org.rapidoid.demo.taskplanner.gui; package org.rapidoid.demo.taskplanner.gui;


import org.rapidoid.app.Screen;
import org.rapidoid.security.annotation.LoggedIn; import org.rapidoid.security.annotation.LoggedIn;


/* /*
Expand All @@ -23,7 +24,7 @@
*/ */


@LoggedIn @LoggedIn
public class SettingsScreen extends GUI { public class SettingsScreen extends Screen {


public Object content = row(h2("Settings...")); public Object content = row(h2("Settings..."));


Expand Down
Expand Up @@ -20,11 +20,12 @@
* #L% * #L%
*/ */


import org.rapidoid.app.Screen;
import org.rapidoid.demo.taskplanner.model.Task; import org.rapidoid.demo.taskplanner.model.Task;
import org.rapidoid.html.Tag; import org.rapidoid.html.Tag;
import org.rapidoid.widget.GridWidget; import org.rapidoid.widget.GridWidget;


public class TasksScreen extends GUI { public class TasksScreen extends Screen {


public String title = "My Tasks"; public String title = "My Tasks";


Expand Down

0 comments on commit da79c00

Please sign in to comment.