List of usage examples for org.apache.wicket.markup.html IHeaderContributor IHeaderContributor
IHeaderContributor
From source file:com.lyndir.lhunath.opal.wayward.behavior.FocusOnReady.java
License:Open Source License
@Override public void bind(final Component component) { component.setOutputMarkupId(true);//from w w w.j av a 2s. c o m headerContributor = new IHeaderContributor() { @Override public void renderHead(final IHeaderResponse response) { if (component.isVisibleInHierarchy()) { String id = component.getMarkupId(true); response.renderOnDomReadyJavascript( String.format("document.getElementById(%s).focus()", JSUtils.toString(id))); } } }; }
From source file:com.servoy.j2db.server.headlessclient.dataui.WebDataLookupField.java
License:Open Source License
private void init() { add(new HeaderContributor(new IHeaderContributor() { private static final long serialVersionUID = 1L; public void renderHead(IHeaderResponse response) { response.renderCSSReference( new CompressedResourceReference(WebDataLookupField.class, "servoy_lookupfield.css")); //$NON-NLS-1$ }/* w w w.j a va 2s. com*/ }) { @Override public boolean isEnabled(Component component) { return !getScriptObject().isReadOnly() && getScriptObject().isEnabled(); } }); setOutputMarkupPlaceholderTag(true); AutoCompleteSettings behSettings = new AutoCompleteSettings(); behSettings.setMaxHeightInPx(200); behSettings.setPreselect(true); behSettings.setShowCompleteListOnFocusGain(true); behSettings.setAdjustInputWidth(false); ClientProperties clp = (application.getApplicationType() != IApplication.HEADLESS_CLIENT ? ((WebClientInfo) Session.get().getClientInfo()).getProperties() : null); // in case of batch processors/jsp, we can't get browser info because UI is not given by web client components if (clp != null && (!clp.isBrowserInternetExplorer() || clp.getBrowserVersionMajor() >= 8)) { // smart positioning doesn't work on IE < 8 (probably because of unreliable clientWidth/clientHeight browser element js properties) behSettings.setUseSmartPositioning(true); behSettings.setUseHideShowCoveredIEFix(false); // don't know if the problem this setting is for can still be reproduced (I couldn't reproduce it)... this is true by default and makes fields in IE and Opera appear/dissapear if they would be covered by type-ahead popup } else { behSettings.setUseSmartPositioning(false); behSettings.setUseHideShowCoveredIEFix(true); } behSettings.setThrottleDelay(500); IAutoCompleteRenderer<Object> renderer = new IAutoCompleteRenderer<Object>() { protected String getTextValue(Object object) { String str = ""; //$NON-NLS-1$ if (object instanceof DisplayString) { str = object.toString(); } else if (object != null && !(object instanceof String)) { IConverter con = getConverter(object.getClass()); if (con != null) { str = con.convertToString(object, getLocale()); } else { str = object.toString(); } } else if (object != null) { str = object.toString(); } if (str == null || str.trim().equals("")) //$NON-NLS-1$ str = " "; //$NON-NLS-1$ return str; } protected void renderChoice(Object object, Response response, String criteria) { if (IValueList.SEPARATOR_DESIGN_VALUE.equals(object)) return; String renderedObject = getTextValue(object); // escape the markup if it is not html or not just an empty none breaking space (null or empty string object) if (!renderedObject.equals(" ") && !HtmlUtils.hasHtmlTag(renderedObject)) //$NON-NLS-1$ renderedObject = HtmlUtils.escapeMarkup(renderedObject, true, false).toString(); response.write(renderedObject); } /* * (non-Javadoc) * * @see org.apache.wicket.extensions.ajax.markup.html.autocomplete.IAutoCompleteRenderer#render(java.lang.Object, org.apache.wicket.Response, * java.lang.String) */ public void render(Object object, Response response, String criteria) { String textValue = getTextValue(object); if (textValue == null) { throw new IllegalStateException( "A call to textValue(Object) returned an illegal value: null for object: " + object.toString()); } textValue = textValue.replaceAll("\\\"", """); response.write("<li textvalue=\"" + textValue + "\""); response.write(">"); renderChoice(object, response, criteria); response.write("</li>"); } /* * (non-Javadoc) * * @see org.apache.wicket.extensions.ajax.markup.html.autocomplete.IAutoCompleteRenderer#renderHeader(org.apache.wicket.Response) */ @SuppressWarnings("nls") public void renderHeader(Response response) { StringBuffer listStyle = new StringBuffer(); listStyle.append("style=\""); String fFamily = "Tahoma, Arial, Helvetica, sans-serif"; String bgColor = "#ffffff"; String fgColor = "#000000"; String fSize = TemplateGenerator.DEFAULT_FONT_SIZE + "px"; String padding = "2px"; String margin = "0px"; if (getFont() != null) { Font f = getFont(); if (f != null) { if (f.getFamily() != null) { fFamily = f.getFamily(); if (fFamily.contains(" ")) fFamily = "'" + fFamily + "'"; } if (f.getName() != null) { String fName = f.getName(); if (fName.contains(" ")) fName = "'" + fName + "'"; fFamily = fName + "," + fFamily; } if (f.isBold()) listStyle.append("font-weight:bold; "); if (f.isItalic()) listStyle.append("font-style:italic; "); fSize = Integer.toString(f.getSize()) + "px"; } } if (getListColor() != null && getListColor().getAlpha() == 255) { // background shouldn't be transparent bgColor = getWebColor(getListColor().getRGB()); } if (getForeground() != null) { fgColor = getWebColor(getForeground().getRGB()); } Insets _padding = getPadding(); if (getPadding() != null) padding = _padding.top + "px " + _padding.right + "px " + _padding.bottom + "px " + _padding.left + "px"; listStyle.append("font-family:" + fFamily + "; "); listStyle.append("background-color: " + bgColor + "; "); listStyle.append("color: " + fgColor + "; "); listStyle.append("font-size:" + fSize + "; "); listStyle.append("min-width:" + (getSize().width - 6) + "px; "); // extract padding and border listStyle.append("margin: " + margin + "; "); listStyle.append("padding: " + padding + "; "); listStyle.append( "text-align:" + TemplateGenerator.getHorizontalAlignValue(getHorizontalAlignment())); listStyle.append("\""); response.write("<ul " + listStyle + ">"); } /* * (non-Javadoc) * * @see org.apache.wicket.extensions.ajax.markup.html.autocomplete.IAutoCompleteRenderer#renderFooter(org.apache.wicket.Response) */ public void renderFooter(Response response) { response.write("</ul>"); //$NON-NLS-1$ } /** * Returns web color representation of int rgba color by * removing the alpha value * * @param color int representation of rgba color * @return web color of form #rrggbb */ private String getWebColor(int color) { String webColor = Integer.toHexString(color); int startIdx = webColor.length() - 6; if (startIdx < 0) startIdx = 0; webColor = webColor.substring(startIdx); StringBuilder sb = new StringBuilder(); sb.append('#'); int nrMissing0 = 6 - webColor.length(); for (int i = 0; i < nrMissing0; i++) { sb.append('0'); } sb.append(webColor); return sb.toString(); } }; AutoCompleteBehavior<Object> beh = new AutoCompleteBehavior<Object>(renderer, behSettings) { private static final long serialVersionUID = 1L; /** * @see org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteBehavior#getChoices(java.lang.String) */ @Override protected Iterator<Object> getChoices(String input) { String filteredInput = filterInput(input); if (changeListener != null) dlm.getValueList().removeListDataListener(changeListener); try { dlm.fill(parentState, getDataProviderID(), filteredInput, false); return dlm.iterator(); } catch (Exception ex) { Debug.error(ex); } finally { if (changeListener != null) dlm.getValueList().addListDataListener(changeListener); } return Collections.emptyList().iterator(); } /** * filters the input in case of masked input (removes the mask) */ private String filterInput(String input) { String displayFormat = WebDataLookupField.this.parsedFormat.getDisplayFormat(); if (displayFormat != null && displayFormat.length() > 0 && input.length() == displayFormat.length()) { int index = firstBlankSpacePosition(input, displayFormat); if (index == -1) return input; return input.substring(0, index); } return input; } /** * Computes the index of the first space char found in the input and is not ' ' nor '*' in the format * Example: * input '12 - 3 - ' * format '## - ## - #' * returns 6 * @param input * @param displayFormat * @return The index of the first space char found in the input and is not ' ' nor '*' in the format */ private int firstBlankSpacePosition(String input, String displayFormat) { for (int i = 0; i < input.length(); i++) { if ((input.charAt(i) == ' ') && (displayFormat.charAt(i) != ' ') && (displayFormat.charAt(i) != '*')) return i; } return 0; } /** * @see org.apache.wicket.ajax.AbstractDefaultAjaxBehavior#getFailureScript() */ @Override protected CharSequence getFailureScript() { return "onAjaxError();"; //$NON-NLS-1$ } /** * @see org.apache.wicket.ajax.AbstractDefaultAjaxBehavior#getPreconditionScript() */ @Override protected CharSequence getPreconditionScript() { return "onAjaxCall();" + super.getPreconditionScript(); //$NON-NLS-1$ } // need to set this behavior to true (enterHidesWithNoSelection) because otherwise the onKeyDown events // or other events for the component with type ahead would be null in Firefox, and would not execute as // expected on the other browsers... @Override public void renderHead(IHeaderResponse response) { settings.setShowListOnEmptyInput(Boolean.TRUE.equals(UIUtils.getUIProperty(getScriptObject(), application, IApplication.TYPE_AHEAD_SHOW_POPUP_WHEN_EMPTY, Boolean.TRUE))); settings.setShowListOnFocusGain(Boolean.TRUE.equals(UIUtils.getUIProperty(getScriptObject(), application, IApplication.TYPE_AHEAD_SHOW_POPUP_ON_FOCUS_GAIN, Boolean.TRUE))); if (!getScriptObject().isReadOnly() && getScriptObject().isEnabled()) { super.renderHead(response); response.renderJavascript("Wicket.AutoCompleteSettings.enterHidesWithNoSelection = true;", //$NON-NLS-1$ "AutocompleteSettingsID"); //$NON-NLS-1$ } } /** * @see org.apache.wicket.behavior.AbstractBehavior#isEnabled(org.apache.wicket.Component) */ @Override public boolean isEnabled(Component component) { IFormUIInternal<?> formui = findParent(IFormUIInternal.class); if (formui != null && formui.isDesignMode()) { return false; } return super.isEnabled(component) && WebClientSession.get().useAjax(); } }; add(beh); }
From source file:com.visural.stereotyped.ui.prototype.PreviewerPanel.java
License:Mozilla Public License
public PreviewerPanel(String id, int previewId) { super(id);// w ww . j a v a 2 s. c o m this.previewId = previewId; add((form = new PreviewForm("preview"))); add(new HeaderContributor(new IHeaderContributor() { public void renderHead(IHeaderResponse response) { response.renderJavascript(getHeaderJS(), "previewer_" + previewerId); } })); }
From source file:com.visural.stereotyped.ui.prototype.PrototypeEditor.java
License:Mozilla Public License
public PrototypeEditor(PageParameters params) { super(params); add(CSSPackageResource.getHeaderContribution(new WindowsTheme())); add(new HeaderContributor(new IHeaderContributor() { public void renderHead(IHeaderResponse response) { response.renderJavascript(getHeaderJS(), "header_js"); }/*from www. j ava2 s . com*/ })); stereotypeUUIDList = new ArrayList<UUID>(stereotypeService.listAll()); Collections.sort(stereotypeUUIDList, new Comparator<UUID>() { public int compare(UUID o1, UUID o2) { return stereotypeService.read(o1).getName().compareTo(stereotypeService.read(o2).getName()); } }); for (UUID uuid : stereotypeUUIDList) { stereotypeUUUIDDesc.put(uuid, stereotypeService.read(uuid).getName()); } editor.setOutputMarkupId(true); add(editor); final WebMarkupContainer wrap = new WebMarkupContainer("wrap"); editor.add(wrap.setOutputMarkupId(true)); expert = userService.getUser(userService.getCurrentUser()).getExpertMode(); stereotypeUUIDStr = params.getString(StdParam.LOAD_ID); id = UUID.fromString(stereotypeUUIDStr); if (stereotypeUUIDStr == null) { throw new IllegalArgumentException("Must provide a prototype name to load."); } userService.registerListInteraction(userService.getCurrentUser(), UserListType.RECENTLY_VIEWED, id); previewId = previewProvider.get().getNewPreviewerSession(stereotypeService.readUncached(id), new BasicHTMLResourceRenderer(stereotypeService.listAllLibraries())); components = new ArrayList<Class<? extends Component>>(); List<ComponentLibrary> libs = stereotypeService.listAllLibraries(); Stereotype s = previewProvider.get().getStereotype(previewId); for (ComponentLibrary lib : libs) { for (Class<? extends Component> com : lib.getComponents()) { if (s.allowComponent(lib.getJarName(), com)) { components.add(com); } } } EditorForm form; wrap.add(form = new EditorForm("mainForm")); prev = new PreviewerPanel("preview", previewId); wrap.add(prev); Form previewStatesForm = new Form("previewStates"); wrap.add(previewStatesForm); previewStatesForm.add(new DropDownChoice("currentPreviewState", new IModel<String>() { public String getObject() { return getDynStereotype().getCurrentPreviewStateName(); } public void setObject(String object) { if (!Function.nvl(object, "").equals(Function.nvl(getObject(), ""))) { if (object == null) { getDynStereotype().getDefaultState().select(); } else { getDynStereotype().getPreviewStateByName(object).select(); } } } public void detach() { } }, new AbstractReadOnlyModel() { @Override public Object getObject() { ArrayList al = new ArrayList(); List<PreviewState> states = getDynStereotype().getPreviewStates(); for (PreviewState ps : states) { al.add(ps.getName()); } return al; } }).setNullValid(true).add(new AjaxFormSubmitBehavior("onchange") { @Override protected void onSubmit(AjaxRequestTarget target) { target.addComponent(editor); } @Override protected void onError(AjaxRequestTarget target) { target.addComponent(editor); } })); final Dialog addPreviewStateDialog = new Dialog("addPreviewStateDialog"); addPreviewStateDialog.setOutputMarkupId(true); editor.add(addPreviewStateDialog); final AddPreviewStateForm addPreviewStateForm = new AddPreviewStateForm("addPreviewState", addPreviewStateDialog); addPreviewStateDialog.add(addPreviewStateForm); addPreviewStateDialog.add(new Label("title", new AbstractReadOnlyModel() { @Override public Object getObject() { return addPreviewStateForm.toCopy == null ? "Add Preview State" : "Copy Preview State '" + addPreviewStateForm.toCopy.getName() + "'"; } })); wrap.add(new AjaxLink("addPreviewState") { @Override public void onClick(AjaxRequestTarget target) { addPreviewStateForm.open(target); } }); wrap.add(new AjaxLink("copyPreviewState") { @Override public boolean isVisible() { return getDynStereotype().getCurrentPreviewState() != null; } @Override public void onClick(AjaxRequestTarget target) { addPreviewStateForm.open(target, getDynStereotype().getCurrentPreviewState()); } }); wrap.add(new ConfirmerAjaxLink("delPreviewState") { @Override public boolean isVisible() { return getDynStereotype().getCurrentPreviewState() != null; } @Override public void onClick(AjaxRequestTarget target) { getDynStereotype().deletePreviewState(getDynStereotype().getCurrentPreviewState()); target.addComponent(editor); } }); wrap.add(new AjaxLink("refreshAll") { @Override public void onClick(AjaxRequestTarget target) { target.addComponent(wrap); } }); wrap.add(new IndicateModalAjaxSubmitLink("save", form) { @Override public IPrivilege getRenderPrivilege() { return Privilege.currentUserHasWriteAccess(id); } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { target.addComponent(editor); Stereotype s = previewProvider.get().getStereotype(previewId); stereotypeService.write(s); getSession().info("Saved '" + s.getName() + "' successfully."); } }); wrap.add(new IndicateModalSubmitLink("saveAndClose", form) { @Override public IPrivilege getRenderPrivilege() { return Privilege.currentUserHasWriteAccess(id); } @Override public void onSubmit() { Stereotype s = previewProvider.get().getStereotype(previewId); stereotypeService.write(s); getSession().info("Saved '" + s.getName() + "' successfully."); setResponsePage(LandingPage.class); } }); wrap.add(new ConfirmerAjaxLink("close") { @Override public void onClick(AjaxRequestTarget target) { setResponsePage(LandingPage.class); } }); wrap.add(new IndicateModalAjaxLink("fix") { @Override public void onClick(AjaxRequestTarget target) { target.addComponent(editor); Stereotype s = getDynStereotype(); List<Slot> slots = new ArrayList<Slot>(); recurse(s, slots); int fixed = 0; for (int n = 0; n < slots.size() - 1; n++) { Slot cur = slots.get(n); if (listHasUUID(slots.subList(n + 1, slots.size()), cur.getUuid())) { cur.mutateUUID(true); fixed++; } } getSession().info("Fixed " + fixed + " broken slots."); } private boolean listHasUUID(List<Slot> l, UUID uuid) { for (Slot s : l) { if (s.getUuid().equals(uuid)) { return true; } } return false; } private void recurse(Component c, List<Slot> result) { if (c == null || c.getSlots() == null || c.getSlots().isEmpty()) { return; } for (Slot s : c.getSlots()) { recurse(s, result); } } private void recurse(Slot s, List<Slot> result) { if (s == null) { return; } result.add(s); if (s.getContent() != null && !s.getContent().isEmpty()) { for (Component c : s.getContent()) { recurse(c, result); } } } }); wrap.add(new WebMarkupContainer("previewWindow") .add(new SimpleAttributeModifier("href", prev.getPreviewURL()))); }
From source file:com.visural.wicket.component.codebox.CodeBox.java
License:Apache License
private void includeHeaderContributions() { if (autoAddToHeader()) { add(new HeaderContributor( CSSPackageResource.getHeaderContribution(new PrettifyCSSResourceReference()))); add(new HeaderContributor( JavascriptPackageResource.getHeaderContribution(new PrettifyJSResourceReference()))); }// www . j ava 2 s .c o m add(new HeaderContributor(new IHeaderContributor() { public void renderHead(IHeaderResponse response) { if (getLanguageOverride() != null && getLanguageOverride().getExtraJSfile() != null) { response.renderJavascriptReference(new ExtraJSResourceReference(getLanguageOverride())); } response.renderOnDomReadyJavascript("prettyPrint()"); } })); }
From source file:com.visural.wicket.component.dropdown.DropDown.java
License:Apache License
public DropDown(String id, IModel<T> model, Class<T> type, DropDownDataSource source, boolean requireListValue) { super(id, model, type); this.outputPath = Application.get().getDebugSettings().isOutputComponentPath(); this.source = source; this.requireListValue = requireListValue; this.setComponentBorder(new DropDownBorder()); origMarkupId = this.getMarkupId(); this.setOutputMarkupId(true); if (requireListValue) { this.setMarkupId("visural_dropdown_id_" + origMarkupId); } else {/*from www. ja v a 2 s .co m*/ this.setMarkupId("visural_dropdown_value_" + origMarkupId); } add(new AbstractBehavior() { @Override public void onRendered(Component component) { if (DropDown.this.requireListValue) { String value = ""; if (DropDown.this.hasRawInput()) { String lookup = DropDown.this.getRawInput(); T unsubmittedObject = convertValue(new String[] { lookup }); if (unsubmittedObject != null) { value = DropDown.this.source.getDescriptionForValue(unsubmittedObject); } } else if (DropDown.this.getModelObject() != null) { value = DropDown.this.source.getDescriptionForValue(DropDown.this.getModelObject()); } component.getResponse() .write(String.format( "<input %s type='text' %s value=\"%s\" id='visural_dropdown_value_%s' %s/>", DropDown.this.isEnabled() ? "" : "disabled ", getFlattenedValueAttributes(), StringUtil.htmlAttributeEscape(value), origMarkupId, outputPath ? "wicketpath=\"" + getPageRelativePath() + "_vwdd\"" : "")); } else { component.getResponse() .write("<input type='hidden' id='visural_dropdown_id_" + origMarkupId + "'/>"); } if (DropDown.this.isShowArrowIcon()) { component.getResponse().write( "<a class=\"visural_dropdown_arrow\" href=\"#\" onclick=\"visural_dropdown_toggle('" + origMarkupId + "'); return false;\">" + "<img class='visural_dropdown' alt='[v]' src='" + urlFor(getDropDownIconReference()) + "'/>" + "</a>"); } component.getResponse() .write("<div id=\"visural_dropdown_" + origMarkupId + "\" class=\"visural_dropdown\" " + "onMouseOver=\"visural_dropdown_mouseover('" + origMarkupId + "')\" " + "onMouseOut=\"visural_dropdown_mouseout('" + origMarkupId + "')\"></div>"); } }); if (autoAddToHeader()) { add(JavascriptPackageResource.getHeaderContribution(DropDown.class, "dropdown.js")); add(JavascriptPackageResource.getHeaderContribution(new StringBufferResourceReference())); add(getCSSHeaderContribution()); if (isSupportIE6()) { add(JavascriptPackageResource.getHeaderContribution(new JQueryBGIFrameResourceReference())); } } final String dsjs = DropDownDataSourceJSRender.getJS(source); add(new HeaderContributor(new IHeaderContributor() { public void renderHead(IHeaderResponse arg0) { arg0.renderOnDomReadyJavascript(dsjs); } })); add(new HeaderContributor(new IHeaderContributor() { public void renderHead(IHeaderResponse arg0) { arg0.renderOnDomReadyJavascript(getInitJS()); } })); }
From source file:com.visural.wicket.component.fancybox.Fancybox.java
License:Apache License
private void initAll() { this.setOutputMarkupId(true); // we default the "hide on content click" to false if this isn't an image being displayed. if (!this.isImage()) { this.setHideOnContentClick(false); }// w ww.ja va2 s .c om if (autoAddToHeader()) { add(JavascriptPackageResource.getHeaderContribution(new FancyBoxJavascriptRef())); if (isMouseWheelEnabled()) { add(JavascriptPackageResource.getHeaderContribution(new JQueryMouseWheelJSRef())); } add(CSSPackageResource.getHeaderContribution(new FancyBoxCSSRef())); } add(new HeaderContributor(new IHeaderContributor() { public void renderHead(IHeaderResponse response) { String js = getFancyBoxJS(); if (js != null) { response.renderOnDomReadyJavascript(js); } } })); }
From source file:com.visural.wicket.component.nicedit.RichTextEditor.java
License:Apache License
private void init() { this.setOutputMarkupId(true); setComponentBorder(new RenderAsInlineBlockComponentBorder()); loadDefaultButtonConfig();/*from w w w .ja v a 2 s . c om*/ if (autoAddToHeader()) { add(JavascriptPackageResource.getHeaderContribution(new NiceditJSRef())); } add(new HeaderContributor(new IHeaderContributor() { public void renderHead(IHeaderResponse resp) { resp.renderOnLoadJavascript(getInitJS()); } })); }
From source file:com.visural.wicket.component.submitters.impl.IndicateModalCommon.java
License:Apache License
public IndicateModalCommon(IndicateModalComponent com) { this.imComponent = com; this.component = (Component) imComponent; if (com.autoAddToHeader()) { ((Component) com).add(new HeaderContributor(new ModalHeaderContributor())); component.add(JavascriptPackageResource.getHeaderContribution(new JQueryCenterResourceReference())); component.add(CSSPackageResource.getHeaderContribution(new ModalCSSRef())); if (com.isSupportIE6()) { component.add(//from w w w . j a v a2s .com JavascriptPackageResource.getHeaderContribution(new JQueryBGIFrameResourceReference())); } } // preload image ((Component) com).add(new HeaderContributor(new IHeaderContributor() { public void renderHead(IHeaderResponse arg0) { arg0.renderOnDomReadyJavascript( "jQuery('<img />').attr('src', '" + component.urlFor(getIndicatorImage()) + "');"); } })); }
From source file:com.visural.wicket.component.submitters.IndicateRefreshAjaxLink.java
License:Apache License
public IndicateRefreshAjaxLink(String id) { super(id);/*from w w w. j av a2 s . c om*/ add(new HeaderContributor(new IHeaderContributor() { public void renderHead(IHeaderResponse arg0) { arg0.renderOnDomReadyJavascript( "jQuery('<img />').attr('src', '" + urlFor(getRefreshIndicatorImageReference()) + "');"); } })); }