Skip to content

Commit

Permalink
breadcrumb icon, first sample for back on debug view
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Mar 1, 2016
1 parent 63fca42 commit 826c0a0
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 11 deletions.
Expand Up @@ -19,6 +19,7 @@
import java.io.Serializable;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

Expand Down Expand Up @@ -446,7 +447,7 @@ protected void populateItem(ListItem<Breadcrumb> item) {

@Override
public void onClick(AjaxRequestTarget target) {
dto.redirect(PageBase.this);
redirectBackToBreadcrumb(dto);
}
};
item.add(bcLink);
Expand Down Expand Up @@ -609,6 +610,12 @@ public SessionStorage getSessionStorage() {
return session.getSessionStorage();
}

/**
* use only {@link PageBase#createPageTitleModel()}
* @return
*/
//todo remove [lazyman]
@Deprecated
protected IModel<String> createPageSubTitleModel() {
String key = getClass().getSimpleName() + ".subTitle";
return new StringResourceModel(key, this).setDefaultValue("");
Expand Down Expand Up @@ -1414,4 +1421,36 @@ public AdminGuiConfigurationType loadAdminGuiConfiguration() {
return adminGuiConfig;
}
}

public void redirectBack() {
List<Breadcrumb> breadcrumbs = getSessionStorage().getBreadcrumbs();
if (breadcrumbs.size() < 2) {
return;
}

Breadcrumb breadcrumb = breadcrumbs.get(breadcrumbs.size() - 2);
redirectBackToBreadcrumb(breadcrumb);
}

public void redirectBackToBreadcrumb(Breadcrumb breadcrumb) {
Validate.notNull(breadcrumb, "Breadcrumb must not be null");

boolean found = false;

//we remove all breadcrumbs that are after "breadcrumb"
List<Breadcrumb> breadcrumbs = getSessionStorage().getBreadcrumbs();
Iterator<Breadcrumb> iterator = breadcrumbs.iterator();
while (iterator.hasNext()) {
Breadcrumb b = iterator.next();
if (b.equals(breadcrumb)) {
found = true;
}

if (found) {
iterator.remove();
}
}

breadcrumb.redirect(this);
}
}
Expand Up @@ -183,6 +183,7 @@ private void menuItemPerformed(MenuItem menu) {

MainMenuItem mainMenuItem = getModelObject();
Breadcrumb bc = new Breadcrumb(mainMenuItem.getName());
bc.setIcon(new Model<>(mainMenuItem.getIconClass()));
storage.pushBreadcrumb(bc);

setResponsePage(menu.getPage(), menu.getParams());
Expand Down
Expand Up @@ -270,16 +270,7 @@ protected void onError(AjaxRequestTarget target, Form<?> form) {

@Override
public void onClick(AjaxRequestTarget target) {
//target.appendJavaScript("history.go(-1)");
//todo wtf????
Page requestPage = (Page)getSession().getAttribute("requestPage");

if(requestPage != null){
setResponsePage(requestPage);
getSession().setAttribute("requestPage", null);
} else {
setResponsePage(new PageDebugList(false));
}
redirectBack();
}
};
mainForm.add(backButton);
Expand Down
Expand Up @@ -179,6 +179,14 @@ public Breadcrumb popBreadcrumb() {
return getBreadcrumbs().remove(getBreadcrumbs().size() - 1);
}

public Breadcrumb peekBreadcrumb() {
if (getBreadcrumbs().isEmpty()) {
return null;
}

return getBreadcrumbs().get(getBreadcrumbs().size() - 1);
}

public void clearBreadcrumbs() {
getBreadcrumbs().clear();
}
Expand Down

0 comments on commit 826c0a0

Please sign in to comment.