Search in sources :

Example 1 with IVisitor

use of org.apache.wicket.Component.IVisitor in project servoy-client by Servoy.

the class WebEventExecutor method generateDragAttach.

/**
 * @param component2
 * @param response
 */
@SuppressWarnings("nls")
public static void generateDragAttach(Component component, IHeaderResponse response) {
    DraggableBehavior draggableBehavior = null;
    Component behaviorComponent = component;
    if ((behaviorComponent instanceof IComponent) && !(behaviorComponent instanceof IFormDataDragNDrop)) {
        behaviorComponent = (Component) component.findParent(IFormDataDragNDrop.class);
    }
    if (behaviorComponent != null) {
        Iterator<IBehavior> behaviors = behaviorComponent.getBehaviors().iterator();
        Object behavior;
        while (behaviors.hasNext()) {
            behavior = behaviors.next();
            if (behavior instanceof DraggableBehavior) {
                draggableBehavior = (DraggableBehavior) behavior;
                break;
            }
        }
    }
    if (draggableBehavior == null)
        return;
    boolean bUseProxy = draggableBehavior.isUseProxy();
    boolean bResizeProxyFrame = draggableBehavior.isResizeProxyFrame();
    boolean bXConstraint = draggableBehavior.isXConstraint();
    boolean bYConstraint = draggableBehavior.isYConstraint();
    CharSequence dragUrl = draggableBehavior.getCallbackUrl();
    String jsCode = null;
    if (behaviorComponent instanceof IFormDataDragNDrop) {
        final StringBuilder sbAttachDrag = new StringBuilder(100);
        sbAttachDrag.append("Servoy.DD.attachDrag([");
        final StringBuilder sbAttachDrop = new StringBuilder(100);
        sbAttachDrop.append("Servoy.DD.attachDrop([");
        final boolean hasDragEvent = ((IFormDataDragNDrop) behaviorComponent).getDragNDropController().getForm().getOnDragMethodID() > 0 || ((IFormDataDragNDrop) behaviorComponent).getDragNDropController().getForm().getOnDragOverMethodID() > 0;
        final boolean hasDropEvent = ((IFormDataDragNDrop) behaviorComponent).getDragNDropController().getForm().getOnDropMethodID() > 0;
        if (component instanceof WebDataRenderer || component instanceof WebCellBasedView) {
            if (hasDragEvent)
                sbAttachDrag.append('\'').append(component.getMarkupId()).append("',");
            if (hasDropEvent)
                sbAttachDrop.append('\'').append(component.getMarkupId()).append("',");
            if (component instanceof WebDataRenderer) {
                Iterator<? extends Component> dataRendererIte = ((WebDataRenderer) component).iterator();
                Object dataRendererChild;
                while (dataRendererIte.hasNext()) {
                    dataRendererChild = dataRendererIte.next();
                    if (dataRendererChild instanceof IWebFormContainer)
                        continue;
                    if (dataRendererChild instanceof WrapperContainer)
                        dataRendererChild = ((WrapperContainer) dataRendererChild).getDelegate();
                    if (dataRendererChild instanceof IComponent && ((IComponent) dataRendererChild).isEnabled()) {
                        updateDragAttachOutput(dataRendererChild, sbAttachDrag, sbAttachDrop, hasDragEvent, hasDropEvent);
                    }
                }
            } else if (component instanceof WebCellBasedView) {
                ListView<IRecordInternal> table = ((WebCellBasedView) component).getTable();
                table.visitChildren(new IVisitor<Component>() {

                    public Object component(Component comp) {
                        if (comp instanceof IComponent && comp.isEnabled()) {
                            updateDragAttachOutput(comp, sbAttachDrag, sbAttachDrop, hasDragEvent, hasDropEvent);
                        }
                        return null;
                    }
                });
            }
        } else if (component != null && component.isEnabled()) {
            updateDragAttachOutput(component, sbAttachDrag, sbAttachDrop, hasDragEvent, hasDropEvent);
        }
        if (sbAttachDrag.length() > 25) {
            sbAttachDrag.setLength(sbAttachDrag.length() - 1);
            sbAttachDrag.append("],'");
            sbAttachDrag.append(dragUrl);
            sbAttachDrag.append("', ");
            sbAttachDrag.append(bUseProxy);
            sbAttachDrag.append(", ");
            sbAttachDrag.append(bResizeProxyFrame);
            sbAttachDrag.append(", ");
            sbAttachDrag.append(bXConstraint);
            sbAttachDrag.append(", ");
            sbAttachDrag.append(bYConstraint);
            sbAttachDrag.append(");");
            jsCode = sbAttachDrag.toString();
        }
        if (sbAttachDrop.length() > 25) {
            sbAttachDrop.setLength(sbAttachDrop.length() - 1);
            sbAttachDrop.append("],'");
            sbAttachDrop.append(dragUrl);
            sbAttachDrop.append("');");
            if (jsCode != null)
                jsCode += '\n' + sbAttachDrop.toString();
            else
                jsCode = sbAttachDrop.toString();
        }
        if (jsCode != null) {
            if (response == null) {
                jsCode = (new StringBuilder().append("\n<script type=\"text/javascript\">\n").append(jsCode).append("</script>\n")).toString();
                Response cyleResponse = RequestCycle.get().getResponse();
                cyleResponse.write(jsCode);
            } else
                response.renderOnDomReadyJavascript(jsCode);
        }
    } else // default handling
    {
        jsCode = "Servoy.DD.attachDrag(['" + component.getMarkupId() + "'],'" + dragUrl + "', " + bUseProxy + ", " + bResizeProxyFrame + ", " + bXConstraint + ", " + bYConstraint + ")";
        if (response == null) {
            jsCode = (new StringBuilder().append("\n<script type=\"text/javascript\">\n").append(jsCode).append("</script>\n")).toString();
            Response cyleResponse = RequestCycle.get().getResponse();
            cyleResponse.write(jsCode);
        } else
            response.renderOnDomReadyJavascript(jsCode);
    }
}
Also used : IVisitor(org.apache.wicket.Component.IVisitor) IComponent(com.servoy.j2db.ui.IComponent) WrapperContainer(com.servoy.j2db.server.headlessclient.WrapperContainer) Response(org.apache.wicket.Response) IHeaderResponse(org.apache.wicket.markup.html.IHeaderResponse) IFormDataDragNDrop(com.servoy.j2db.dnd.IFormDataDragNDrop) ListView(org.apache.wicket.markup.html.list.ListView) DraggableBehavior(com.servoy.j2db.server.headlessclient.dnd.DraggableBehavior) IBehavior(org.apache.wicket.behavior.IBehavior) IComponent(com.servoy.j2db.ui.IComponent) IFieldComponent(com.servoy.j2db.ui.IFieldComponent) Component(org.apache.wicket.Component) FormComponent(org.apache.wicket.markup.html.form.FormComponent) IRuntimeComponent(com.servoy.j2db.ui.runtime.IRuntimeComponent)

Example 2 with IVisitor

use of org.apache.wicket.Component.IVisitor in project servoy-client by Servoy.

the class WebEventExecutor method generateResponse.

@SuppressWarnings("nls")
public static void generateResponse(final AjaxRequestTarget target, Page page) {
    WebClientSession webClientSession = WebClientSession.get();
    if (target != null && page instanceof MainPage && webClientSession != null && webClientSession.getWebClient() != null && webClientSession.getWebClient().getSolution() != null) {
        if (target instanceof CloseableAjaxRequestTarget && ((CloseableAjaxRequestTarget) target).isClosed()) {
            return;
        }
        // do executed the events for before generating the response.
        webClientSession.getWebClient().executeEvents();
        if (webClientSession.getWebClient() == null || webClientSession.getWebClient().getSolution() == null) {
            // how can web client be null here ?
            return;
        }
        final MainPage mainPage = ((MainPage) page);
        if (mainPage.getPageMap() instanceof ModifiedAccessStackPageMap) {
            // at every request mark the pagemap as dirty so lru eviction really works
            ((ModifiedAccessStackPageMap) mainPage.getPageMap()).flagDirty();
        }
        // If the main form is switched then do a normal redirect.
        if (mainPage.isMainFormSwitched()) {
            mainPage.versionPush();
            RequestCycle.get().setResponsePage(page);
        } else {
            page.visitChildren(WebTabPanel.class, new Component.IVisitor<WebTabPanel>() {

                public Object component(WebTabPanel component) {
                    component.initalizeFirstTab();
                    return IVisitor.CONTINUE_TRAVERSAL;
                }
            });
            mainPage.addWebAnchoringInfoIfNeeded();
            final Set<WebCellBasedView> tableViewsToRender = new HashSet<WebCellBasedView>();
            final List<String> valueChangedIds = new ArrayList<String>();
            final List<String> invalidValueIds = new ArrayList<String>();
            final Map<WebCellBasedView, List<Integer>> tableViewsWithChangedRowIds = new HashMap<WebCellBasedView, List<Integer>>();
            // first, get all invalidValue & valueChanged components
            page.visitChildren(IProviderStylePropertyChanges.class, new Component.IVisitor<Component>() {

                public Object component(Component component) {
                    if (component instanceof IDisplayData && !((IDisplayData) component).isValueValid()) {
                        invalidValueIds.add(component.getMarkupId());
                    }
                    if (((IProviderStylePropertyChanges) component).getStylePropertyChanges().isValueChanged()) {
                        if (component.getParent().isVisibleInHierarchy()) {
                            // the component will get added to the target & rendered only if it's parent is visible in hierarchy because changed flag is also set (see the visitor below)
                            // so we will only list these components if they are visible otherwise ajax timer could end up sending hundreds of id's that don't actually render every 5 seconds
                            // because the valueChanged flag is cleared only by onRender
                            valueChangedIds.add(component.getMarkupId());
                            if (component instanceof MarkupContainer) {
                                ((MarkupContainer) component).visitChildren(IDisplayData.class, new IVisitor<Component>() {

                                    public Object component(Component comp) {
                                        // labels/buttons that don't display data are not changed
                                        if (!(comp instanceof ILabel)) {
                                            valueChangedIds.add(comp.getMarkupId());
                                        }
                                        return CONTINUE_TRAVERSAL;
                                    }
                                });
                            }
                        }
                    }
                    return CONTINUE_TRAVERSAL;
                }
            });
            // add changed components to target; if a component is changed, the change check won't go deeper in hierarchy
            page.visitChildren(IProviderStylePropertyChanges.class, new Component.IVisitor<Component>() {

                public Object component(Component component) {
                    if (((IProviderStylePropertyChanges) component).getStylePropertyChanges().isChanged()) {
                        if (component.getParent().isVisibleInHierarchy()) {
                            target.addComponent(component);
                            generateDragAttach(component, target.getHeaderResponse());
                            WebForm parentForm = component.findParent(WebForm.class);
                            boolean isDesignMode = parentForm != null && parentForm.isDesignMode();
                            if (!component.isVisible() || (component instanceof WrapperContainer && !((WrapperContainer) component).getDelegate().isVisible())) {
                                ((IProviderStylePropertyChanges) component).getStylePropertyChanges().setRendered();
                                if (isDesignMode) {
                                    target.appendJavascript("Servoy.ClientDesign.hideSelected('" + component.getMarkupId() + "')");
                                }
                            } else {
                                if (isDesignMode) {
                                    target.appendJavascript("Servoy.ClientDesign.refreshSelected('" + component.getMarkupId() + "')");
                                }
                                // some components need to perform js layout tasks when their markup is replaced when using anchored layout
                                mainPage.getPageContributor().markComponentForAnchorLayoutIfNeeded(component);
                            }
                            ListItem<IRecordInternal> row = component.findParent(ListItem.class);
                            if (row != null) {
                                WebCellBasedView wcbv = row.findParent(WebCellBasedView.class);
                                if (wcbv != null) {
                                    if (tableViewsWithChangedRowIds.get(wcbv) == null) {
                                        tableViewsWithChangedRowIds.put(wcbv, new ArrayList<Integer>());
                                    }
                                    List<Integer> ids = tableViewsWithChangedRowIds.get(wcbv);
                                    int changedRowIdx = wcbv.indexOf(row);
                                    if (changedRowIdx >= 0 && !ids.contains(changedRowIdx)) {
                                        ids.add(changedRowIdx);
                                    }
                                }
                            }
                        }
                        return IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER;
                    } else if (component instanceof WebCellBasedView)
                        tableViewsToRender.add((WebCellBasedView) component);
                    return component.isVisible() ? IVisitor.CONTINUE_TRAVERSAL : IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER;
                }
            });
            page.visitChildren(IComponentToRequestAttacher.class, new Component.IVisitor<Component>() {

                public Object component(Component component) {
                    ((IComponentToRequestAttacher) component).attachComponents(target);
                    return IVisitor.CONTINUE_TRAVERSAL;
                }
            });
            final List<String> visibleEditors = new ArrayList<String>();
            page.visitChildren(WebDataHtmlArea.class, new Component.IVisitor<Component>() {

                public Object component(Component component) {
                    visibleEditors.add(((WebDataHtmlArea) component).getEditorID());
                    return IVisitor.CONTINUE_TRAVERSAL;
                }
            });
            StringBuffer argument = new StringBuffer();
            for (String id : visibleEditors) {
                argument.append("\"");
                argument.append(id);
                argument.append("\"");
                if (visibleEditors.indexOf(id) != visibleEditors.size() - 1) {
                    argument.append(",");
                }
            }
            target.prependJavascript("Servoy.HTMLEdit.removeInvalidEditors(" + argument + ");");
            String rowSelectionScript, columnResizeScript;
            for (final WebCellBasedView wcbv : tableViewsToRender) {
                if (wcbv.isScrollMode())
                    wcbv.scrollViewPort(target);
                wcbv.updateRowSelection(target);
                List<Integer> changedIds = tableViewsWithChangedRowIds.get(wcbv);
                List<Integer> selectedIndexesChanged = wcbv.getIndexToUpdate(false);
                List<Integer> mergedIds = selectedIndexesChanged != null ? selectedIndexesChanged : new ArrayList<Integer>();
                if (changedIds != null) {
                    for (Integer id : changedIds) {
                        if (!mergedIds.contains(id)) {
                            mergedIds.add(id);
                        }
                    }
                }
                rowSelectionScript = wcbv.getRowSelectionScript(mergedIds);
                wcbv.clearSelectionByCellActionFlag();
                if (rowSelectionScript != null)
                    target.appendJavascript(rowSelectionScript);
                columnResizeScript = wcbv.getColumnResizeScript();
                if (columnResizeScript != null)
                    target.appendJavascript(columnResizeScript);
            }
            // double check if the page contributor is changed, because the above IStylePropertyChanges ischanged could have altered it.
            if (mainPage.getPageContributor().getStylePropertyChanges().isChanged()) {
                target.addComponent((Component) mainPage.getPageContributor());
            }
            if (invalidValueIds.size() == 0) {
                // $NON-NLS-1$
                target.appendJavascript("setValidationFailed(null);");
            } else {
                // $NON-NLS-1$
                target.appendJavascript("setValidationFailed('" + invalidValueIds.get(0) + "');");
            }
            Component comp = mainPage.getAndResetToFocusComponent();
            if (comp != null) {
                if (comp instanceof WebDataHtmlArea) {
                    target.appendJavascript("tinyMCE.activeEditor.focus()");
                } else {
                    target.focusComponent(comp);
                }
            } else if (mainPage.getAndResetMustFocusNull()) {
                // This is needed for example when showing a non-modal dialog in IE7 (or otherwise
                // the new window would be displayed in the background).
                target.focusComponent(null);
            }
            if (valueChangedIds.size() > 0) {
                argument = new StringBuffer();
                for (String id : valueChangedIds) {
                    argument.append("\"");
                    argument.append(id);
                    argument.append("\"");
                    if (valueChangedIds.indexOf(id) != valueChangedIds.size() - 1) {
                        argument.append(",");
                    }
                }
                target.prependJavascript("storeValueAndCursorBeforeUpdate(" + argument + ");");
                target.appendJavascript("restoreValueAndCursorAfterUpdate();");
            }
            // if we have admin info, show it
            String adminInfo = mainPage.getAdminInfo();
            if (adminInfo != null) {
                adminInfo = Utils.stringReplace(adminInfo, "\r", "");
                adminInfo = Utils.stringReplace(adminInfo, "\n", "\\n");
                target.appendJavascript("alert('" + adminInfo + "');");
            }
            // If we have a status text, set it.
            String statusText = mainPage.getStatusText();
            if (statusText != null) {
                target.appendJavascript("setStatusText('" + statusText + "');");
            }
            String show = mainPage.getShowUrlScript();
            if (show != null) {
                target.appendJavascript(show);
            }
            mainPage.renderJavascriptChanges(target);
            if (((WebClientInfo) webClientSession.getClientInfo()).getProperties().isBrowserInternetExplorer() && ((WebClientInfo) webClientSession.getClientInfo()).getProperties().getBrowserVersionMajor() < 9) {
                target.appendJavascript("Servoy.Utils.checkWebFormHeights();");
            }
            try {
                if (isStyleSheetLimitForIE(page.getSession())) {
                    target.appendJavascript("testStyleSheets();");
                }
            } catch (Exception e) {
                // cannot retrieve session/clientinfo/properties?
                Debug.error(e);
                target.appendJavascript("testStyleSheets();");
            }
        }
    }
}
Also used : WebClientInfo(org.apache.wicket.protocol.http.request.WebClientInfo) HashMap(java.util.HashMap) ILabel(com.servoy.j2db.ui.ILabel) WebForm(com.servoy.j2db.server.headlessclient.WebForm) ArrayList(java.util.ArrayList) CloseableAjaxRequestTarget(com.servoy.j2db.server.headlessclient.CloseableAjaxRequestTarget) List(java.util.List) ArrayList(java.util.ArrayList) IProviderStylePropertyChanges(com.servoy.j2db.ui.IProviderStylePropertyChanges) IComponent(com.servoy.j2db.ui.IComponent) IFieldComponent(com.servoy.j2db.ui.IFieldComponent) Component(org.apache.wicket.Component) FormComponent(org.apache.wicket.markup.html.form.FormComponent) IRuntimeComponent(com.servoy.j2db.ui.runtime.IRuntimeComponent) MainPage(com.servoy.j2db.server.headlessclient.MainPage) HashSet(java.util.HashSet) MarkupContainer(org.apache.wicket.MarkupContainer) ModifiedAccessStackPageMap(com.servoy.j2db.server.headlessclient.WebClientsApplication.ModifiedAccessStackPageMap) IVisitor(org.apache.wicket.Component.IVisitor) WebClientSession(com.servoy.j2db.server.headlessclient.WebClientSession) WrapperContainer(com.servoy.j2db.server.headlessclient.WrapperContainer) IDisplayData(com.servoy.j2db.dataprocessing.IDisplayData) ListItem(org.apache.wicket.markup.html.list.ListItem)

Example 3 with IVisitor

use of org.apache.wicket.Component.IVisitor in project servoy-client by Servoy.

the class DesignModeBehavior method respond.

/**
 * @see org.apache.wicket.ajax.AbstractDefaultAjaxBehavior#respond(org.apache.wicket.ajax.AjaxRequestTarget)
 */
@Override
protected void respond(AjaxRequestTarget target) {
    Request request = RequestCycle.get().getRequest();
    String action = request.getParameter(DraggableBehavior.PARAM_ACTION);
    String id = extractId(request.getParameter(DraggableBehavior.PARAM_DRAGGABLE_ID));
    if (id != null) {
        final String finalId = id.endsWith(TemplateGenerator.WRAPPER_SUFFIX) ? id.substring(0, id.length() - 8) : id;
        MarkupContainer comp = (MarkupContainer) getComponent();
        Component child = (Component) comp.visitChildren(Component.class, new IVisitor<Component>() {

            public Object component(Component component) {
                String markupId = component.getMarkupId();
                if (finalId.equals(markupId))
                    return component;
                return IVisitor.CONTINUE_TRAVERSAL;
            }
        });
        if (action != null) {
            int height = stripUnitPart(request.getParameter(PARAM_RESIZE_HEIGHT));
            int width = stripUnitPart(request.getParameter(PARAM_RESIZE_WIDTH));
            int x = stripUnitPart(request.getParameter(DraggableBehavior.PARAM_X));
            int y = stripUnitPart(request.getParameter(DraggableBehavior.PARAM_Y));
            if (action.equals(ACTION_SELECT)) {
                if (!(child instanceof IComponent))
                    onSelectComponents.clear();
                else {
                    boolean isSelectionRemove = false;
                    if (!Boolean.parseBoolean(request.getParameter(PARAM_IS_CTRL_KEY)))
                        onSelectComponents.clear();
                    else {
                        isSelectionRemove = onSelectComponents.remove(child) != null;
                    }
                    IComponent[] param = onSelectComponents.keySet().toArray(new IComponent[isSelectionRemove ? onSelectComponents.size() : onSelectComponents.size() + 1]);
                    if (!isSelectionRemove)
                        param[onSelectComponents.size()] = (IComponent) child;
                    Object ret = callback.executeOnSelect(getJSEvent(EventType.action, 0, new Point(x, y), param));
                    if (ret instanceof Boolean && !((Boolean) ret).booleanValue()) {
                        onSelectComponents.clear();
                    } else {
                        if (!isSelectionRemove)
                            onSelectComponents.put((IComponent) child, id);
                        StringBuilder idsArray = new StringBuilder("new Array(");
                        Iterator<String> idsIte = onSelectComponents.values().iterator();
                        while (idsIte.hasNext()) {
                            idsArray.append('\'').append(idsIte.next()).append('\'');
                            if (idsIte.hasNext())
                                idsArray.append(',');
                        }
                        idsArray.append(')');
                        target.appendJavascript("Servoy.ClientDesign.attachElements(" + idsArray.toString() + ");");
                    }
                    if (Boolean.parseBoolean(request.getParameter(PARAM_IS_RIGHTCLICK))) {
                        callback.executeOnRightClick(getJSEvent(EventType.rightClick, 0, new Point(x, y), param));
                    } else if (Boolean.parseBoolean(request.getParameter(PARAM_IS_DBLCLICK))) {
                        callback.executeOnDblClick(getJSEvent(EventType.doubleClick, 0, new Point(x, y), param));
                    }
                }
                WebEventExecutor.generateResponse(target, getComponent().getPage());
                target.appendJavascript("Servoy.ClientDesign.clearClickTimer();");
                return;
            }
            if (child instanceof IComponent) {
                if (!onSelectComponents.containsKey(child)) {
                    onSelectComponents.put((IComponent) child, id);
                }
                if (action.equals(ACTION_RESIZE)) {
                    if (width != -1 && height != -1) {
                        if (child instanceof ISupportWebBounds) {
                            Insets paddingAndBorder = ((ISupportWebBounds) child).getPaddingAndBorder();
                            if (paddingAndBorder != null) {
                                height += paddingAndBorder.bottom + paddingAndBorder.top;
                                width += paddingAndBorder.left + paddingAndBorder.right;
                            }
                        }
                        if (child instanceof IScriptableProvider) {
                            ((IRuntimeComponent) ((IScriptableProvider) child).getScriptObject()).setSize(width, height);
                            ((IRuntimeComponent) ((IScriptableProvider) child).getScriptObject()).setLocation(x, y);
                        }
                        if (child instanceof IProviderStylePropertyChanges)
                            ((IProviderStylePropertyChanges) child).getStylePropertyChanges().setRendered();
                    }
                    callback.executeOnResize(getJSEvent(EventType.onDrop, 0, new Point(x, y), new IComponent[] { (IComponent) child }));
                } else if (action.equals(DraggableBehavior.ACTION_DRAG_START)) {
                    Object onDragAllowed = callback.executeOnDrag(getJSEvent(EventType.onDrag, 0, new Point(x, y), onSelectComponents.keySet().toArray(new IComponent[onSelectComponents.size()])));
                    if ((onDragAllowed instanceof Boolean && !((Boolean) onDragAllowed).booleanValue()) || (onDragAllowed instanceof Number && ((Number) onDragAllowed).intValue() == DRAGNDROP.NONE)) {
                        onDragComponent = null;
                    } else {
                        onDragComponent = (IComponent) child;
                    }
                    WebEventExecutor.generateResponse(target, getComponent().getPage());
                    return;
                } else {
                    if (child == onDragComponent) {
                        if (x != -1 && y != -1) {
                            ((IRuntimeComponent) ((IScriptableProvider) child).getScriptObject()).setLocation(x, y);
                            if (child instanceof IProviderStylePropertyChanges) {
                                // test if it is wrapped
                                if ((child).getParent() instanceof WrapperContainer) {
                                    // call for the changes on the wrapper container so that it will copy the right values over
                                    WrapperContainer wrapper = (WrapperContainer) (child).getParent();
                                    wrapper.getStylePropertyChanges().getChanges();
                                    wrapper.getStylePropertyChanges().setRendered();
                                }
                                ((IProviderStylePropertyChanges) child).getStylePropertyChanges().setRendered();
                            }
                        }
                        callback.executeOnDrop(getJSEvent(EventType.onDrop, 0, new Point(x, y), onSelectComponents.keySet().toArray(new IComponent[onSelectComponents.size()])));
                    }
                    if (Boolean.parseBoolean(request.getParameter(PARAM_IS_DBLCLICK))) {
                        callback.executeOnDblClick(getJSEvent(EventType.doubleClick, 0, new Point(x, y), new IComponent[] { (IComponent) child }));
                    }
                }
            }
        }
    }
    WebEventExecutor.generateResponse(target, getComponent().getPage());
    target.appendJavascript("Servoy.ClientDesign.reattach();");
}
Also used : MarkupContainer(org.apache.wicket.MarkupContainer) Insets(java.awt.Insets) IVisitor(org.apache.wicket.Component.IVisitor) IComponent(com.servoy.j2db.ui.IComponent) Request(org.apache.wicket.Request) Point(java.awt.Point) Point(java.awt.Point) ISupportWebBounds(com.servoy.j2db.ui.ISupportWebBounds) IRuntimeComponent(com.servoy.j2db.ui.runtime.IRuntimeComponent) IProviderStylePropertyChanges(com.servoy.j2db.ui.IProviderStylePropertyChanges) IComponent(com.servoy.j2db.ui.IComponent) Component(org.apache.wicket.Component) IRuntimeInputComponent(com.servoy.j2db.ui.runtime.IRuntimeInputComponent) IRuntimeComponent(com.servoy.j2db.ui.runtime.IRuntimeComponent) IScriptableProvider(com.servoy.j2db.scripting.IScriptableProvider)

Aggregations

IComponent (com.servoy.j2db.ui.IComponent)3 IRuntimeComponent (com.servoy.j2db.ui.runtime.IRuntimeComponent)3 Component (org.apache.wicket.Component)3 IVisitor (org.apache.wicket.Component.IVisitor)3 WrapperContainer (com.servoy.j2db.server.headlessclient.WrapperContainer)2 IFieldComponent (com.servoy.j2db.ui.IFieldComponent)2 IProviderStylePropertyChanges (com.servoy.j2db.ui.IProviderStylePropertyChanges)2 MarkupContainer (org.apache.wicket.MarkupContainer)2 FormComponent (org.apache.wicket.markup.html.form.FormComponent)2 IDisplayData (com.servoy.j2db.dataprocessing.IDisplayData)1 IFormDataDragNDrop (com.servoy.j2db.dnd.IFormDataDragNDrop)1 IScriptableProvider (com.servoy.j2db.scripting.IScriptableProvider)1 CloseableAjaxRequestTarget (com.servoy.j2db.server.headlessclient.CloseableAjaxRequestTarget)1 MainPage (com.servoy.j2db.server.headlessclient.MainPage)1 WebClientSession (com.servoy.j2db.server.headlessclient.WebClientSession)1 ModifiedAccessStackPageMap (com.servoy.j2db.server.headlessclient.WebClientsApplication.ModifiedAccessStackPageMap)1 WebForm (com.servoy.j2db.server.headlessclient.WebForm)1 DraggableBehavior (com.servoy.j2db.server.headlessclient.dnd.DraggableBehavior)1 ILabel (com.servoy.j2db.ui.ILabel)1 ISupportWebBounds (com.servoy.j2db.ui.ISupportWebBounds)1