private static String getTag(OgemaWidget widget) { return "<div class=\"ogema-widget\" id=\"" + widget.getId() + "\"></div>"; }
protected void init() { dependentWidgets = widget.getPage().registerWidgetGroup(widget.getId() + "__dependentWidgets", new ArrayList<OgemaWidget>()); // widget.triggerAction(dependentWidgets, TriggeringAction.POST_REQUEST, TriggeredAction.GET_REQUEST); widget.triggerAction(dependentWidgets, TriggeringAction.GET_REQUEST, TriggeredAction.GET_REQUEST); // XXX why? }
/** * Remove the subwidget from the items list, and destroy it * @param widget * @return */ public boolean removeItem(OgemaWidget widget) { if (widget == null) return false; boolean result = items.remove(widget); widget.destroyWidget(); removeCSSItems("#" + widget.getId() + ".ogema-widget"); return result; }
public void triggerOnPost(OgemaWidget governor, OgemaWidget target) { if(doRegisterDependentWidgets) governor.registerDependentWidget(target); else governor.triggerAction(target, TriggeringAction.POST_REQUEST, TriggeredAction.GET_REQUEST); } public void triggerOnPostForRequest(OgemaWidget governor, OgemaWidget target) {
public void removeWidget(OgemaWidget widget) { String widgetId = widget.getId(); WidgetPage<?> page = widget.getPage(); // String boundPagePath = ((WidgetPageBase<?>) page).getServletBase(); // System.out.println(" session mgt removing widget " + widgetId); // String id = getId(boundPagePath,widgetId); // WidgetSessionData<? extends WidgetData> opt = options.remove(id); for (Session session : sessions.asMap().values()) { if (!session.getPage().getPage().equals(page)) continue; session.removeWidget(widgetId); } }
public synchronized void registerWidget(OgemaWidget widget) { if (dependentWidgets == null) init(); if (!((OgemaWidgetBase<?>) widget).isSessionSpecific()) { dependentWidgets.addWidget(widget); // FIXME move to group/init this.widget.triggerAction(widget, TriggeringAction.PRE_POST_REQUEST, TriggeredAction.POST_REQUEST); // XXX why not use the group? widget.setDefaultSendValueOnChange(false); } // else // this.widget.triggerAction(widget, TriggeringAction.PRE_POST_REQUEST, TriggeredAction.POST_REQUEST, req); }
protected void setResource(A resource, OgemaHttpRequest req) { if (Objects.equals(this.resource, resource)) return; this.resource = resource; clear(); if (resource == null) return; final int length = getLength(resource); for (int i=0; i< length; i++) { final OgemaWidget in = createWidget(resource, i, widget, req); if (in instanceof ValueInputField) ((ValueInputField<?>) in).setDefaultNrDecimals(config.getNrDecimals()); in.setMargin("0.5em", false, false, true, false, req); // TODO if delete is allowed, add a delete button in.triggerAction(in, TriggeringAction.POST_REQUEST, TriggeredAction.GET_REQUEST, req); addItem(in); } }
public void clear() { Iterator<OgemaWidget> it = items.iterator(); while (it.hasNext()) { OgemaWidget w = it.next(); w.destroyWidget(); } items.clear(); }
@Override public WidgetPageImpl<S> append(OgemaWidget widget) { if (!widget.getPage().equals(this)) throw new IllegalArgumentException("Cannot append a widget from another page"); rootWidget.append(widget, null); return this; }
@Override public void setDefaultSendValueOnChange(boolean sendValue) { synchronized (widgets) { for (OgemaWidget w: widgets) { w.setDefaultSendValueOnChange(sendValue); } } }
public static void registerDependentWidgets(OgemaWidget governor, StaticTable table) { for(OgemaWidget el: table.getSubWidgets()) { //Note: Synchronization issues with triggerAction //governor.triggerOnPOST(el); governor.registerDependentWidget(el); } } }
public synchronized void unregisterWidget(OgemaWidget widget) { if (dependentWidgets == null) return; dependentWidgets.removeWidget(widget); this.widget.removeTriggerAction(widget, TriggeringAction.PRE_POST_REQUEST, TriggeredAction.POST_REQUEST); }
@SuppressWarnings("deprecation") public void triggerOnPost(OgemaWidget governor, OgemaWidget target) { if(registerDependentWidgets) governor.registerDependentWidget(target); else governor.triggerAction(target, TriggeringAction.POST_REQUEST, TriggeredAction.GET_REQUEST); } }
boolean deleteItem(OgemaWidget item) { writeLock(); try { for (List<Content> col: items) { final Iterator<Content> it = col.iterator(); while (it.hasNext()) { final Content item2 = it.next(); if (item.equals(item2.getContent())) { it.remove(); item.destroyWidget(); return true; } } } } finally { writeUnlock(); } return false; }
/** * @param groupId * a unique id * @param widgets * widgets constituting the group. It is possible to add widgets to the group later on, using {@link WidgetGroup#addWidget(OgemaWidget)} * @return * the newly created WidgetGroup * @throws IllegalArgumentException * if a WidgetGroup with the given id already exists */ @Override public final WidgetGroup registerWidgetGroup(String groupId, Collection<OgemaWidget> widgets) throws IllegalArgumentException { if (widgets == null) widgets = Collections.emptySet(); Iterator<OgemaWidget> it = widgets.iterator(); while(it.hasNext()) { OgemaWidget widget = it.next(); if (!widget.getPage().equals(this)) throw new IllegalArgumentException("Cannot assign widget belonging to another page to a WidgetGroup"); ((OgemaWidgetBase<?>) widget).addGroup(groupId); } return getWidgetService().registerWidgetGroup(this, groupId, widgets, app.wam); }
public static void registerDependentWidgets(OgemaWidget governor, StaticTable table) { for(OgemaWidget el: table.getSubWidgets()) { //Note: Synchronization issues with triggerAction //governor.triggerOnPOST(el); governor.registerDependentWidget(el); } } }
@Override default String getId(T object) { return object instanceof OgemaWidget ? ((OgemaWidget) object).getId() : String.valueOf(object); }
public OgemaWidget removeItem(int position) throws IndexOutOfBoundsException { OgemaWidget w = items.remove(position); if (w != null) { w.destroyWidget(); removeCSSItems("#" + w.getId() + ".ogema-widget"); } return w; }
public void triggerOnPostForRequest(OgemaWidget governor, OgemaWidget target) { if(doRegisterDependentWidgets) governor.registerDependentWidget(target, req); else governor.triggerAction(target, TriggeringAction.POST_REQUEST, TriggeredAction.GET_REQUEST, req); } public void setDoRegisterDependentWidgets(boolean doRegisterDependentWidgets) {
@Override protected void removeSubWidgets() { final List<OgemaWidget> w = new ArrayList<>(); writeLock(); try { // super.removeSubWidgets(); w.addAll(subwidgets.values()); Iterator<HtmlItem> it = htmlItems.values().iterator(); while(it.hasNext()) { Collection<OgemaWidget> subs = it.next().getSubWidgets(); for (OgemaWidget sw : subs ) { w.add(sw); } } clear(); } finally { writeUnlock(); } for (OgemaWidget widget: w) { widget.destroyWidget(); } }