Example usage for org.apache.wicket Component getMarkupId

List of usage examples for org.apache.wicket Component getMarkupId

Introduction

In this page you can find the example usage for org.apache.wicket Component getMarkupId.

Prototype

public String getMarkupId() 

Source Link

Document

Retrieves id by which this component is represented within the markup.

Usage

From source file:com.servoy.j2db.server.headlessclient.DesignModeBehavior.java

License:Open Source License

/**
 * @see org.apache.wicket.ajax.AbstractDefaultAjaxBehavior#respond(org.apache.wicket.ajax.AjaxRequestTarget)
 *///from   ww  w .  j av a 2  s .c o  m
@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();");
}

From source file:com.servoy.j2db.server.headlessclient.dnd.DraggableBehavior.java

License:Open Source License

/**
 * Get the child component with the specified id.
 * /* ww  w. j  av  a2s.c om*/
 * @param childId id of child component
 * 
 * @return the child component or null if not found
 */
public IComponent getBindedComponentChild(final String childId) {
    IComponent bindedComponentChild = null;
    Component bindedComponent = getComponent();
    if (bindedComponent instanceof MarkupContainer) {
        bindedComponentChild = (IComponent) ((MarkupContainer) bindedComponent).visitChildren(IComponent.class,
                new IVisitor<Component>() {
                    public Object component(Component component) {
                        if (component.getMarkupId().equals(childId)) {
                            return component;
                        }
                        return IVisitor.CONTINUE_TRAVERSAL;
                    }
                });
    }

    return bindedComponentChild;
}

From source file:com.servoy.j2db.server.headlessclient.FormAnchorInfo.java

License:Open Source License

public static String generateAnchoringParams(SortedSet<FormAnchorInfo> formAnchorInfos, Component component) {
    Iterator<FormAnchorInfo> it = formAnchorInfos.iterator();
    FormAnchorInfo fai;/*ww  w . j a  v a  2s. c  om*/
    String webId = component.getMarkupId();
    while (it.hasNext()) {
        fai = it.next();
        if (fai.parts != null) {
            for (FormPartAnchorInfo p : fai.parts.values()) {
                if (p.elementAnchorInfo != null && p.elementAnchorInfo.containsKey(webId)) {
                    // found it
                    StringBuffer sb = new StringBuffer();
                    p.appendElementAnchoringCode(webId, p.elementAnchorInfo.get(webId), sb);
                    return sb.toString();
                }
            }
        }
    }
    return null;
}

From source file:com.servoy.j2db.server.headlessclient.MainPage.java

License:Open Source License

/**
 * Respond to focus/blur events.//from   ww  w. ja  v  a  2  s  .co m
 */
@SuppressWarnings("nls")
public void respond(AjaxRequestTarget target, final String event, final String markupId) {
    Component component = (Component) visitChildren(IComponent.class, new IVisitor<Component>() {
        public Object component(Component c) {
            Component targetComponent = c;
            if (c instanceof WebBaseSelectBox && ("blur".equals(event) || "focus".equals(event))) {
                Component[] cs = ((WebBaseSelectBox) c).getFocusChildren();
                if (cs != null && cs.length == 1)
                    targetComponent = cs[0];
            }

            if (targetComponent.getMarkupId().equals(markupId)) {
                return c;
            }
            return IVisitor.CONTINUE_TRAVERSAL;
        }
    });

    if (component == null) {
        Debug.log("Component not found markupId " + markupId); //$NON-NLS-1$
        return;
    }

    IFormUIInternal<?> formui = component.findParent(IFormUIInternal.class);
    if (formui != null && formui.isDesignMode()) {
        Debug.log("Event ignored because of design mode"); //$NON-NLS-1$
        return;
    }

    if (component instanceof IFieldComponent) {
        WebEventExecutor eventExecutor = (WebEventExecutor) ((IFieldComponent) component).getEventExecutor();
        if (eventExecutor != null) {
            if ("focus".equals(event)) {
                int webModifier = Utils.getAsInteger(
                        RequestCycle.get().getRequest().getParameter(IEventExecutor.MODIFIERS_PARAMETER));
                StartEditOnFocusGainedEventBehavior.startEditing(component,
                        WebEventExecutor.convertModifiers(webModifier), target);
                eventExecutor.onEvent(JSEvent.EventType.focusGained, target, component, webModifier);
            } else if ("blur".equals(event)) {
                // test if the data is really posted by looking up the key.
                if (component instanceof FormComponent<?>
                        && RequestCycle.get().getRequest().getParameter("nopostdata") == null) {
                    // changed data is posted
                    ((FormComponent<?>) component).processInput();
                }
                eventExecutor.onEvent(JSEvent.EventType.focusLost, target, component,
                        IEventExecutor.MODIFIERS_UNSPECIFIED);
            } else {
                Debug.trace("Ignored event " + event);
            }
        } else {
            Debug.trace("Ignored event, no eventExecutor");
        }
    } else {
        // other non-field components like WebLabel
        ServoyForm form = component.findParent(ServoyForm.class);
        if (form != null) {
            Page page = form.getPage(); // JS might change the page this form belongs to... so remember it now

            int webModifier = Utils.getAsInteger(
                    RequestCycle.get().getRequest().getParameter(IEventExecutor.MODIFIERS_PARAMETER));
            WebEventExecutor.setSelectedIndex(component, target, WebEventExecutor.convertModifiers(webModifier),
                    true);
            WebEventExecutor.generateResponse(target, page);
        }
    }
}

From source file:com.servoy.j2db.server.headlessclient.PageContributor.java

License:Open Source License

@Override
public void renderHead(HtmlHeaderContainer container) {
    super.renderHead(container);

    IHeaderResponse response = container.getHeaderResponse();

    String djs = getDynamicJavaScript();
    if (djs != null) {
        response.renderOnLoadJavascript(djs);
    }//  w ww  .  ja v  a  2s .  c om
    addReferences(response);

    Page page = findPage();
    if (page instanceof MainPage) {
        Component focus = ((MainPage) page).getAndResetToFocusComponent();
        if (focus != null) {
            if (focus instanceof WebDataHtmlArea) {
                response.renderOnLoadJavascript("tinyMCE.activeEditor.focus()");
            } else {
                response.renderOnLoadJavascript(
                        "setTimeout(\"requestFocus('" + focus.getMarkupId() + "');\",0);"); //$NON-NLS-1$ //$NON-NLS-2$
            }
        }
    }

    if (formAnchorInfos != null && formAnchorInfos.size() != 0 && WebClientSession.get() != null
            && WebClientSession.get().getWebClient() != null && Utils.getAsBoolean(
                    WebClientSession.get().getWebClient().getRuntimeProperties().get("enableAnchors"))) //$NON-NLS-1$
    {
        if (anchorInfoChanged) {
            response.renderJavascriptReference(anchorlayout);
            response.renderOnLoadJavascript("setTimeout(\"layoutEntirePage();\", 10);"); // setTimeout is important here, to let the browser apply CSS styles during Ajax calls //$NON-NLS-1$
            String sb = FormAnchorInfo.generateAnchoringFunctions(formAnchorInfos, getOrientation());
            response.renderJavascript(sb, null);
            anchorInfoChanged = false;
        } else if (componentsThatNeedAnchorRelayout != null && componentsThatNeedAnchorRelayout.length() > 0) {
            response.renderJavascriptReference(anchorlayout);
            response.renderOnLoadJavascript("setTimeout(\"layoutSpecificElements();\", 10);");
            response.renderJavascript("executeLayoutSpecificElements = function()\n{\n"
                    + componentsThatNeedAnchorRelayout.append("\n}"), null);
        }
    }
    if (componentsThatNeedAnchorRelayout != null)
        componentsThatNeedAnchorRelayout.setLength(0);

    if (tabIndexChanges.size() > 0) {
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("Servoy.TabCycleHandling.setNewTabIndexes(["); //$NON-NLS-1$
        for (String componentID : tabIndexChanges.keySet()) {
            stringBuffer.append("['");//$NON-NLS-1$
            stringBuffer.append(componentID);
            stringBuffer.append("',");//$NON-NLS-1$
            stringBuffer.append(tabIndexChanges.get(componentID));
            stringBuffer.append("]");//$NON-NLS-1$
            stringBuffer.append(",");//$NON-NLS-1$
        }
        stringBuffer.deleteCharAt(stringBuffer.length() - 1);
        stringBuffer.append("]);"); //$NON-NLS-1$
        response.renderOnLoadJavascript(stringBuffer.toString());
        tabIndexChanges.clear();
    }

    if (splitPanesToUpdateDivider.size() > 0) {
        for (WebSplitPane splitPane : splitPanesToUpdateDivider) {
            if (splitPane.findParent(Page.class) != null
                    && !splitPane.getScriptObject().getChangesRecorder().isChanged()
                    && !splitPane.isParentContainerChanged()) {
                response.renderOnLoadJavascript((new StringBuilder("(function() {") //$NON-NLS-1$
                        .append(splitPane.getDividerLocationJSSetter(true).append("}).call();"))).toString()); //$NON-NLS-1$
            }
        }
        splitPanesToUpdateDivider.clear();
    }

    // Enable this for Firebug debugging under IE/Safari/etc.
    //response.renderJavascriptReference("http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js"); //$NON-NLS-1$
}

From source file:com.servoy.j2db.server.headlessclient.TabIndexHelper.java

License:Open Source License

private static void setUpTabIndexAttributeModifierInternal(Component comp, int newTabIndex) {
    TabIndexAttributeModifier modifier = null;
    final Component component = comp;
    for (Object obeh : component.getBehaviors()) {
        IBehavior beh = (IBehavior) obeh;
        if (beh instanceof TabIndexAttributeModifier) {
            modifier = (TabIndexAttributeModifier) beh;
            break;
        }/*from  www  .j a  v a  2s. c o m*/
    }
    boolean componentChanged = true;
    boolean changeForClientSide = false;
    if (modifier == null) {
        if (newTabIndex != ISupportWebTabSeq.DEFAULT && isTabIndexSupported(component))
            component.add(new TabIndexAttributeModifier(newTabIndex));
    } else if (newTabIndex != ISupportWebTabSeq.DEFAULT) {
        if (newTabIndex != modifier.getTabIndex()) {
            modifier.setTabIndex(newTabIndex);
            if (!(component instanceof IProviderStylePropertyChanges)
                    || !((IProviderStylePropertyChanges) component).getStylePropertyChanges().isChanged()) {
                // if is already changed leave it to server side
                changeForClientSide = true;
            }
        } else {
            componentChanged = false;
        }
    } else {
        component.remove(modifier);
    }

    if (componentChanged) {
        MainPage page = component.findParent(MainPage.class);
        if (changeForClientSide) {
            if (page != null) {
                page.getPageContributor().addTabIndexChange(component.getMarkupId(), newTabIndex);
            } else {
                changeForClientSide = false;
            }
        }
        if (!changeForClientSide && component instanceof IProviderStylePropertyChanges) {
            IProviderStylePropertyChanges changeable = (IProviderStylePropertyChanges) component;
            changeable.getStylePropertyChanges().setChanged();
            if (page != null) {
                page.getPageContributor().addTabIndexChange(component.getMarkupId(), ISupportWebTabSeq.DEFAULT);
            }
        }
    }
}

From source file:com.servoy.j2db.server.headlessclient.WebForm.java

License:Open Source License

@SuppressWarnings("unchecked")
public FormAnchorInfo getFormAnchorInfo() {
    formAnchorInfo = new FormAnchorInfo(formController.getName(), formController.getForm().getSize(),
            formController.getForm().getUUID());

    final Map<String, ISupportAnchors> elements = new HashMap<String, ISupportAnchors>();
    Iterator<IPersist> e1 = formController.getForm().getAllObjects();
    while (e1.hasNext()) {
        IPersist obj = e1.next();/*from ww w .j  a va2  s.co m*/
        if (obj instanceof ISupportAnchors && obj instanceof ISupportBounds) {
            elements.put(ComponentFactory.getWebID(formController.getForm(), obj), (ISupportAnchors) obj);
        }
    }

    // In case we are in table view.
    if (view instanceof WebCellBasedView) {
        WebCellBasedView formPart = (WebCellBasedView) view;
        formAnchorInfo.addPart(Part.getDisplayName(Part.BODY), formPart.getMarkupId(), 50);
        formAnchorInfo.isTableView = true;
        formAnchorInfo.bodyContainerId = formPart.getMarkupId();
    }

    // Find the id of the form navigator, if any.
    visitChildren(Component.class, new IVisitor() {
        public Object component(Component component) {
            if (component instanceof WebDefaultRecordNavigator) {
                formAnchorInfo.navigatorWebId = component.getMarkupId();
                return IVisitor.CONTINUE_TRAVERSAL;
            } else if (component instanceof WebTabPanel) {
                return IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER;
            } else
                return IVisitor.CONTINUE_TRAVERSAL;
        }
    });

    visitChildren(WebDataRenderer.class, new IVisitor() {
        public Object component(Component component) {
            WebDataRenderer formPart = (WebDataRenderer) component;

            final FormPartAnchorInfo part = formAnchorInfo.addPart(formPart.getFormPartName(),
                    formPart.getMarkupId(), formPart.getSize().height);

            if (Part.getDisplayName(Part.BODY).equals(formPart.getFormPartName())) {
                Component parent = formPart.getParent();
                formAnchorInfo.bodyContainerId = parent.getMarkupId();
            }
            formPart.visitChildren(ISupportWebBounds.class, new IVisitor() {
                public Object component(Component comp) {
                    String id = comp.getId();
                    ISupportAnchors obj = elements.get(id);
                    if (obj != null) {
                        int anchors = obj.getAnchors();
                        if (((anchors > 0 && anchors != IAnchorConstants.DEFAULT))
                                || (comp instanceof WebTabPanel) || (comp instanceof IButton)) {
                            Rectangle r = ((ISupportWebBounds) comp).getWebBounds();
                            if (r != null) {
                                if (anchors == 0)
                                    anchors = IAnchorConstants.DEFAULT;

                                int hAlign = -1;
                                int vAlign = -1;
                                if (obj instanceof ISupportTextSetup) {
                                    ISupportTextSetup alignedObj = (ISupportTextSetup) obj;
                                    hAlign = alignedObj.getHorizontalAlignment();
                                    vAlign = alignedObj.getVerticalAlignment();
                                }

                                String imageDisplayURL = null;
                                boolean isRandomParamRemoved = false;
                                if (comp instanceof IImageDisplay) {
                                    Object[] aImageDisplayURL = WebBaseButton
                                            .getImageDisplayURL((IImageDisplay) comp, false);
                                    imageDisplayURL = (String) aImageDisplayURL[0];
                                    isRandomParamRemoved = ((Boolean) aImageDisplayURL[1]).booleanValue();
                                }
                                part.addAnchoredElement(comp.getMarkupId(), anchors, r, hAlign, vAlign,
                                        comp.getClass(), imageDisplayURL, isRandomParamRemoved);
                            }

                        }
                    }
                    return IVisitor.CONTINUE_TRAVERSAL;
                }
            });
            return IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER;
        }
    });

    return formAnchorInfo;
}

From source file:com.servoy.j2db.server.headlessclient.WebForm.java

License:Open Source License

@SuppressWarnings("nls")
@Override//from ww w .  ja va2  s  .  co m
public void renderHead(HtmlHeaderContainer headercontainer) {
    super.renderHead(headercontainer);
    Response response = headercontainer.getHeaderResponse().getResponse();
    response.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"");

    StringBuilder sb = new StringBuilder();
    sb.append(UrlUtils.rewriteToContextRelative("servoy-webclient/formcss/", RequestCycle.get().getRequest()));
    sb.append(formController.getForm().getSolution().getName());
    sb.append("/");
    sb.append(formController.getName());
    sb.append("_t");
    long prevLMT = lastModifiedTime;
    if (lastModifiedTime == 0 || isUIRecreated()) {
        lastModifiedTime = System.currentTimeMillis();
    }
    sb.append(Long.toString(lastModifiedTime));
    sb.append("t.css");
    response.write(RequestCycle.get().getOriginalResponse().encodeURL(sb));
    response.write("\" id=\"formcss_");
    response.write(formController.getName());
    response.write(Long.toString(lastModifiedTime));
    response.write("\"");
    getResponse().println(" />");

    if (isUIRecreated()) {
        if (this.getParent() instanceof WebTabPanel) {
            String tabPanelId = this.getParent().getMarkupId();
            String showWebFormjs = "$('#" + getMarkupId() + "').css('visibility','"
                    + (isVisible() ? "inherit" : "hidden") + "');";
            //show WebForm after rearrangeTabsInTabPanel() is done
            String jsCall = "rearrageTabsInTabPanel('" + tabPanelId + "');" + showWebFormjs;

            headercontainer.getHeaderResponse().renderOnLoadJavascript(jsCall);
        }
        StringBuffer cssRef = new StringBuffer();
        cssRef.append("Servoy.Utils.removeFormCssLink('formcss_");
        cssRef.append(formController.getName());
        cssRef.append(prevLMT);
        cssRef.append("');");
        headercontainer.getHeaderResponse().renderJavascript(cssRef, null);
    }

    if (isFormInWindow()) {
        List<Component> componentz = getTabSeqComponents();
        int max = -1;
        int min = Integer.MAX_VALUE;
        String maxTabIndexElemId = null;
        String minTabIndexElemId = null;
        for (Component c : componentz) {
            int tabIndex = TabIndexHelper.getTabIndex(c);
            if (tabIndex > max) {
                max = tabIndex;
                maxTabIndexElemId = c.getMarkupId();
            }
            if (tabIndex != -1 && tabIndex < min) {
                min = tabIndex;
                minTabIndexElemId = c.getMarkupId();
            }
        }
        if (minTabIndexElemId != null && maxTabIndexElemId != null) {
            headercontainer.getHeaderResponse()
                    .renderOnLoadJavascript("Servoy.TabCycleHandling.registerListeners('" + minTabIndexElemId
                            + "','" + maxTabIndexElemId + "');");
        }
    }

    if (isFormInFormPopup()) {
        TreeMap<String, String> tm = new TreeMap<String, String>();
        for (Component c : getTabSeqComponents()) {
            tm.put(String.valueOf(TabIndexHelper.getTabIndex(c)), c.getMarkupId());
        }
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("Servoy.TabCycleHandling.forceTabbingSequence([");
        for (Map.Entry<String, String> entry : tm.entrySet()) {
            stringBuffer.append("'" + entry.getValue() + "',");
        }
        stringBuffer.deleteCharAt(stringBuffer.length() - 1);
        stringBuffer.append("]);");
        headercontainer.getHeaderResponse().renderOnLoadJavascript(stringBuffer.toString());
    }
}

From source file:com.socialsite.BasePanel.java

License:Open Source License

/**
 * fires a event with the collection of all the updated dom elements after
 * the wicket ajax response. To subscribe the event call the
 * <code>SocialSite.Ajax.registerPostAjax</code>. Your callback function
 * will be called with a jQuery Wrapped set of all the update dom as the
 * first argument./*from   w w  w  .j  a va2s.c  om*/
 * 
 * NOTE: call this only once after all the components are added to the
 * target
 * 
 * 
 * @param target
 *            ajax target
 */
public void firePostAjaxUpdateEvent(final AjaxRequestTarget target) {
    final StringBuffer script = new StringBuffer(" SocialSite.Ajax.handle([");
    for (final Component component : target.getComponents()) {
        script.append("\"" + component.getMarkupId() + "\",");
    }
    script.append("])");

    target.getHeaderResponse().renderOnDomReadyJavascript(script.toString());
}

From source file:com.tysanclan.site.projectewok.pages.member.CalendarPage.java

License:Open Source License

/**
 * //from  w  w w  .  j  a va  2  s. c  o m
 */
public CalendarPage() {
    super("Calendar");

    add(new OtterSniperPanel("otterSniperPanel", 2));

    WebMarkupContainer container = new WebMarkupContainer("container");
    container.setOutputMarkupId(true);

    Date currTime = DateUtil.getMidnightCalendarInstance().getTime();

    InlineDatePicker calendar = new InlineDatePicker("calendar", currTime) {

        /**
                  * 
                  */
        private static final long serialVersionUID = 1L;

        @Override
        protected void onDateSelected(Date date, AjaxRequestTarget target) {
            TimeZone tz = DateUtil.NEW_YORK;

            if (getUser().getTimezone() != null) {
                tz = TimeZone.getTimeZone(getUser().getTimezone());
            }

            Calendar cal = Calendar.getInstance(tz);
            cal.setTime(date);

            Component oldEventView = getEventViewComponent();
            Component oldTitle = getTitleComponent();

            ListView<Event> eventView = createListView(cal.getTime());

            getContainer().setVisible(!eventView.getModelObject().isEmpty());

            Label newTitle = new Label("title",
                    "Events for " + new SimpleDateFormat("EEEE d MMMM yyyy", Locale.US).format(date));

            oldEventView.replaceWith(eventView);
            oldTitle.replaceWith(newTitle);

            Component component = get("schedule:description").setVisible(true);

            if (target != null) {
                target.appendJavaScript(
                        "tinyMCE.execCommand('mceRemoveControl', false, '" + component.getMarkupId() + "')");
                target.add(getContainer());

                target.appendJavaScript(
                        "tinyMCE.execCommand('mceAddControl', false, '" + component.getMarkupId() + "')");
            }
        }

    };

    container.add(calendar);

    add(container);

    ListView<Event> eventView = createListView(currTime);
    container.add(eventView);
    container.setVisible(!eventView.getModelObject().isEmpty());
    container.add(new Label("title",
            "Events for " + new SimpleDateFormat("EEEE d MMMM yyyy", Locale.US).format(currTime)));

    Form<Event> scheduleEventForm = new Form<Event>("schedule") {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private EventService eventService;

        @SuppressWarnings("unchecked")
        @Override
        protected void onSubmit() {
            TextField<String> titleComponent = (TextField<String>) get("title");
            TextArea<String> descriptionComponent = (TextArea<String>) get("description");
            DatePickerPanel dateComponent = (DatePickerPanel) get("dateselect");
            DropDownChoice<Integer> hourComponent = (DropDownChoice<Integer>) get("hourselect");
            DropDownChoice<Integer> minuteComponent = (DropDownChoice<Integer>) get("minuteselect");

            String title = titleComponent.getModelObject();
            String description = descriptionComponent.getModelObject();
            Date selectedDate = dateComponent.getSelectedDate();

            if (selectedDate == null) {
                error("No date selected");
                return;
            }

            TimeZone tz = DateUtil.NEW_YORK;

            if (getUser().getTimezone() != null) {
                tz = TimeZone.getTimeZone(getUser().getTimezone());
            }

            Calendar cal = Calendar.getInstance(tz);
            cal.setTime(DateUtil.getMidnightDate(selectedDate));
            cal.add(Calendar.DAY_OF_MONTH, 1);
            cal.add(Calendar.HOUR_OF_DAY, hourComponent.getModelObject());
            cal.add(Calendar.MINUTE, minuteComponent.getModelObject());

            Event event = eventService.scheduleEvent(getUser(), cal.getTime(), title, description);
            if (event != null) {
                setResponsePage(new CalendarPage());
            }
        }

    };

    scheduleEventForm.add(new TextField<String>("title", new Model<String>("")).setRequired(true));
    TextArea<String> descriptionEditor = new BBCodeTextArea("description", "");
    descriptionEditor.setRequired(true);

    scheduleEventForm.add(descriptionEditor);

    DatePickerPanel datePanel = new DatePickerPanel("dateselect");

    scheduleEventForm.add(datePanel);

    scheduleEventForm.add(new DropDownChoice<Integer>("hourselect", new Model<Integer>(0), DateUtil.getHours(),
            DateUtil.getTwoDigitRenderer()).setNullValid(false).setRequired(true));

    scheduleEventForm.add(new DropDownChoice<Integer>("minuteselect", new Model<Integer>(0),
            DateUtil.getMinutes(), DateUtil.getTwoDigitRenderer()).setNullValid(false).setRequired(true));

    TimeZone tz = DateUtil.NEW_YORK;

    if (getUser().getTimezone() != null) {
        tz = TimeZone.getTimeZone(getUser().getTimezone());
    }

    scheduleEventForm.add(new Label("timezone", tz.getDisplayName(false, TimeZone.LONG, Locale.US)));

    add(scheduleEventForm);
}