use of org.zkoss.zk.ui.UiException in project adempiere by adempiere.
the class AdempiereWebUI method loginCompleted.
/* (non-Javadoc)
* @see org.adempiere.webui.IWebClient#loginCompleted()
*/
public void loginCompleted() {
Properties ctx = Env.getCtx();
// to reload preferences when the user refresh the browser
userPreference = loadUserPreference(Env.getAD_User_ID(ctx));
// Set the theme according to the user preferences. If the theme changes, the page will
// be reloaded again - so do this first thing.
int theme_id = userPreference.getPropertyAsInt(UserPreference.P_ZK_THEME_PREFERENCE);
if (theme_id > 0) {
// If theme_id == 0, don't bother setting a new MTheme. Just use the current theme.
MTheme theme = MTheme.get(ctx, theme_id);
if (ThemeUtils.makeCurrent(theme)) {
// Make the theme active and reload the page.
return;
}
}
ThemeUtils.addBrowserIconAndTitle(this.getPage());
if (loginDesktop != null) {
loginDesktop.detach();
loginDesktop = null;
}
String langLogin = Env.getContext(ctx, Env.LANGUAGE);
if (langLogin == null || langLogin.length() <= 0) {
langLogin = langSession;
Env.setContext(ctx, Env.LANGUAGE, langSession);
}
// Validate language
Language language = Language.getLanguage(langLogin);
String locale = Env.getContext(ctx, AEnv.LOCALE);
if (locale != null && locale.length() > 0 && !language.getLocale().toString().equals(locale)) {
String adLanguage = language.getAD_Language();
Language tmp = Language.getLanguage(locale);
language = new Language(tmp.getName(), adLanguage, tmp.getLocale(), tmp.isDecimalPoint(), tmp.getDateFormat().toPattern(), tmp.getMediaSize());
} else {
Language tmp = language;
language = new Language(tmp.getName(), tmp.getAD_Language(), tmp.getLocale(), tmp.isDecimalPoint(), tmp.getDateFormat().toPattern(), tmp.getMediaSize());
}
Env.verifyLanguage(ctx, language);
//Bug
Env.setContext(ctx, Env.LANGUAGE, language.getAD_Language());
// Create adempiere Session - user id in ctx
Execution exec = Executions.getCurrent();
Session currSess = exec.getDesktop().getSession();
HttpSession httpSess = (HttpSession) currSess.getNativeSession();
MSession mSession = MSession.get(ctx, exec.getRemoteAddr(), exec.getRemoteHost(), httpSess.getId());
//enable full interface, relook into this when doing preference
Env.setContext(ctx, "#ShowTrl", true);
Env.setContext(ctx, "#ShowAcct", MRole.getDefault().isShowAcct());
Env.setContext(ctx, "#ShowAdvanced", true);
//auto commit user preference
String autoCommit = userPreference.getProperty(UserPreference.P_AUTO_COMMIT);
Env.setAutoCommit(ctx, "true".equalsIgnoreCase(autoCommit) || "y".equalsIgnoreCase(autoCommit));
//auto new user preference
String autoNew = userPreference.getProperty(UserPreference.P_AUTO_NEW);
Env.setAutoNew(ctx, "true".equalsIgnoreCase(autoNew) || "y".equalsIgnoreCase(autoNew));
IDesktop d = (IDesktop) currSess.getAttribute("application.desktop");
if (d != null && d instanceof IDesktop) {
ExecutionCarryOver eco = (ExecutionCarryOver) currSess.getAttribute(EXECUTION_CARRYOVER_SESSION_KEY);
if (eco != null) {
//try restore
try {
appDesktop = (IDesktop) d;
ExecutionCarryOver current = new ExecutionCarryOver(this.getPage().getDesktop());
ExecutionCtrl ctrl = ExecutionsCtrl.getCurrentCtrl();
Visualizer vi = ctrl.getVisualizer();
eco.carryOver();
Collection<Component> rootComponents = new ArrayList<Component>();
try {
ctrl = ExecutionsCtrl.getCurrentCtrl();
((DesktopCtrl) Executions.getCurrent().getDesktop()).setVisualizer(vi);
//detach root component from old page
Page page = appDesktop.getComponent().getPage();
Collection<?> collection = page.getRoots();
Object[] objects = new Object[0];
objects = collection.toArray(objects);
for (Object obj : objects) {
if (obj instanceof Component) {
((Component) obj).detach();
rootComponents.add((Component) obj);
}
}
appDesktop.getComponent().detach();
DesktopCache desktopCache = ((SessionCtrl) currSess).getDesktopCache();
if (desktopCache != null)
desktopCache.removeDesktop(Executions.getCurrent().getDesktop());
} catch (Exception e) {
appDesktop = null;
} finally {
eco.cleanup();
current.carryOver();
}
if (appDesktop != null) {
//re-attach root components
for (Component component : rootComponents) {
try {
component.setPage(this.getPage());
} catch (UiException e) {
// e.printStackTrace();
// an exception is thrown here when refreshing the page, it seems is harmless to catch and ignore it
// i.e.: org.zkoss.zk.ui.UiException: Not unique in the ID space of [Page z_kg_0]: zk_comp_2
}
}
appDesktop.setPage(this.getPage());
currSess.setAttribute(EXECUTION_CARRYOVER_SESSION_KEY, current);
}
currSess.setAttribute(ZK_DESKTOP_SESSION_KEY, this.getPage().getDesktop());
} catch (Throwable t) {
//restore fail
appDesktop = null;
}
}
}
if (appDesktop == null) {
//create new desktop
createDesktop();
appDesktop.setClientInfo(clientInfo);
appDesktop.createPart(this.getPage());
currSess.setAttribute("application.desktop", appDesktop);
ExecutionCarryOver eco = new ExecutionCarryOver(this.getPage().getDesktop());
currSess.setAttribute(EXECUTION_CARRYOVER_SESSION_KEY, eco);
currSess.setAttribute(ZK_DESKTOP_SESSION_KEY, this.getPage().getDesktop());
}
if ("Y".equalsIgnoreCase(Env.getContext(ctx, BrowserToken.REMEMBER_ME)) && MSystem.isZKRememberUserAllowed()) {
MUser user = MUser.get(ctx);
BrowserToken.save(mSession, user);
} else {
BrowserToken.remove();
}
}
use of org.zkoss.zk.ui.UiException in project adempiere by adempiere.
the class Group method autoFirstCell.
private GroupHeader autoFirstCell() {
Component cell = getFirstChild();
if (cell == null || cell instanceof GroupHeader) {
if (cell == null)
cell = new GroupHeader();
cell.applyProperties();
cell.setParent(this);
return (GroupHeader) cell;
}
throw new UiException("Unsupported child for setLabel: " + cell);
}
use of org.zkoss.zk.ui.UiException in project adempiere by adempiere.
the class DrillCommand method service.
public boolean service(AuRequest request, boolean everError) {
if (!DrillEvent.ON_DRILL_ACROSS.equals(request.getCommand()) && !DrillEvent.ON_DRILL_DOWN.equals(request.getCommand()))
return false;
final Map<?, ?> map = request.getData();
JSONArray data = (JSONArray) map.get("data");
final Component comp = request.getComponent();
if (comp == null)
throw new UiException(MZk.ILLEGAL_REQUEST_COMPONENT_REQUIRED, this);
if (data == null || data.size() < 2)
throw new UiException(MZk.ILLEGAL_REQUEST_WRONG_DATA, new Object[] { Objects.toString(data), this });
String columnName = (String) data.get(0);
String tableName = MQuery.getZoomTableName(columnName);
String code = (String) data.get(1);
//
MQuery query = new MQuery(tableName);
query.addRestriction(columnName, MQuery.EQUAL, code);
Events.postEvent(new DrillEvent(request.getCommand(), comp, query));
return true;
}
use of org.zkoss.zk.ui.UiException in project adempiere by adempiere.
the class ZoomCommand method service.
public boolean service(AuRequest request, boolean everError) {
if (!ZoomEvent.EVENT_NAME.equals(request.getCommand()))
return false;
Map<?, ?> map = request.getData();
JSONArray data = (JSONArray) map.get("data");
final Component comp = request.getComponent();
if (comp == null)
throw new UiException(MZk.ILLEGAL_REQUEST_COMPONENT_REQUIRED, this);
if (data == null || data.size() < 2)
throw new UiException(MZk.ILLEGAL_REQUEST_WRONG_DATA, new Object[] { Objects.toString(data), this });
String columnName = (String) data.get(0);
String tableName = MQuery.getZoomTableName(columnName);
Object code = null;
if (columnName.endsWith("_ID")) {
try {
code = Integer.parseInt((String) data.get(1));
} catch (Exception e) {
code = data.get(1);
}
} else {
code = data.get(1);
}
//
MQuery query = new MQuery(tableName);
query.addRestriction(columnName, MQuery.EQUAL, code);
query.setRecordCount(1);
Events.postEvent(new ZoomEvent(comp, query));
return true;
}
use of org.zkoss.zk.ui.UiException in project adempiere by adempiere.
the class WLogin method doCreatePart.
protected Component doCreatePart(Component parent) {
layout = new Borderlayout();
if (parent != null)
layout.setParent(parent);
else
layout.setPage(page);
ThemeUtils.addSclass("ad-wlogin-layout", layout);
Center center = new Center();
center.setParent(layout);
center.setHflex("true");
center.setVflex("true");
center.setAutoscroll(true);
ThemeUtils.addSclass("ad-wlogin-layout-center", center);
Vbox vb = new Vbox();
vb.setParent(center);
vb.setPack("center");
vb.setAlign("center");
vb.setWidth("100%");
vb.setHeight("100%");
LoginWindow loginWindow = new LoginWindow(app);
loginWindow.setParent(vb);
if (!AEnv.isBrowserSupported()) {
//TODO: localization
String msg = "You might experience slow performance and user interface anomalies using your current browser to access the application. We recommend the use of Firefox, Google Chrome or Apple Safari.";
browserWarningWindow = new Window();
ThemeUtils.addSclass("ad-wlogin-browser-not-supported", browserWarningWindow);
Div div = new Div();
div.appendChild(new Text(msg));
browserWarningWindow.setPosition("top,right");
browserWarningWindow.appendChild(div);
browserWarningWindow.setPage(page);
browserWarningWindow.doOverlapped();
}
try {
String right = ThemeUtils.getLoginRightPanel();
PageDefinition pageDefintion = Executions.getCurrent().getPageDefinition(right);
East east = new East();
ThemeUtils.addSclass("ad-wlogin-east-panel", east);
addContent(east, pageDefintion);
} catch (Exception e) {
//ignore page not found exception
if (e instanceof UiException) {
if (!(e.getMessage() != null && e.getMessage().startsWith("Page not found"))) {
e.printStackTrace();
}
} else {
e.printStackTrace();
}
}
try {
String left = ThemeUtils.getLoginLeftPanel();
PageDefinition pageDefintion = Executions.getCurrent().getPageDefinition(left);
West west = new West();
ThemeUtils.addSclass("ad-wlogin-west-panel", west);
addContent(west, pageDefintion);
} catch (Exception e) {
//ignore page not found exception
if (e instanceof UiException) {
if (!(e.getMessage() != null && e.getMessage().startsWith("Page not found"))) {
e.printStackTrace();
}
} else {
e.printStackTrace();
}
}
try {
String top = ThemeUtils.getLoginTopPanel();
PageDefinition pageDefintion = Executions.getCurrent().getPageDefinition(top);
North north = new North();
ThemeUtils.addSclass("ad-wlogin-north-panel", north);
addContent(north, pageDefintion);
} catch (Exception e) {
//ignore page not found exception
if (e instanceof UiException) {
if (!(e.getMessage() != null && e.getMessage().startsWith("Page not found"))) {
e.printStackTrace();
}
} else {
e.printStackTrace();
}
}
try {
String bottom = ThemeUtils.getLoginBottomPanel();
PageDefinition pageDefintion = Executions.getCurrent().getPageDefinition(bottom);
South south = new South();
ThemeUtils.addSclass("ad-wlogin-south-panel", south);
addContent(south, pageDefintion);
} catch (Exception e) {
//ignore page not found exception
if (e instanceof UiException) {
if (!(e.getMessage() != null && e.getMessage().startsWith("Page not found"))) {
e.printStackTrace();
}
} else {
e.printStackTrace();
}
}
return layout;
}
Aggregations