import org.apache.wicket.request.http.handler.RedirectRequestHandler; //导入依赖的package包/类
public TopLinksPanel(String id, final IModel linkModel, final IModel pageTitleModel) {
super(id);
this.linkModel = linkModel;
this.pageTitleModel = pageTitleModel != null ? pageTitleModel : new Model(null);
shareMenu = new BootstrapDropdown("shareOptions", new ListModel<>(getShareMenuOptions())) {
@Override
protected Component createDropDownLink(String id) {
return super.createDropDownLink(id)
.add(new AttributeAppender("class", "btn-sm", " "));
}
@Override
protected Serializable getButtonIconClass() {
return "fa fa-share-alt";
}
};
add(shareMenu);
// modal dialogue for bookmark/copy link
linkModal = new BootstrapModal("linkPanel") {
@Override
protected IModel getTitle() {
return Model.of("Page link");
}
};
modalBookmarkLinkPanel = new BookmarkLinkPanel(linkModal.getContentId(), linkModel, pageTitleModel);
add(linkModal.add(modalBookmarkLinkPanel));
// inline 'dialogue' for bookmark/copy link (non-js alternative for modal)
inlineBookmarkLinkPanelVisibilityModel = Model.of(false);
add(new WebMarkupContainer("inlineBookmarkPanel") {
@Override
protected void onConfigure() {
setVisible(inlineBookmarkLinkPanelVisibilityModel.getObject());
}
}
.add(inlineBookmarkLinkPanel = new BookmarkLinkPanel("linkPanel", linkModel, pageTitleModel))
.add(new Link("close") {
@Override
public void onClick() {
inlineBookmarkLinkPanelVisibilityModel.setObject(false);
}
})
);
// feedback link
add(new Link("feedback") {
@Override
public void onClick() {
// construct a feedback URL; this takes the current page URL as a parameter
// (needs to be URL encoded)
final String thisPageUrlParam = UrlEncoder.QUERY_INSTANCE.encode(linkModel.getObject(), "UTF-8");
final String feedbackUrl = vloConfig.getFeedbackFromUrl() + thisPageUrlParam;
// tell Wicket to redirect to the constructed feedback URL
getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(feedbackUrl));
}
});
}