@Override public void validate() { super.validate(); if (this.getActionErrors().size() > 0 || this.getFieldErrors().size() > 0) { super.extractInitConfig(); this.createExpressions(this.getNavSpec()); } }
protected void createExpressions(List<NavigatorExpression> expressions) { if (this.getExpressions() == null) { this.setExpressions(new ArrayList<NavigatorExpression>()); } this.getExpressions().addAll(expressions); }
@Override public String save() { if (StringUtils.isBlank(this.getNavSpec())) { this.addActionError(this.getText("error.widget.configNavigator.noExpressions")); super.extractInitConfig(); this.createExpressions(this.getNavSpec()); return INPUT; } return super.save(); }
public String moveExpression() { try { String navSpec = this.getNavSpec(); List<NavigatorExpression> expressions = this.getNavigatorParser().getExpressions(navSpec); this.executeMoveExpression(expressions); this.createNavigatorParams(expressions); } catch (Throwable t) { _logger.error("error in moveExpression", t); return FAILURE; } return SUCCESS; }
public String addExpression() { try { NavigatorExpression newExpression = this.createNewExpression(); List<NavigatorExpression> expressions = this.getNavigatorParser().getExpressions(this.getNavSpec()); expressions.add(newExpression); this.createNavigatorParams(expressions); } catch (Throwable t) { _logger.error("error in addExpression", t); return FAILURE; } return SUCCESS; }
public void testFailureAddExpression_2() throws Throwable { Map<String, String> params = new HashMap<String, String>(); params.put("pageCode", "pagina_2"); params.put("frame", "3"); params.put("widgetTypeCode", "leftmenu"); params.put("navSpec", "parent.subtree(2)+abs(1).subtree(2)+current"); params.put("specId", "3"); params.put("specSuperLevel", "-2"); String result = this.executeAddExpression("admin", params); assertEquals(Action.INPUT, result); ActionSupport action = this.getAction(); assertEquals(1, action.getActionErrors().size()); NavigatorWidgetConfigAction navAction = (NavigatorWidgetConfigAction) action; Widget widget = navAction.getWidget(); assertNotNull(widget); ApsProperties props = widget.getConfig(); assertEquals(0, props.size()); assertEquals("parent.subtree(2)+abs(1).subtree(2)+current", navAction.getNavSpec()); assertEquals(3, navAction.getExpressions().size()); }
public String removeExpression() { try { String navSpec = this.getNavSpec(); List<NavigatorExpression> expressions = this.getNavigatorParser().getExpressions(navSpec); int elementIndex = this.getExpressionIndex(); if (elementIndex >= 0 && elementIndex < expressions.size()) { expressions.remove(elementIndex); } this.createNavigatorParams(expressions); } catch (Throwable t) { _logger.error("error in removeExpression", t); return FAILURE; } return SUCCESS; }
public void testExecuteMoveExpression_2() throws Throwable { Map<String, String> params = new HashMap<String, String>(); params.put("pageCode", "pagina_2"); params.put("frame", "0"); params.put("widgetTypeCode", "leftmenu"); params.put("navSpec", "parent.subtree(2)+abs(1).subtree(2)+current"); params.put("movement", ApsAdminSystemConstants.MOVEMENT_UP_CODE); params.put("expressionIndex", "2"); String result = this.executeMoveExpression("admin", params); assertEquals(Action.SUCCESS, result); NavigatorWidgetConfigAction action = (NavigatorWidgetConfigAction) this.getAction(); Widget widget = action.getWidget(); assertNotNull(widget); ApsProperties props = widget.getConfig(); assertEquals(1, props.size()); assertEquals("parent.subtree(2) + current + abs(1).subtree(2)", props.getProperty("navSpec")); List<NavigatorExpression> expressions = action.getExpressions(); assertEquals(3, expressions.size()); NavigatorExpression expression1 = expressions.get(1); assertEquals(NavigatorExpression.SPEC_CURRENT_PAGE_ID, expression1.getSpecId()); assertTrue(expression1.getOperatorId() < 0); }
/** * Crea e valorizza l'action corrente in base ai parametri ricavati da una * lista di espressioni. * * @param expressions La lista di espressioni tramite il quale valorizzare * l'action corrente. * @throws Throwable Il caso di errore. */ protected void createNavigatorParams(List<NavigatorExpression> expressions) throws Throwable { Widget prototype = this.createNewShowlet(); //COSTRUISCE SHOWLET PROTOTIPO VUOTA E SETTA SPECIFICATORE String navSpec = this.getNavigatorParser().getSpec(expressions); prototype.getConfig().setProperty("navSpec", navSpec); //COSTRUISCE LE NUOVE ESPRESSIONI IN BASE AL NUOVO PARAMETRO this.createExpressions(expressions); this.setWidget(prototype); //SETTA IL WIDGET COSTRUITO this.setNavSpec(navSpec); }
/** * Crea e valorizza l'action corrente in base ai parametri ricavati da una lista di espressioni. * @param expressions La lista di espressioni tramite il quale valorizzare l'action corrente. * @throws Throwable Il caso di errore. */ protected void createNavigatorParams(List<NavigatorExpression> expressions) throws Throwable { Widget prototype = this.createNewShowlet(); //COSTRUISCE SHOWLET PROTOTIPO VUOTA E SETTA SPECIFICATORE String navSpec = this.getNavigatorParser().getSpec(expressions); prototype.getConfig().setProperty("navSpec", navSpec); //COSTRUISCE LE NUOVE ESPRESSIONI IN BASE AL NUOVO PARAMETRO this.createExpressions(expressions); this.setShowlet(prototype); //SETTA LA SHOWLET COSTRUITA this.setNavSpec(navSpec); }
@Override protected String extractInitConfig() { try { String result = super.extractInitConfig(); if (!result.equals(SUCCESS)) { return result; } Widget widget = this.getWidget(); String navSpec = null; if (null != widget.getConfig()) { navSpec = widget.getConfig().getProperty("navSpec"); } this.createExpressions(navSpec); this.setNavSpec(navSpec); } catch (Throwable t) { _logger.error("error in extractInitConfig", t); return FAILURE; } return SUCCESS; }
protected void createExpressions(String navSpec) { List<NavigatorExpression> expressions = this.getNavigatorParser().getExpressions(navSpec); this.createExpressions(expressions); }
public void testExecuteAddExpression_1() throws Throwable { Map<String, String> params = new HashMap<String, String>(); params.put("pageCode", "pagina_2"); params.put("frame", "0"); params.put("widgetTypeCode", "leftmenu"); params.put("navSpec", "abs(1).subtree(2)"); params.put("specId", String.valueOf(NavigatorExpression.SPEC_PARENT_PAGE_ID)); params.put("operatorId", String.valueOf(NavigatorExpression.OPERATOR_CHILDREN_ID)); String result = this.executeAddExpression("admin", params); assertEquals(Action.SUCCESS, result); NavigatorWidgetConfigAction action = (NavigatorWidgetConfigAction) this.getAction(); assertEquals("abs(1).subtree(2) + parent.children", action.getNavSpec()); }
public void testInitConfigNavigator_1() throws Throwable { String result = this.executeConfigNavigator("admin", "homepage", "1", "leftmenu"); assertEquals(Action.SUCCESS, result); NavigatorWidgetConfigAction action = (NavigatorWidgetConfigAction) this.getAction(); Widget widget = action.getWidget(); assertNotNull(widget); assertEquals(0, widget.getConfig().size()); }
public void testFailureSaveEmptyExpression() throws Throwable { String pageCode = "pagina_2"; int frame = 3; IPage page = this._pageManager.getDraftPage(pageCode); Widget widget = page.getWidgets()[frame]; assertNull(widget); try { this.setUserOnSession("admin"); this.initAction("/do/Page/SpecialWidget/Navigator", "saveNavigatorConfig"); this.addParameter("pageCode", pageCode); this.addParameter("frame", String.valueOf(frame)); this.addParameter("widgetTypeCode", "leftmenu"); this.addParameter("navSpec", ""); String result = this.executeAction(); assertEquals("input", result); NavigatorWidgetConfigAction action = (NavigatorWidgetConfigAction) this.getAction(); assertEquals(1, action.getActionErrors().size()); } catch (Throwable t) { throw t; } finally { page = this._pageManager.getDraftPage(pageCode); page.getWidgets()[frame] = null; this._pageManager.updatePage(page); } }
public void testFailureAddExpression_4() throws Throwable { Map<String, String> params = new HashMap<String, String>(); params.put("pageCode", "pagina_2"); params.put("frame", "3"); params.put("widgetTypeCode", "leftmenu"); params.put("navSpec", ""); params.put("specId", "5"); params.put("specCode", " "); params.put("operatorId", "3"); params.put("operatorSubtreeLevel", "-1"); String result = this.executeAddExpression("admin", params); assertEquals(Action.INPUT, result); ActionSupport action = this.getAction(); assertEquals(2, action.getActionErrors().size()); NavigatorWidgetConfigAction navAction = (NavigatorWidgetConfigAction) action; Widget widget = navAction.getWidget(); assertNotNull(widget); ApsProperties props = widget.getConfig(); assertEquals(0, props.size()); assertEquals("", navAction.getNavSpec()); assertEquals(0, navAction.getExpressions().size()); }
public String addExpression() { try { NavigatorExpression newExpression = this.createNewExpression(); List<NavigatorExpression> expressions = this.getNavigatorParser().getExpressions(this.getNavSpec()); expressions.add(newExpression); this.createNavigatorParams(expressions); } catch (Throwable t) { _logger.error("error in addExpression", t); return FAILURE; } return SUCCESS; }
public String moveExpression() { try { String navSpec = this.getNavSpec(); List<NavigatorExpression> expressions = this.getNavigatorParser().getExpressions(navSpec); this.executeMoveExpression(expressions); this.createNavigatorParams(expressions); } catch (Throwable t) { _logger.error("error in moveExpression", t); return FAILURE; } return SUCCESS; }
public String removeExpression() { try { String navSpec = this.getNavSpec(); List<NavigatorExpression> expressions = this.getNavigatorParser().getExpressions(navSpec); int elementIndex = this.getExpressionIndex(); if (elementIndex >= 0 && elementIndex < expressions.size()) { expressions.remove(elementIndex); } this.createNavigatorParams(expressions); } catch (Throwable t) { _logger.error("error in removeExpression", t); return FAILURE; } return SUCCESS; }
public void testExecuteMoveExpression_1() throws Throwable { Map<String, String> params = new HashMap<String, String>(); params.put("pageCode", "pagina_2"); params.put("frame", "3"); params.put("widgetTypeCode", "leftmenu"); params.put("navSpec", "parent.subtree(2)+abs(1).subtree(2)+current"); params.put("movement", ApsAdminSystemConstants.MOVEMENT_DOWN_CODE); params.put("expressionIndex", "1"); String result = this.executeMoveExpression("admin", params); assertEquals(Action.SUCCESS, result); NavigatorWidgetConfigAction action = (NavigatorWidgetConfigAction) this.getAction(); Widget widget = action.getWidget(); assertNotNull(widget); ApsProperties props = widget.getConfig(); assertEquals(1, props.size()); assertEquals("parent.subtree(2) + current + abs(1).subtree(2)", props.getProperty("navSpec")); List<NavigatorExpression> expressions = action.getExpressions(); assertEquals(3, expressions.size()); NavigatorExpression expression1 = expressions.get(1); assertEquals(NavigatorExpression.SPEC_CURRENT_PAGE_ID, expression1.getSpecId()); assertTrue(expression1.getOperatorId() < 0); }