List of usage examples for org.apache.wicket MarkupContainer setEnabled
public final Component setEnabled(final boolean enabled)
From source file:com.servoy.extensions.beans.dbtreeview.WicketDBTreeView.java
License:Open Source License
@Override protected Component newJunctionLink(MarkupContainer parent, final String id, final Object node) { final MarkupContainer junctionLink; if (isLeaf(node) == false) { final ILinkCallback junctionLinkCallback = new ILinkCallback() { private static final long serialVersionUID = 1L; public void onClick(AjaxRequestTarget target) { if (WicketDBTreeView.this.isEnabled()) { if (isNodeExpanded(node)) { getTreeState().collapseNode(node); } else { getChildCount(node); getTreeState().expandNode(node); }//from w ww . jav a 2 s .c om onJunctionLinkClicked(target, node); updateTree(target); } } }; if (getLinkType() == LinkType.AJAX) { junctionLink = new AjaxLinkWithIndicator(id) { private static final long serialVersionUID = 1L; /** * @see org.apache.wicket.ajax.markup.html.AjaxLink#onClick(org.apache.wicket.ajax.AjaxRequestTarget) */ @Override public void onClick(AjaxRequestTarget target) { junctionLinkCallback.onClick(target); } public String getAjaxIndicatorMarkupId() { return isNodeExpanded(node) ? null : "indicator"; } }; } else junctionLink = newLink(id, junctionLinkCallback); junctionLink.add(new AbstractBehavior() { private static final long serialVersionUID = 1L; @Override public void onComponentTag(Component component, ComponentTag tag) { if (isNodeExpanded(node)) { tag.put("class", "junction-open"); } else { tag.put("class", "junction-closed"); } } }); junctionLink.setEnabled(wicketTree.isEnabled()); } else { junctionLink = new WebMarkupContainer(id) { private static final long serialVersionUID = 1L; /** * @see org.apache.wicket.Component#onComponentTag(org.apache.wicket.markup.ComponentTag) */ @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); tag.setName("span"); tag.put("class", "junction-corner"); } }; } return junctionLink; }
From source file:com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.java
License:Open Source License
public WebTabPanel(IApplication application, final RuntimeTabPanel scriptable, String name, int orient, boolean oneTab) { super(name);// ww w .j a v a 2 s . co m this.application = application; this.orient = orient; final boolean useAJAX = Utils.getAsBoolean(application.getRuntimeProperties().get("useAJAX")); //$NON-NLS-1$ setOutputMarkupPlaceholderTag(true); if (orient != TabPanel.SPLIT_HORIZONTAL && orient != TabPanel.SPLIT_VERTICAL) add(new Label("webform", new Model<String>("")));//temporary add, in case the tab panel does not contain any tabs //$NON-NLS-1$ //$NON-NLS-2$ // TODO check ignore orient and oneTab?? IModel<Integer> tabsModel = new AbstractReadOnlyModel<Integer>() { private static final long serialVersionUID = 1L; @Override public Integer getObject() { return Integer.valueOf(allTabs.size()); } }; if (orient != TabPanel.HIDE && orient != TabPanel.SPLIT_HORIZONTAL && orient != TabPanel.SPLIT_VERTICAL && !(orient == TabPanel.DEFAULT_ORIENTATION && oneTab)) { add(new Loop("tablinks", tabsModel) //$NON-NLS-1$ { private static final long serialVersionUID = 1L; private String focusedItem; @Override protected void populateItem(final LoopItem item) { final WebTabHolder holder = allTabs.get(item.getIteration()); MarkupContainer link = null; link = new ServoySubmitLink("tablink", useAJAX) //$NON-NLS-1$ { private static final long serialVersionUID = 1L; /** * @see wicket.ajax.markup.html.AjaxFallbackLink#onClick(wicket.ajax.AjaxRequestTarget) */ @Override public void onClick(AjaxRequestTarget target) { Page page = findPage(); if (page != null) { setActiveTabPanel(holder.getPanel()); if (target != null) { relinkAtTabPanel(WebTabPanel.this); focusedItem = item.getId(); WebEventExecutor.generateResponse(target, page); } } } private void relinkAtForm(WebForm form) { form.visitChildren(WebTabPanel.class, new IVisitor<WebTabPanel>() { public Object component(WebTabPanel wtp) { relinkAtTabPanel(wtp); return IVisitor.CONTINUE_TRAVERSAL; } }); } private void relinkAtTabPanel(WebTabPanel wtp) { wtp.relinkFormIfNeeded(); wtp.visitChildren(WebForm.class, new IVisitor<WebForm>() { public Object component(WebForm form) { relinkAtForm(form); return IVisitor.CONTINUE_TRAVERSAL; } }); } @Override protected void disableLink(final ComponentTag tag) { // if the tag is an anchor proper if (tag.getName().equalsIgnoreCase("a") || tag.getName().equalsIgnoreCase("link") //$NON-NLS-1$//$NON-NLS-2$ || tag.getName().equalsIgnoreCase("area")) //$NON-NLS-1$ { // Remove any href from the old link tag.remove("href"); //$NON-NLS-1$ tag.remove("onclick"); //$NON-NLS-1$ } } }; if (item.getId().equals(focusedItem)) { IRequestTarget currentRequestTarget = RequestCycle.get().getRequestTarget(); if (currentRequestTarget instanceof AjaxRequestTarget) { ((AjaxRequestTarget) currentRequestTarget).focusComponent(link); } focusedItem = null; } if (holder.getTooltip() != null) { link.setMetaData(TooltipAttributeModifier.TOOLTIP_METADATA, holder.getTooltip()); } TabIndexHelper.setUpTabIndexAttributeModifier(link, tabSequenceIndex); link.add(TooltipAttributeModifier.INSTANCE); if (item.getIteration() == 0) link.add(new AttributeModifier("firsttab", true, new Model<Boolean>(Boolean.TRUE))); //$NON-NLS-1$ link.setEnabled(holder.isEnabled() && WebTabPanel.this.isEnabled()); String text = holder.getText(); if (holder.getDisplayedMnemonic() > 0) { final String mnemonic = Character.toString((char) holder.getDisplayedMnemonic()); link.add(new SimpleAttributeModifier("accesskey", mnemonic)); //$NON-NLS-1$ if (text != null && text.contains(mnemonic) && !HtmlUtils.hasUsefulHtmlContent(text)) { StringBuffer sbBodyText = new StringBuffer(text); int mnemonicIdx = sbBodyText.indexOf(mnemonic); if (mnemonicIdx != -1) { sbBodyText.insert(mnemonicIdx + 1, "</u>"); //$NON-NLS-1$ sbBodyText.insert(mnemonicIdx, "<u>"); //$NON-NLS-1$ text = sbBodyText.toString(); } } } ServoyTabIcon tabIcon = new ServoyTabIcon("icon", holder, scriptable); //$NON-NLS-1$ link.add(tabIcon); Label label = new Label("linktext", new Model<String>(text)); //$NON-NLS-1$ label.setEscapeModelStrings(false); link.add(label); item.add(link); IModel<String> selectedOrDisabledClass = new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { if (!holder.isEnabled() || !WebTabPanel.this.isEnabled()) { if (currentForm == holder.getPanel()) { return "disabled_selected_tab"; //$NON-NLS-1$ } return "disabled_tab"; //$NON-NLS-1$ } else { if (currentForm == holder.getPanel()) { return "selected_tab"; //$NON-NLS-1$ } return "deselected_tab"; //$NON-NLS-1$ } } }; item.add(new AttributeModifier("class", true, selectedOrDisabledClass)); //$NON-NLS-1$ label.add(new StyleAppendingModifier(new Model<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { String style = "white-space: nowrap;"; //$NON-NLS-1$ if (foreground != null) { style += " color:" + PersistHelper.createColorString(foreground); //$NON-NLS-1$ } if (holder.getIcon() != null) { style += "; padding-left: 3px"; //$NON-NLS-1$ } return style; } })); } }); // All tab panels get their tabs rearranged after they make it to the browser. // On Chrome & Safari the tab rearrangement produces an ugly flicker effect, because // initially the tabs are not visible and then they are made visible. By // sending the tab as invisible and turning it to visible only after the tabs // are arranged, this jumping/flickering effect is gone. However a small delay can now be // noticed in Chrome & Safari, which should also be eliminated somehow. // The tab panel is set to visible in function "rearrageTabsInTabPanel" from "servoy.js". add(new StyleAppendingModifier(new Model<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { return "visibility: hidden;overflow:hidden"; //$NON-NLS-1$ } })); add(new AbstractServoyDefaultAjaxBehavior() { @Override protected void respond(AjaxRequestTarget target) { } @Override public void renderHead(IHeaderResponse response) { super.renderHead(response); boolean dontRearrangeHere = false; if (!(getRequestCycle().getRequestTarget() instanceof AjaxRequestTarget) && Utils.getAsBoolean(((MainPage) getPage()).getController().getApplication() .getRuntimeProperties().get("enableAnchors"))) //$NON-NLS-1$ { Component parentForm = getParent(); while ((parentForm != null) && !(parentForm instanceof WebForm)) parentForm = parentForm.getParent(); if (parentForm != null) { int anch = ((WebForm) parentForm).getAnchors(WebTabPanel.this.getMarkupId()); if (anch != 0 && anch != IAnchorConstants.DEFAULT) dontRearrangeHere = true; } } if (!dontRearrangeHere) { String jsCall = "rearrageTabsInTabPanel('" + WebTabPanel.this.getMarkupId() + "');"; //$NON-NLS-1$ //$NON-NLS-2$ // Safari and Konqueror have some problems with the "domready" event, so for those // browsers we'll use the "load" event. Otherwise use "domready", it reduces the flicker // effect when rearranging the tabs. ClientProperties clp = ((WebClientInfo) Session.get().getClientInfo()).getProperties(); if (clp.isBrowserKonqueror() || clp.isBrowserSafari()) response.renderOnLoadJavascript(jsCall); else response.renderOnDomReadyJavascript(jsCall); } } @Override public boolean isEnabled(Component component) { return WebClientSession.get().useAjax(); } }); } add(StyleAttributeModifierModel.INSTANCE); add(TooltipAttributeModifier.INSTANCE); this.scriptable = scriptable; ((ChangesRecorder) scriptable.getChangesRecorder()).setDefaultBorderAndPadding(null, TemplateGenerator.DEFAULT_LABEL_PADDING); }
From source file:org.artifactory.addon.wicket.WicketAddonsImpl.java
License:Open Source License
private static void disableAll(MarkupContainer container) { container.setEnabled(false); container.visitChildren(new SetEnableVisitor(false)); }
From source file:org.hippoecm.frontend.editor.plugins.field.NodeFieldPlugin.java
License:Apache License
@Override protected void populateEditItem(Item item, final JcrNodeModel model) { Fragment fragment = new TransparentFragment("fragment", "edit-fragment", this); final int index = item.getIndex(); WebMarkupContainer controls = new WebMarkupContainer("controls"); controls.setVisible(canRemoveItem() || canReorderItems()); fragment.add(controls);//w w w. j a v a2 s. c om MarkupContainer remove = new AjaxLink("remove") { @Override public void onClick(AjaxRequestTarget target) { onRemoveItem(model, target); } }; if (!canRemoveItem()) { remove.setVisible(false); } final HippoIcon removeIcon = HippoIcon.fromSprite("remove-icon", Icon.TIMES); remove.add(removeIcon); controls.add(remove); MarkupContainer upLink = new AjaxLink("up") { @Override public void onClick(AjaxRequestTarget target) { onMoveItemUp(model, target); } }; if (!canReorderItems()) { upLink.setVisible(false); } if (index == 0) { upLink.setEnabled(false); } final HippoIcon upIcon = HippoIcon.fromSprite("up-icon", Icon.ARROW_UP); upLink.add(upIcon); controls.add(upLink); MarkupContainer downLink = new AjaxLink("down") { @Override public void onClick(AjaxRequestTarget target) { IFieldDescriptor field = getFieldHelper().getField(); if (field != null) { String name = field.getPath(); JcrNodeModel parent = model.getParentModel(); if (parent != null) { JcrNodeModel nextModel = new JcrNodeModel( parent.getItemModel().getPath() + "/" + name + "[" + (index + 2) + "]"); onMoveItemUp(nextModel, target); } } } }; if (!canReorderItems()) { downLink.setVisible(false); } boolean isLast = (index == provider.size() - 1); downLink.setEnabled(!isLast); final HippoIcon downIcon = HippoIcon.fromSprite("down-icon", Icon.ARROW_DOWN); downLink.add(downIcon); controls.add(downLink); item.add(fragment); }
From source file:org.hippoecm.frontend.editor.plugins.field.PropertyFieldPlugin.java
License:Apache License
@Override protected void populateEditItem(Item item, final JcrPropertyValueModel model) { Fragment fragment = new TransparentFragment("fragment", "edit-fragment", this); WebMarkupContainer controls = new WebMarkupContainer("controls"); controls.setVisible(canRemoveItem() || canReorderItems()); fragment.add(controls);// w w w. ja v a 2 s .c o m MarkupContainer remove = new AjaxLink("remove") { @Override public void onClick(AjaxRequestTarget target) { onRemoveItem(model, target); hasChangedPropValueOrder = true; } }; if (!canRemoveItem()) { remove.setVisible(false); } final HippoIcon removeIcon = HippoIcon.fromSprite("remove-icon", Icon.TIMES); remove.add(removeIcon); controls.add(remove); MarkupContainer upLink = new AjaxLink("up") { @Override public void onClick(AjaxRequestTarget target) { onMoveItemUp(model, target); hasChangedPropValueOrder = true; } }; boolean isFirst = (model.getIndex() == 0); if (!canReorderItems()) { upLink.setVisible(false); } upLink.setEnabled(!isFirst); final HippoIcon upIcon = HippoIcon.fromSprite("up-icon", Icon.ARROW_UP); upLink.add(upIcon); controls.add(upLink); MarkupContainer downLink = new AjaxLink("down") { @Override public void onClick(AjaxRequestTarget target) { JcrPropertyValueModel nextModel = new JcrPropertyValueModel(model.getIndex() + 1, model.getJcrPropertymodel()); onMoveItemUp(nextModel, target); hasChangedPropValueOrder = true; } }; boolean isLast = (model.getIndex() == provider.size() - 1); if (!canReorderItems()) { downLink.setVisible(false); } downLink.setEnabled(!isLast); final HippoIcon downIcon = HippoIcon.fromSprite("down-icon", Icon.ARROW_DOWN); downLink.add(downIcon); controls.add(downLink); item.add(fragment); }
From source file:org.hippoecm.frontend.plugins.cms.browse.tree.FolderTreePlugin.java
License:Apache License
private CmsJcrTree initializeTree(final IPluginContext context, final IPluginConfig config, final String startingPath) { rootModel = new JcrNodeModel(startingPath); DocumentListFilter folderTreeConfig = new DocumentListFilter(config); final boolean workflowEnabled = getPluginConfig().getAsBoolean("workflow.enabled", true); this.rootNode = new FolderTreeNode(rootModel, folderTreeConfig); treeModel = new JcrTreeModel(rootNode); context.registerService(treeModel, IObserver.class.getName()); final CmsJcrTree cmsJcrTree = new CmsJcrTree("tree", treeModel, newTreeNodeTranslator(config), newTreeNodeIconProvider(context, config)) { private static final long serialVersionUID = 1L; @Override//from w w w. j ava2 s .c o m protected MarkupContainer newContextContent(MarkupContainer parent, String id, final TreeNode node) { IPluginConfig workflowConfig = config.getPluginConfig("module.workflow"); if (workflowConfig != null && (node instanceof IJcrTreeNode)) { ContextWorkflowManagerPlugin content = new ContextWorkflowManagerPlugin(context, workflowConfig); content.bind(FolderTreePlugin.this, id); IModel<Node> nodeModel = ((IJcrTreeNode) node).getNodeModel(); content.setModel(nodeModel); return content; } return new EmptyPanel(id); } @Override protected MarkupContainer newContextLink(final MarkupContainer parent, String id, final TreeNode node, final MarkupContainer content) { if (getPluginConfig().getBoolean("contextmenu.rightclick.enabled")) { parent.add(new RightClickBehavior(content, parent) { private static final long serialVersionUID = 1L; @Override protected void respond(AjaxRequestTarget target) { updateTree(target); getContextmenu().setVisible(true); target.add(getComponentToUpdate()); IContextMenuManager menuManager = findParent(IContextMenuManager.class); if (menuManager != null) { menuManager.showContextMenu(this); final IRequestParameters requestParameters = RequestCycle.get().getRequest() .getRequestParameters(); StringValue x = requestParameters.getParameterValue(MOUSE_X_PARAM); StringValue y = requestParameters.getParameterValue(MOUSE_Y_PARAM); if (x != null && y != null) { target.appendJavaScript("Hippo.ContextMenu.renderAtPosition('" + content.getMarkupId() + "', " + x + ", " + y + ");"); } else { target.appendJavaScript( "Hippo.ContextMenu.renderInTree('" + content.getMarkupId() + "');"); } } } }); } MarkupContainer container = super.newContextLink(parent, id, node, content); if (!workflowEnabled) { container.setEnabled(false); } return container; } @Override protected void onContextLinkClicked(MarkupContainer content, AjaxRequestTarget target) { target.appendJavaScript("Hippo.ContextMenu.renderInTree('" + content.getMarkupId() + "');"); } @Override protected void onNodeLinkClicked(AjaxRequestTarget target, TreeNode clickedNode) { if (clickedNode instanceof IJcrTreeNode) { IJcrTreeNode treeNodeModel = (IJcrTreeNode) clickedNode; FolderTreePlugin.this.setDefaultModel(treeNodeModel.getNodeModel()); ITreeState state = getTreeState(); if (state.isNodeExpanded(clickedNode)) { // super has already switched selection. if (!state.isNodeSelected(clickedNode)) { state.collapseNode(clickedNode); } } else { state.expandNode(clickedNode); } } updateTree(target); } @Override protected void onJunctionLinkClicked(AjaxRequestTarget target, TreeNode node) { updateTree(target); } @Override public void onTargetRespond(final AjaxRequestTarget target, boolean dirty) { if (dirty) { target.appendJavaScript(treeHelperBehavior.getRenderString()); } } @Override protected void addComponent(final AjaxRequestTarget target, final Component component) { if (component.findParent(Page.class) != null) { super.addComponent(target, component); } } }; cmsJcrTree.add(treeHelperBehavior = new WicketTreeHelperBehavior(new WicketTreeHelperSettings(config)) { private static final long serialVersionUID = 1L; @Override protected String getWicketId() { return tree.getMarkupId(); } }); cmsJcrTree.setRootLess(config.getBoolean("rootless")); return cmsJcrTree; }
From source file:org.onehippo.forge.exdocpicker.impl.field.ExternalDocumentFieldSelectorPlugin.java
License:Apache License
private void addControlsToListItem(final ExternalDocumentCollection<Serializable> docCollection, final ListItem<?> item) { final Serializable doc = (Serializable) item.getModelObject(); final boolean isEditMode = isEditMode(); final int itemCount = docCollection.getSize(); final int itemIndex = item.getIndex(); final WebMarkupContainer controls = new WebMarkupContainer("controls"); controls.setVisible(isEditMode);/* w ww . j a v a 2s. co m*/ final MarkupContainer upLink = new AjaxLink("up") { @Override public void onClick(AjaxRequestTarget target) { boolean removed = docCollection.remove(doc); if (removed) { docCollection.add(itemIndex - 1, doc); exdocService.setFieldExternalDocuments(extDocServiceContext, docCollection); target.add(ExternalDocumentFieldSelectorPlugin.this); } } }; upLink.setEnabled(isEditMode && itemIndex > 0); upLink.setVisible(isEditMode); final HippoIcon upIcon = HippoIcon.fromSprite("up-icon", Icon.ARROW_UP); upLink.add(upIcon); controls.add(upLink); final MarkupContainer downLink = new AjaxLink("down") { @Override public void onClick(AjaxRequestTarget target) { boolean removed = docCollection.remove(doc); if (removed) { docCollection.add(itemIndex + 1, doc); exdocService.setFieldExternalDocuments(extDocServiceContext, docCollection); target.add(ExternalDocumentFieldSelectorPlugin.this); } } }; downLink.setEnabled(isEditMode && itemIndex < itemCount - 1); downLink.setVisible(isEditMode); final HippoIcon downIcon = HippoIcon.fromSprite("down-icon", Icon.ARROW_DOWN); downLink.add(downIcon); controls.add(downLink); final MarkupContainer removeLink = new AjaxLink("remove") { @Override public void onClick(AjaxRequestTarget target) { boolean removed = docCollection.remove(doc); if (removed) { exdocService.setFieldExternalDocuments(extDocServiceContext, docCollection); target.add(ExternalDocumentFieldSelectorPlugin.this); } } }; removeLink.setEnabled(isEditMode); removeLink.setVisible(isEditMode); final HippoIcon removeIcon = HippoIcon.fromSprite("remove-icon", Icon.TIMES); removeLink.add(removeIcon); controls.add(removeLink); item.add(controls); }