Example usage for org.apache.wicket MarkupContainer setEnabled

List of usage examples for org.apache.wicket MarkupContainer setEnabled

Introduction

In this page you can find the example usage for org.apache.wicket MarkupContainer setEnabled.

Prototype

public final Component setEnabled(final boolean enabled) 

Source Link

Document

Sets whether this component is enabled.

Usage

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);
}