Example usage for com.google.gwt.user.client.ui DeckPanel setAnimationEnabled

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

Introduction

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

Prototype

public void setAnimationEnabled(boolean enable) 

Source Link

Usage

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");
}