List of usage examples for com.google.gwt.user.client.ui EventfulHyperLink EventfulHyperLink
public EventfulHyperLink(String text, String token)
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(" ")); 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(); } }); } }