Example usage for org.apache.wicket.markup.html.link AbstractLink addOrReplace

List of usage examples for org.apache.wicket.markup.html.link AbstractLink addOrReplace

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.link AbstractLink addOrReplace.

Prototype

public MarkupContainer addOrReplace(final Component... children) 

Source Link

Document

Replaces a child component of this container with another or just adds it in case no child with the same id existed yet.

Usage

From source file:org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions.AdditionalLinksPanel.java

License:Apache License

protected AdditionalLinksPanel(final String id, final List<LinkAndLabel> links) {
    super(id, new ListOfLinksModel(links));

    final List<LinkAndLabel> linkAndLabels = getModel().getObject();

    final WebMarkupContainer container = new WebMarkupContainer(ID_ADDITIONAL_LINK_LIST);
    addOrReplace(container);//from   ww  w. ja  va2 s.c o  m

    container.setOutputMarkupId(true);

    setOutputMarkupId(true);

    final ListView<LinkAndLabel> listView = new ListView<LinkAndLabel>(ID_ADDITIONAL_LINK_ITEM, linkAndLabels) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<LinkAndLabel> item) {
            final LinkAndLabel linkAndLabel = item.getModelObject();

            final AbstractLink link = linkAndLabel.getLink();

            final String itemTitle = first(linkAndLabel.getDisabledReasonIfAny(),
                    linkAndLabel.getDescriptionIfAny());
            if (itemTitle != null) {
                item.add(new AttributeAppender("title", itemTitle));
            }

            final Label viewTitleLabel = new Label(ID_ADDITIONAL_LINK_TITLE, linkAndLabel.getLabel());
            if (linkAndLabel.isBlobOrClob()) {
                link.add(new CssClassAppender("noVeil"));
            }
            if (linkAndLabel.isPrototype()) {
                link.add(new CssClassAppender("prototype"));
            }
            link.add(new CssClassAppender(linkAndLabel.getActionIdentifier()));

            SemanticsOf semantics = linkAndLabel.getSemantics();
            if (linkAndLabel.getParameters().isNoParameters()
                    && linkAndLabel.getDisabledReasonIfAny() == null) {
                addConfirmationDialogIfAreYouSureSemantics(link, semantics);
            }

            final String cssClass = linkAndLabel.getCssClass();
            CssClassAppender.appendCssClassTo(link, cssClass);

            viewTitleLabel.add(new CssClassAppender(StringExtensions.asLowerDashed(linkAndLabel.getLabel())));

            link.addOrReplace(viewTitleLabel);

            final String cssClassFa = linkAndLabel.getCssClassFa();
            if (!Strings.isNullOrEmpty(cssClassFa)) {
                final CssClassFaPosition position = linkAndLabel.getCssClassFaPosition();
                viewTitleLabel.add(new CssClassFaBehavior(cssClassFa, position));
            }

            item.addOrReplace(link);
        }
    };
    container.addOrReplace(listView);
}

From source file:org.apache.isis.viewer.wicket.ui.components.actionmenu.serviceactions.ServiceActionUtil.java

License:Apache License

static void addLeafItem(final CssMenuItem menuItem, final ListItem<CssMenuItem> listItem,
        final MarkupContainer parent) {
    Fragment leafItem;//ww w.  j a  v a  2  s. c o m
    if (!menuItem.isSeparator()) {
        leafItem = new Fragment("content", "leafItem", parent);

        AbstractLink subMenuItemLink = menuItem.getLink();

        Label menuItemLabel = new Label("menuLinkLabel", menuItem.getName());
        subMenuItemLink.addOrReplace(menuItemLabel);

        if (!menuItem.isEnabled()) {
            listItem.add(new CssClassAppender("disabled"));
            subMenuItemLink.setEnabled(false);
            TooltipBehavior tooltipBehavior = new TooltipBehavior(Model.of(menuItem.getDisabledReason()));
            listItem.add(tooltipBehavior);
        }
        if (menuItem.isPrototyping()) {
            subMenuItemLink.add(new CssClassAppender("prototype"));
        }
        leafItem.add(subMenuItemLink);

        String cssClassFa = menuItem.getCssClassFa();
        if (Strings.isNullOrEmpty(cssClassFa)) {
            subMenuItemLink.add(new CssClassAppender("menuLinkSpacer"));
        } else {
            menuItemLabel.add(new CssClassFaBehavior(cssClassFa, menuItem.getCssClassFaPosition()));
        }

        String cssClass = menuItem.getCssClass();
        if (!Strings.isNullOrEmpty(cssClass)) {
            subMenuItemLink.add(new CssClassAppender(cssClass));
        }
    } else {
        leafItem = new Fragment("content", "empty", parent);
        listItem.add(new CssClassAppender("divider"));
    }
    listItem.add(leafItem);
}

From source file:org.apache.isis.viewer.wicket.ui.components.additionallinks.AdditionalLinksPanel.java

License:Apache License

public AdditionalLinksPanel(final String id, final List<LinkAndLabel> links) {
    super(id, new ListOfLinksModel(links));

    this.linkAndLabels = getModel().getObject();

    final WebMarkupContainer container = new WebMarkupContainer(ID_ADDITIONAL_LINK_LIST);
    addOrReplace(container);/*ww  w  .  j a va  2s.  com*/

    container.setOutputMarkupId(true);

    setOutputMarkupId(true);

    final ListView<LinkAndLabel> listView = new ListView<LinkAndLabel>(ID_ADDITIONAL_LINK_ITEM,
            this.linkAndLabels) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<LinkAndLabel> item) {
            final LinkAndLabel linkAndLabel = item.getModelObject();

            final AbstractLink link = linkAndLabel.getLink();

            Label viewTitleLabel = new Label(ID_ADDITIONAL_LINK_TITLE, linkAndLabel.getLabel());
            String disabledReasonIfAny = linkAndLabel.getDisabledReasonIfAny();
            if (disabledReasonIfAny != null) {
                viewTitleLabel.add(new AttributeAppender("title", disabledReasonIfAny));
            }
            if (linkAndLabel.isBlobOrClob()) {
                link.add(new CssClassAppender("noVeil"));
            }
            if (linkAndLabel.isPrototype()) {
                link.add(new CssClassAppender("prototype"));
            }
            link.add(new CssClassAppender(linkAndLabel.getActionIdentifier()));
            String cssClass = linkAndLabel.getCssClass();
            if (cssClass != null) {
                item.add(new CssClassAppender(cssClass));
            }
            viewTitleLabel.add(new CssClassAppender(StringExtensions.asLowerDashed(linkAndLabel.getLabel())));
            link.addOrReplace(viewTitleLabel);
            item.addOrReplace(link);
        }
    };
    container.addOrReplace(listView);
}

From source file:org.apache.isis.viewer.wicket.ui.components.bookmarkedpages.BookmarkedPagesPanel.java

License:Apache License

private void buildGui() {

    final BookmarkedPagesModel bookmarkedPagesModel = getModel();

    Component helpText = addHelpText(bookmarkedPagesModel);
    addOrReplace(helpText);/*w  w  w.j a  v a 2 s .c o m*/

    final WebMarkupContainer container = new WebMarkupContainer(ID_BOOKMARK_LIST) {
        private static final long serialVersionUID = 1L;

        @Override
        public void renderHead(IHeaderResponse response) {
            response.render(CssHeaderItem.forReference(
                    new CssResourceReference(BookmarkedPagesPanel.class, "BookmarkedPagesPanel.css")));
            response.render(JavaScriptReferenceHeaderItem.forReference(SLIDE_PANEL_JS));
        }
    };
    // allow to be updated by AjaxLink
    container.setOutputMarkupId(true);
    add(container);

    final AjaxLink<Void> clearAllBookmarksLink = new AjaxLink<Void>(CLEAR_BOOKMARKS) {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            BookmarkedPagesPanel.this.getModel().clear();
            setEnabled(false);
            target.add(container, this);
        }
    };
    clearAllBookmarksLink.setOutputMarkupId(true);
    add(clearAllBookmarksLink);
    clearAllBookmarksLink.setOutputMarkupId(true);

    if (getModel().isEmpty()) {
        clearAllBookmarksLink.setVisible(false);
    }

    final ListView<BookmarkTreeNode> listView = new ListView<BookmarkTreeNode>(ID_BOOKMARKED_PAGE_ITEM,
            bookmarkedPagesModel) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<BookmarkTreeNode> item) {
            final BookmarkTreeNode node = item.getModelObject();
            try {
                final PageType pageType = node.getPageType();
                final Class<? extends Page> pageClass = pageClassRegistry.getPageClass(pageType);

                final AjaxLink<Object> clearBookmarkLink = new AjaxLink<Object>(ID_CLEAR_BOOKMARK_LINK) {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onClick(AjaxRequestTarget target) {
                        bookmarkedPagesModel.remove(node);
                        if (bookmarkedPagesModel.isEmpty()) {
                            permanentlyHide(CLEAR_BOOKMARKS);
                        }
                        target.add(container, clearAllBookmarksLink);
                    }

                };
                if (node.getDepth() == 0) {
                    clearBookmarkLink.add(new CssClassAppender("clearBookmark"));
                } else {
                    clearBookmarkLink.setEnabled(true);
                }
                item.add(clearBookmarkLink);

                PageParameters pageParameters = node.getPageParameters();
                final AbstractLink link = Links.newBookmarkablePageLink(ID_BOOKMARKED_PAGE_LINK, pageParameters,
                        pageClass);

                ObjectSpecification objectSpec = null;
                RootOid oid = node.getOidNoVer();
                if (oid != null) {
                    ObjectSpecId objectSpecId = oid.getObjectSpecId();
                    objectSpec = getSpecificationLoader().lookupBySpecId(objectSpecId);
                }
                final ResourceReference imageResource = imageCache.resourceReferenceForSpec(objectSpec);
                final Image image = new Image(ID_BOOKMARKED_PAGE_ICON, imageResource) {
                    private static final long serialVersionUID = 1L;

                    @Override
                    protected boolean shouldAddAntiCacheParameter() {
                        return false;
                    }
                };
                link.addOrReplace(image);

                String title = node.getTitle();
                final Label label = new Label(ID_BOOKMARKED_PAGE_TITLE, title);
                link.add(label);
                item.add(link);
                if (bookmarkedPagesModel.isCurrent(pageParameters)) {
                    item.add(new CssClassAppender("disabled"));
                }
                item.add(new CssClassAppender("bookmarkDepth" + node.getDepth()));
            } catch (ObjectNotFoundException ex) {
                // ignore
                // this is a partial fix for an infinite redirect loop.
                // should be a bit smarter here, though; see ISIS-596.
            }

        }
    };
    container.add(listView);
}

From source file:org.apache.isis.viewer.wicket.ui.components.entity.blocks.icontitle.EntityIconAndTitlePanel.java

License:Apache License

private WebMarkupContainer addOrReplaceLinkWrapper(final EntityModel entityModel) {
    final ObjectAdapter adapter = entityModel.getObject();

    final PageParameters pageParameters = EntityModel.createPageParameters(adapter);
    final Class<? extends Page> pageClass = getPageClassRegistry().getPageClass(PageType.ENTITY);
    final AbstractLink link = newLink(ID_ENTITY_LINK, pageClass, pageParameters);

    label = new Label(ID_ENTITY_TITLE, determineTitle());
    link.add(label);//from  ww  w  . ja  v  a2 s  .co  m

    final ResourceReference imageResource = imageCache.resourceReferenceFor(adapter);
    image = new Image(ID_ENTITY_ICON, imageResource) {
        private static final long serialVersionUID = 1L;

        @Override
        protected boolean shouldAddAntiCacheParameter() {
            return false;
        }
    };
    link.addOrReplace(image);

    final WebMarkupContainer entityLinkWrapper = new WebMarkupContainer(ID_ENTITY_LINK_WRAPPER);
    entityLinkWrapper.addOrReplace(link);
    return entityLinkWrapper;
}

From source file:org.apache.isis.viewer.wicket.ui.components.entity.icontitle.EntityIconAndTitlePanel.java

License:Apache License

private AbstractLink createIconAndTitle(final ObjectAdapter adapter) {
    final AbstractLink link = createLinkWrapper();

    final String title = determineTitle();

    final String iconName = adapter.getIconName();
    final CssClassFaFacet cssClassFaFacet = adapter.getSpecification().getFacet(CssClassFaFacet.class);
    if (iconName != null || cssClassFaFacet == null) {
        link.addOrReplace(this.image = newImage(ID_ENTITY_ICON, adapter));
        Components.permanentlyHide(link, ID_ENTITY_FONT_AWESOME);
    } else {/*from ww w  .  jav a 2  s . com*/
        Label dummy = new Label(ID_ENTITY_FONT_AWESOME, "");
        link.addOrReplace(dummy);
        dummy.add(new CssClassAppender(cssClassFaFacet.value() + " fa-2x"));
        Components.permanentlyHide(link, ID_ENTITY_ICON);
    }

    link.addOrReplace(this.label = newLabel(ID_ENTITY_TITLE, titleAbbreviated(title)));

    String entityTypeName = adapter.getSpecification().getSingularName();
    link.add(new AttributeModifier("title", entityTypeName + ": " + title));

    return link;
}