List of usage examples for com.google.gwt.user.client.ui DeckPanel setAnimationEnabled
public void setAnimationEnabled(boolean enable)
From source file:org.apache.solr.explorer.client.plugin.listview.ui.HitBox.java
License:Apache License
public HitBox(SearchResult result, final Hit hit, SolrCore solrCore, List<HitBoxTab> tabs, List<HitBoxLink> links) { SolrCoreConfiguration configuration = solrCore.getConfiguration(); ListViewConfig renderingConfig = configuration.getConfig(ListViewConfig.class); VerticalPanel content = new VerticalPanel(); String titleField = renderingConfig.getTitleFieldName(); String title = (String) hit.get(titleField); if (title == null) { title = renderingConfig.getDefaultTitle(); }/* www. j a v a2 s. co m*/ Label titleLabel = new HTML(title); titleLabel.setStyleName("HitTitle"); content.add(titleLabel); String summaryField = renderingConfig.getSummaryFieldName(); String summary = (String) hit.get(summaryField); if (summary == null) { summary = renderingConfig.getDefaultSummary(); } FlowPanel summaryPane = new FlowPanel(); Thumbnail thumbnail = renderingConfig.getThumbnail(); if (thumbnail != null) { Template urlTemplate = thumbnail.getUrlTemplate(); final String thumbnailUrl = urlTemplate.render(new MapModel(hit)); final Image image = new Image(); image.setVisible(false); image.setWidth(thumbnail.getWidth()); image.setHeight(thumbnail.getHeight()); image.setStylePrimaryName("HitThumbnail"); image.addLoadHandler(new LoadHandler() { public void onLoad(LoadEvent event) { image.setVisible(true); } }); image.addErrorHandler(new ErrorHandler() { public void onError(ErrorEvent event) { image.removeFromParent(); } }); summaryPane.add(image); // the url of the image needs to be set in a delay so that IE will pick up the load events!!! DeferredCommand.addCommand(new Command() { public void execute() { image.setUrl(thumbnailUrl); } }); } CollapsableLabel descriptionLabel = new CollapsableLabel(summary, true, renderingConfig.getSummaryLength()); descriptionLabel.setStyleName("HitDescription"); summaryPane.add(descriptionLabel); content.add(summaryPane); String urlField = renderingConfig.getUrlFieldName(); String url = (String) hit.get(urlField); if (url == null || url.length() == 0) { url = "<no URL>"; } final String finalUrl = URL.encode(url); final String finalTitle = title; Label urlLabel = new Label(url); urlLabel.setStyleName("HitUrl"); urlLabel.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { GWT.log("final url: " + finalUrl, null); if (finalUrl.startsWith("http://") || finalUrl.startsWith("https://")) { Window.open(finalUrl, finalTitle, null); } else { Window.open("http://" + finalUrl, finalTitle, null); } } }); HorizontalPanel toolbar = new HorizontalPanel(); toolbar.setStyleName("Toolbar"); toolbar.add(urlLabel); content.add(toolbar); addGap(toolbar, "2px"); toolbar.add(new Label("-")); addGap(toolbar, "2px"); toolbar.add(new Label("-")); addGap(toolbar, "2px"); final DeckPanel tabContentHolder = new DeckPanel(); // tabContentHolder.setVisible(false); tabContentHolder.setAnimationEnabled(true); final SimplePanel emptyPanel = new SimplePanel(); tabContentHolder.add(emptyPanel); tabContentHolder.showWidget(0); for (HitBoxTab tab : tabs) { if (!tab.isActive() || !tab.isEnabled(result, hit)) { continue; } final Widget tabContent = tab.createWidget(result, hit); tabContentHolder.add(tabContent); final int index = tabContentHolder.getWidgetIndex(tabContent); final SimpleLinkButton link = new SimpleLinkButton(tab.getName()); link.setStyleName("ToolbarLink"); link.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { if (shownTabIndex == index) { shownTabIndex = 0; tabContentHolder.showWidget(0); } else { tabContentHolder.showWidget(index); shownTabIndex = index; } // if (button.isDown()) { // tabContentHolder.setVisible(true); // // } else { // tabContentHolder.setVisible(false); // } } }); addGap(toolbar, "5px"); toolbar.add(link); } content.add(tabContentHolder); // tabContentHolder.setVisible(false); for (HitBoxLink link : links) { if (!link.isActive() || !link.isEnabled(hit)) { continue; } SimpleLinkButton button = new SimpleLinkButton(link.getName()); button.setStyleName("ToolbarLink"); button.addClickHandler(link.createHandler(hit)); addGap(toolbar, "5px"); toolbar.add(button); } initWidget(content); setStyleName("HitBox"); }