com.tasktop.c2c.server.tasks.client.widgets.tasklist.StatusColumn.java Source code

Java tutorial

Introduction

Here is the source code for com.tasktop.c2c.server.tasks.client.widgets.tasklist.StatusColumn.java

Source

/*******************************************************************************
 * Copyright (c) 2010, 2012 Tasktop Technologies
 * Copyright (c) 2010, 2011 SpringSource, a division of VMware
 * 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     Tasktop Technologies - initial API and implementation
 ******************************************************************************/
package com.tasktop.c2c.server.tasks.client.widgets.tasklist;

import static com.tasktop.c2c.server.common.web.client.widgets.Format.stringValue;

import com.google.gwt.cell.client.AbstractCell;
import com.google.gwt.core.client.GWT;
import com.google.gwt.safehtml.client.SafeHtmlTemplates;
import com.google.gwt.safehtml.client.SafeHtmlTemplates.Template;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.IdentityColumn;
import com.tasktop.c2c.server.common.profile.web.client.CommonProfileMessages;
import com.tasktop.c2c.server.tasks.domain.Task;
import com.tasktop.c2c.server.tasks.domain.TaskFieldConstants;

public class StatusColumn extends TaskColumnDescriptor {

    static interface Template extends SafeHtmlTemplates {
        @Template("{0}")
        SafeHtml status(String status);

        @Template("{0}<br>{1}")
        SafeHtml statusAndResolution(String status, String resolution);

    }

    private static Template template = GWT.create(Template.class);
    private CommonProfileMessages commonProfileMessages = GWT.create(CommonProfileMessages.class);

    @Override
    public String getLabel() {
        return commonProfileMessages.status();
    }

    @Override
    public String getTaskField() {
        return TaskFieldConstants.STATUS_FIELD;
    }

    @Override
    protected Column<Task, ?> createColumn() {
        AbstractCell<Task> cell = new AbstractCell<Task>() {

            @Override
            public void render(com.google.gwt.cell.client.Cell.Context context, Task task, SafeHtmlBuilder sb) {
                if (task.getStatus().isOpen() || task.getResolution() == null
                        || task.getResolution().getValue().isEmpty()) {
                    sb.append(template.status(stringValue(task.getStatus())));
                } else {
                    sb.append(template.statusAndResolution(stringValue(task.getStatus()),
                            stringValue(task.getResolution())));
                }

            }
        };
        return new IdentityColumn<Task>(cell);
    }

}