Create a class that renders anchor like below:

public class CustomAnchorCell
        extends ClickableTextCell {

    private String itsHref = "";
    private boolean isEnabled = true;

    public CustomAnchorCell(String inHref) {
        super();
        itsHref = inHref;
    }

    public CustomAnchorCell() {
        super();
        itsHref = "";
    }

    public CustomAnchorCell(String inHref, boolean inEnabled) {
        this(inHref);
        isEnabled = inEnabled;
    }

    @Override
    protected void render(Context context, SafeHtml value, SafeHtmlBuilder sb) {
        if (value != null) {
            String theElementStart = "";
            String theElementEnd = "";
            if (isEnabled) {
                theElementStart = "<a href='" + itsHref + "'";
                theElementEnd = "</a>";
            } else {
                theElementStart = "<span";
                theElementEnd = "</span>";
            }
            sb.appendHtmlConstant(theElementStart + " class='" + itsClassName + 
"'>")
                    .append(value)
                    .appendHtmlConstant(theElementEnd);
        }
    }

    public void setHref(String inHref) {
        itsHref = inHref;
    }

    public void setEnabled(boolean inEnabled) {
        isEnabled = inEnabled;
    }

    public void setClassName(String inClassName) {
        itsClassName = inClassName;
    }
}



Use it like this:

Column<Report, String> theReport = new Column< Report, String>(new 
CustomAnchorCell()) {
    @Override
    public String getValue(Report object) {
        return "Hello New Tab";
    }

    @Override
    public void render(Cell.Context context, Report object, SafeHtmlBuilder sb) 
{
        CustomAnchorCell theCustomAnchorCell = (CustomAnchorCell) getCell();
        theCustomAnchorCell.setHref("_your new tab url_");
        theCustomAnchorCell.setClassName(*"_your custom css class name_"*);

        super.render(context, object, sb);
    }
};



On Wednesday, August 29, 2018 at 10:50:25 AM UTC-4, Ousti Driss wrote:
>
> What I want is when you click on the cell a new tab opens with the url you 
> clicked,
> my string url column is filled with the response I get from the servlet
> can you please give me more details on the alternative response.
>
> On Wednesday, August 29, 2018 at 3:45:27 PM UTC+2, Thomas Broyer wrote:
>>
>> If you want to display text as-is (e.g. not a link), then you can use a 
>> ClickableTextCell (see it live, with source code, in 
>> http://samples.gwtproject.org/samples/Showcase/Showcase.html#!CwCellSampler),
>>  
>> the FieldUpdater will be called when the cell is clicked.
>> Alternatively, you could use a TextCell with a custom SafeHtmlRenderer 
>> that would wrap the URL in a link (easiest would probably be to implement 
>> this using a SafeHtmlTemplates: pass the URL as input –you'll want to pass 
>> it as a SafeUri, constructed using UriUtils.fromString()–, use it to 
>> construct something like <a href="{0}" target="_blank">{0}</a>)
>>
>> On Tuesday, August 28, 2018 at 6:00:00 PM UTC+2, Ousti Driss wrote:
>>>
>>> Hey everyone,
>>>
>>> I'm writing the code of a simple web app using gwt, I have a Celltable 
>>> all its columns are String type,
>>> one of the columns is a url column , I want to make this column 
>>> clickable, which means once you click on a cell
>>> of this column, you are redicted to the url shown, is that possible?
>>> i tried to add an anchor column to the table, but I got error messages 
>>> while defining this column when I call the getValue method, the type of 
>>> return should be a string!!
>>> Is there a way to do such a thing?
>>>
>>> Thank you :) 
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to