Example usage for com.google.gwt.user.client.ui EventfulHyperLink EventfulHyperLink

List of usage examples for com.google.gwt.user.client.ui EventfulHyperLink EventfulHyperLink

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui EventfulHyperLink EventfulHyperLink.

Prototype

public EventfulHyperLink(String text, String token) 

Source Link

Usage

From source file:com.edgenius.wiki.gwt.client.page.widgets.TagsPanel.java

License:Open Source License

public void display(String spaceUname, String tagsStr, boolean allowEdit) {
    tagsEditBox.setSpaceUname(spaceUname);

    tagsEditBox.setText("");
    tags.clear();/*from   w  w  w  .  j  a va 2s  .com*/

    Image img = new Image(TypeImageBundle.I.get().ptag());
    img.setTitle(Msg.consts.tags());
    tags.add(img);

    if (tagsStr != null && tagsStr.trim().length() > 0) {
        String[] tagTxts = tagsStr.split(",");
        for (int idx = 0; idx < tagTxts.length; idx++) {
            final String tagname = tagTxts[idx];
            if (tagname.trim().length() > 0) {
                EventfulHyperLink tagLink = new EventfulHyperLink(tagname, GwtUtils.buildToken(
                        GwtUtils.getCPageToken(SharedConstants.CPAGE_TAG_CLOUD), PageMain.getSpaceUname()));
                new TagPopup(tagLink, PageMain.getSpaceUname(), tagname);
                tagLink.setTitle(Msg.consts.goto_tagcloud());
                tagLink.setStyleName(Css.ITEM);
                tags.add(tagLink);
            }
        }
    } else {
        //show none
        tags.add(new HTML(" (" + Msg.consts.none() + ")"));
    }

    //offline, disable edit tag
    if (allowEdit && !AbstractEntryPoint.isOffline()) {
        //view
        tags.add(new HTML("&nbsp;"));
        tags.add(editTagsLink);
        //edit box
        tagsEditBox.setText(StringUtil.trimStartSpace(tagsStr));
    }

    tagsDeck.showWidget(TAG_TEXT);
}

From source file:com.edgenius.wiki.gwt.client.render.PageRender.java

License:Open Source License

/**
 * @param spaceUname /*from w  w w. j  a v a  2 s  .  c  om*/
 * @param panel
 * @param model
 * @param pieces: could be pageContent, or side bar content 
 * @param isPreivew: if this render is for preview window
 */
public void renderContent(final String spaceUname, PageModel page, List<RenderPiece> pieces,
        boolean isPreivew) {
    //most stuff only need renderPiece, except PageAuthorPanel at moment
    widgetRenderContent = new StringBuffer();
    widgetCounter.clear();
    widgetContainer.clear();

    panel.clear();

    if (pieces != null) {
        int size = pieces.size();
        for (int idx = 0; idx < size; idx++) {
            Object piece = pieces.get(idx);
            if (piece instanceof LinkModel) {
                LinkModel ln = (LinkModel) piece;
                if (listeners != null) {
                    fireRenderEvent(ln.getView());
                }
                final String anchorTxt = StringUtil.isBlank(ln.getAnchor()) ? ""
                        : (EscapeUtil.escapeToken(ln.getAnchor().trim()));
                if (anchorTxt.length() != 0 && StringUtil.isBlank(ln.getLink())) {
                    //[view>#anchor] style: will only redirect to anchor in same page
                    ClickLink link = new ClickLink(ln.getView(), true);
                    link.addClickHandler(new ClickHandler() {
                        public void onClick(ClickEvent event) {
                            GwtClientUtils.gotoAnchor(anchorTxt);
                        }
                    });
                    panel.add(link);
                } else if (ln.getType() == LinkModel.LINK_TO_CLIENT_CLICK_LINK) {
                    final String[] token = LinkUtil.parseCLinkParamters(ln.getLink());
                    if (token != null && token.length > 0) {
                        //If it has anchor field, it will be treated as hyper link.Otherwise, ClickLink
                        if (!StringUtil.isEmpty(ln.getAnchor())) {
                            //now it only support user popup - so need to consolidate if want to more functions 
                            EventfulHyperLink link = new EventfulHyperLink(ln.getView(), ln.getAnchor());
                            String method = token[0];
                            String[] params = null;
                            if (token.length > 1) {
                                params = new String[token.length - 1];
                                for (int idx1 = 1; idx1 < token.length; idx1++) {
                                    params[idx1 - 1] = token[idx1];
                                }
                            }
                            JavascriptExposer.run(method, params, link);
                            panel.add(link);
                        } else {
                            //click link
                            ClickLink link = new ClickLink(ln.getView(), true);
                            link.addClickHandler(new ClickHandler() {
                                public void onClick(ClickEvent event) {
                                    String method = token[0];
                                    String[] params = null;
                                    if (token.length > 1) {
                                        params = new String[token.length - 1];
                                        for (int idx = 1; idx < token.length; idx++) {
                                            params[idx - 1] = token[idx];
                                        }
                                    }
                                    JavascriptExposer.run(method, params, (Widget) event.getSource());
                                }
                            });
                            panel.add(link);
                        }
                    } else {
                        panel.add(new HTML(ln.getView()));
                        Log.error("Unable pasre link with type 'client click link':" + ln.getLink());
                    }
                } else if (ln.getType() == LinkModel.LINK_TO_SERVER_CLICK_LINK) {

                } else {
                    if (isPreivew) {
                        ClickLink link = new ClickLink(ln.getView(), true);
                        link.addClickHandler(new ClickHandler() {
                            public void onClick(ClickEvent event) {
                                Window.alert(Msg.consts.preview_disable_link());
                            }
                        });
                        panel.add(link);
                    } else {
                        String tokenName = ln.getLink();

                        String linkSpaceUname = ln.getSpaceUname();
                        //extspace or current space,  if null(failure tolerance) use current spaceUname as value
                        linkSpaceUname = (linkSpaceUname == null || linkSpaceUname.trim().length() == 0)
                                ? spaceUname
                                : linkSpaceUname;
                        if (ln.getType() == LinkModel.LINK_TO_CREATE_FLAG) {
                            //$CREATE ,for link to non-exist page, or for "PAGE_NOT_FOUND" case
                            tokenName = GwtUtils.buildToken(PageMain.TOKEN_CREATE, linkSpaceUname, tokenName);
                        } else if (ln.getType() == LinkModel.LINK_TO_CREATE_HOME_FLAG) {
                            tokenName = GwtUtils.buildToken(PageMain.TOKEN_CREATE_HOME, linkSpaceUname,
                                    tokenName);
                        } else if (ln.getType() == LinkModel.LINK_TO_OPEN_NEW_WIN) {
                            //no use so far
                            tokenName = GwtUtils.buildToken(PageMain.TOKEN_OPEN_NEW_WINDOW, linkSpaceUname,
                                    tokenName);
                        } else if (ln.getType() == LinkModel.LINK_TO_HYPER_TOKEN) {
                            //keep token unchanged - nothing to do here.
                        } else
                            tokenName = GwtUtils.getSpacePageToken(linkSpaceUname, tokenName);

                        tokenName += (anchorTxt == "" ? "" : "#" + anchorTxt);
                        Hyperlink link = new Hyperlink(ln.getView(), true, tokenName);
                        panel.add(link);
                    }
                }
            } else if (piece instanceof MacroModel) {
                MacroModel rs = (MacroModel) piece;
                if (rs != null) {

                    if (rs.macroName.equalsIgnoreCase(SharedConstants.MACRO_SPACE_ADMIN)) {
                        SpaceAdminRenderWidget adminPanel = new SpaceAdminRenderWidget(spaceUname);
                        panel.add(adminPanel);
                        widgetContainer.add(adminPanel);
                        adminPanel.onLoad(HTMLPanel.createUniqueId(), currentUser, this);

                    } else if (rs.macroName.equalsIgnoreCase(SharedConstants.MACRO_NOTIFY_SYSADMIN)) {
                        SendingNotifyRenderWidget adminPanel = new SendingNotifyRenderWidget();
                        panel.add(adminPanel);
                        widgetContainer.add(adminPanel);
                        adminPanel.onLoad(HTMLPanel.createUniqueId(), currentUser, this);
                    } else if (rs.macroName.equals(SharedConstants.MACRO_TAG_CLOUD)) {
                        TagCloudRenderWidget macroPanel = new TagCloudRenderWidget(spaceUname);
                        panel.add(macroPanel);
                        widgetContainer.add(macroPanel);
                        macroPanel.onLoad(HTMLPanel.createUniqueId(), currentUser, this);
                    } else if (rs.macroName.equals(SharedConstants.MACRO_TEMPLATE_LIST)) {
                        TemplateListRenderWidget macroPanel = new TemplateListRenderWidget(spaceUname);
                        panel.add(macroPanel);
                        widgetContainer.add(macroPanel);
                        macroPanel.onLoad(HTMLPanel.createUniqueId(), currentUser, this);
                    } else if (rs.macroName.equals(SharedConstants.MACRO_SEARCH)) {
                        String keyword = (String) rs.values.get(NameConstants.KEYWORD);
                        SearchRenderWidget macroPanel = new SearchRenderWidget(keyword);
                        panel.add(macroPanel);
                        widgetContainer.add(macroPanel);
                        macroPanel.onLoad(HTMLPanel.createUniqueId(), currentUser, this);
                    } else if (rs.macroName.equals(SharedConstants.MACRO_USER_PROFILE)) {
                        String username = rs.values.get(NameConstants.USERNAME);
                        UserProfileRenderWidget macroPanel = new UserProfileRenderWidget(username);
                        panel.add(macroPanel);
                        widgetContainer.add(macroPanel);
                        macroPanel.onLoad(HTMLPanel.createUniqueId(), currentUser, this);

                    } else if (rs.macroName.equals(SharedConstants.MACRO_INCLUDE)) {
                        String src = rs.values.get(NameConstants.SRC);

                        LinkModel link = LinkUtil.parseMarkup(src);
                        if (StringUtil.isBlank(link.getSpaceUname())) {
                            //if @space is blank, treat as current space 
                            link.setSpaceUname(spaceUname);
                        }
                        IncludeRenderWidget includePanel = new IncludeRenderWidget(link);
                        panel.add(includePanel);
                        widgetContainer.add(includePanel);
                        includePanel.onLoad(HTMLPanel.createUniqueId(), currentUser, this);

                    } else if (rs.macroName.equals(SharedConstants.MACRO_COMMENT)) {
                        String title = (String) rs.values.get(NameConstants.TITLE);
                        ClickLink comment = new ClickLink(title);
                        comment.addClickHandler(new ClickHandler() {
                            public void onClick(ClickEvent event) {
                                if (BaseEntryPoint.I != null && BaseEntryPoint.I instanceof PageMain) {
                                    PageMain main = ((PageMain) BaseEntryPoint.I);
                                    if (main.getVisiblePanelIndex() == PageMain.VIEW_PANEL) {
                                        main.viewPanel.tabPanel.newComment();
                                        return;
                                    }
                                }
                                Window.alert(Msg.consts.not_available_mode());
                            }
                        });
                        widgetRenderContent.append(title);
                        panel.add(comment);
                    } else if (rs.macroName.equals(SharedConstants.MACRO_PORTAL)) {
                        boolean show = BooleanUtil.toBooleanTrue(rs.values.get(NameConstants.SHOWLOGO));
                        int column = NumberUtil.toInt(rs.values.get(NameConstants.COLUMNS), -1);
                        if (column == -1) {
                            //this is just for makes this macro can tolerance spell error - colunm or columns
                            column = NumberUtil.toInt(rs.values.get(NameConstants.COLUMN), -1);
                        }
                        if (column == -1) {
                            column = SharedConstants.DEFAULT_PORTAL_COLUMNS;
                        }
                        if (visitor == null) {
                            //default portal visitor - don't use InstancePortalVisitor as it is dangerous to change default dashboard
                            visitor = new HomePortalVisitor();
                        }
                        Portal portal = new Portal(visitor, column, show);
                        panel.add(portal);
                        widgetContainer.add(portal);
                        portal.onLoad(HTMLPanel.createUniqueId(), currentUser, this);
                    } else if (rs.macroName.equals(SharedConstants.MACRO_FEEDBACK)) {
                        String imgOn = rs.values.get(NameConstants.IMAGE);
                        HasClickHandlers btn;
                        if (StringUtil.isBlank(imgOn)) {
                            //text base link
                            String title = (String) rs.values.get(NameConstants.TITLE);
                            btn = new ClickLink(title);
                        } else {
                            btn = new Image(imgOn);
                        }
                        btn.addClickHandler(new ClickHandler() {
                            public void onClick(ClickEvent event) {
                                FeedbackDialog dialog = new FeedbackDialog();
                                dialog.showbox();
                            }
                        });

                        //for hide welcome message
                        widgetRenderContent.append("feedback");//NON-I18N
                        panel.add((Widget) btn);
                    } else if (rs.macroName.equals(SharedConstants.MACRO_SIGNUP)) {
                        String imgOn = rs.values.get(NameConstants.IMAGE);
                        HasClickHandlers btn;
                        if (StringUtil.isBlank(imgOn)) {
                            //text base link
                            String title = (String) rs.values.get(NameConstants.TITLE);
                            btn = new ClickLink(title);
                        } else {
                            btn = new Image(imgOn);
                        }
                        btn.addClickHandler(new ClickHandler() {
                            public void onClick(ClickEvent event) {
                                LoginDialog dialogue = new LoginDialog(LoginDialog.SINGUP);
                                dialogue.showbox();
                            }
                        });

                        //for hide welcome message
                        widgetRenderContent.append("signup");//NON-I18N
                        panel.add((Widget) btn);
                    }
                }
            } else if (piece instanceof TextModel) {
                String text = ((TextModel) piece).toString();
                panel.add(text);
                if (listeners != null) {
                    fireRenderEvent(text);
                }
            }
        }
    }

    panel.submit();

    if (listeners != null) {
        Scheduler.get().scheduleDeferred(new ScheduledCommand() {
            public void execute() {
                attemptFireRenderEnd();
            }

        });
    }
}