junaidp
junaidp

Reputation: 11201

hyperlink cell in GWT CellTable

I have a cell table in GWT with textcells and buttoncell ,Now i want to add a hyperlinkCell in my celltable , is this possible ?

                  TextCell jobStatusCell = new TextCell();
    jobStatusColumn = new Column<EmployerJobs, String>(jobStatusCell) {
        @Override
        public String getValue(EmployerJobs object) {

            // int status = object.getJobStatusId();
            /*
             * if(status ==1) { return ""; } else
             */
            // return "post job";
            return "view";
        }
    };

I want some thing like this

             HyperlinkCell jobStatusCell = new HyperLinkCell();

Thanks

Upvotes: 1

Views: 4025

Answers (2)

Zecas
Zecas

Reputation: 647

Try using the following Cell implementation

Be sure that you provide cell's value as an array of 2 String objects like:

String[] value = new String[2];
value[HyperTextCell.LINK_INDEX] = "http://www.google.com";
value[HyperTextCell.TEXT_INDEX] = "Search on google";

public class HyperTextCell extends AbstractCell<String[]> {

interface Template extends SafeHtmlTemplates {
    @Template("<a target=\"_blank\" href=\"{0}\">{1}</a>")
    SafeHtml hyperText(SafeUri link, String text);
}

private static Template template;

public static final int LINK_INDEX = 0, URL_INDEX = 1;

/**
 * Construct a new ImageCell.
 */
public HyperTextCell() {

    if (template == null) {
        template = GWT.create(Template.class);
    }
}

@Override
public void render(Context context, String[] value, SafeHtmlBuilder sb) {
    if (value != null) {

        // The template will sanitize the URI.
        sb.append(template.hyperText(UriUtils.fromString(value[LINK_INDEX]), value[URL_INDEX]));
    }
    }
}

Upvotes: 0

Adel Boutros
Adel Boutros

Reputation: 10285

do you mean this HyperlinkCell?

If not, you can write a normal hyperlink (<a href="http://www.stackoverflow.com">linkCell </a>)and put it as the content of a cell.

Upvotes: 1

Related Questions