com.google.gwt.sample.expenses.client.Approval.java Source code

Java tutorial

Introduction

Here is the source code for com.google.gwt.sample.expenses.client.Approval.java

Source

/*
 * Copyright 2010 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.sample.expenses.client;

import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
import com.google.gwt.sample.expenses.client.style.Styles;
import com.google.gwt.user.client.ui.AbstractImagePrototype;

/**
 * An enum describing the approval status.
 */
public enum Approval {
    BLANK("", "inherit", Styles.resources().blankIcon()), APPROVED("Approved", "#00aa00",
            Styles.resources().approvedIcon()), DENIED("Denied", "#ff0000", Styles.resources().deniedIcon());

    /**
     * Get the {@link Approval} from the specified string.
     * 
     * @param approval the approval string
     * @return the {@link Approval}
     */
    public static Approval from(String approval) {
        if (APPROVED.is(approval)) {
            return APPROVED;
        } else if (DENIED.is(approval)) {
            return DENIED;
        }
        return BLANK;
    }

    private final String color;
    private final SafeHtml iconHtml;
    private final String text;

    private Approval(String text, String color, ImageResource res) {
        this.text = text;
        this.color = color;
        this.iconHtml = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(res).getHTML());
    }

    public String getColor() {
        return color;
    }

    public SafeHtml getIconHtml() {
        return iconHtml;
    }

    public String getText() {
        return text;
    }

    public boolean is(String compare) {
        return text.equals(compare);
    }
}