com.sencha.gxt.desktop.client.theme.base.container.DesktopLayoutDefaultAppearance.java Source code

Java tutorial

Introduction

Here is the source code for com.sencha.gxt.desktop.client.theme.base.container.DesktopLayoutDefaultAppearance.java

Source

/**
 * Sencha GXT 3.1.1 - Sencha for GWT
 * Copyright(c) 2007-2014, Sencha, Inc.
 * licensing@sencha.com
 *
 * http://www.sencha.com/products/gxt/license/
 */
package com.sencha.gxt.desktop.client.theme.base.container;

import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.resources.client.ImageResource.ImageOptions;
import com.google.gwt.resources.client.ImageResource.RepeatStyle;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.sencha.gxt.core.client.XTemplates;
import com.sencha.gxt.core.client.dom.XElement;
import com.sencha.gxt.core.client.resources.StyleInjectorHelper;
import com.sencha.gxt.desktop.client.widget.DesktopLayoutContainer.DesktopLayoutContainerAppearance;

public class DesktopLayoutDefaultAppearance implements DesktopLayoutContainerAppearance {

    public interface DesktopLayoutBaseResources extends ClientBundle {

        @ImageOptions(repeatStyle = RepeatStyle.None)
        ImageResource desktop();

        @Source("DesktopLayout.css")
        DesktopLayoutStyle style();

    }

    public interface DesktopLayoutStyle extends CssResource {

        String container();

        String inner();

    }

    public interface DesktopLayoutTemplate extends XTemplates {

        @XTemplate("<div class=\"{style.container}\"><div class=\"{style.inner}\"></div></div>")
        SafeHtml template(DesktopLayoutStyle style);

    }

    private final DesktopLayoutBaseResources resources;
    private final DesktopLayoutTemplate template;

    public DesktopLayoutDefaultAppearance() {
        this(GWT.<DesktopLayoutBaseResources>create(DesktopLayoutBaseResources.class),
                GWT.<DesktopLayoutTemplate>create(DesktopLayoutTemplate.class));
    }

    public DesktopLayoutDefaultAppearance(DesktopLayoutBaseResources resources, DesktopLayoutTemplate template) {
        this.resources = resources;
        this.template = template;

        StyleInjectorHelper.ensureInjected(resources.style(), true);
    }

    @Override
    public XElement getShortcutArea(XElement parent) {
        return parent.getFirstChildElement().cast();
    }

    @Override
    public void render(SafeHtmlBuilder sb) {
        sb.append(template.template(resources.style()));
    }

}