package er.example.erxpartials.components;
import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WORedirect;
import com.webobjects.directtoweb.D2W;
import com.webobjects.directtoweb.D2WPage;
import com.webobjects.foundation.NSKeyValueCoding;
import com.webobjects.foundation.NSMutableDictionary;
import er.extensions.appserver.navigation.ERXNavigationManager;
import er.extensions.appserver.navigation.ERXNavigationState;
public class MenuHeader extends WOComponent {
private static final long serialVersionUID = 1L;
public MenuHeader(WOContext aContext) {
super(aContext);
}
// ERXModernNavigationMenu Support
public NSKeyValueCoding navigationContext()
{
NSKeyValueCoding context = (NSKeyValueCoding) session().objectForKey("navigationContext");
if (context().page() instanceof D2WPage)
{
context = ((D2WPage) context().page()).d2wContext();
}
// log.debug(ERXNavigationManager.manager().navigationStateForSession(session()));
if (context == null)
{
context = new NSMutableDictionary<Object, String>();
session().setObjectForKey(context, "navigationContext");
}
@SuppressWarnings("unused")
ERXNavigationState state = ERXNavigationManager.manager().navigationStateForSession(session());
// log.debug("NavigationState:" + state + "," + state.state() + "," +
// state.stateAsString());
// log.info("navigationContext:" +
// session().objectForKey("navigationContext"));
return context;
}
// Actions
public WOComponent logout()
{
WOComponent redirectPage = pageWithName("WORedirect");
((WORedirect) redirectPage).setUrl(D2W.factory().homeHrefInContext(context()));
session().terminate();
return redirectPage;
}
public WOComponent homeAction()
{
return D2W.factory().defaultPage(session());
}
}