Hi, Thanks for your contribution. I suggest you to read the contributors guide though: http://code.google.com/webtoolkit/makinggwtbetter.html#contributingcode
Cheers, Salvador On May 10, 10:01 am, LooneyLynn <[email protected]> wrote: > For my own project I found it rather frustrating that there seems to > be no existing control supporting ellipsis for text that won't fit > into a label with a defined width. There are some examples in the > internet but they all do not support ellipsis in the right way. The > following class will do this and I hope to receive some comments, > because I want to use it in a large web application and it is > important that it will work correctly. Since this took me only some > minutes to write, there is no license applied; you can use it as you > want. It looks a little bit complicated because it is very fast and > will work for very large texts as well: > > public class LabelEllipsis extends Label{ > > private final int m_MaxHeight; > private String m_Content; > > public LabelEllipsis ( > String InContent, > int InWidth, > int InMaxHeight){ > > m_MaxHeight = InMaxHeight; > m_Content = InContent; > > this.setWidth(InWidth + "px"); > > setText(m_Content); > } > > @Override > protected void onLoad(){ > setText(m_Content); > } > > @Override > public void setText(String InContent){ > if(!isAttached()) > return; > > String OldContent = m_Content; > > super.setText(m_Content); > > int Height = getOffsetHeight(); > > if(Height > m_MaxHeight){ > float Ratio = (float)m_MaxHeight / > (float)Height - 0.1f; // < 1.0 > > m_Content = m_Content.substring(0, > Math.min(m_Content.length() - > 4, (int)(m_Content.length() * > Ratio))) + "..."; > > super.setText(m_Content); > > Height = getOffsetHeight(); > > if(Height < m_MaxHeight){ > // add chars until max height is > reached > while(Height < m_MaxHeight){ > m_Content = > OldContent.substring(0, m_Content.length() - 2) + > "..."; > > super.setText(m_Content); > > Height = getOffsetHeight(); > } > > // remove last char > m_Content = m_Content.substring(0, > > Math.min(m_Content.length() - 4, m_Content.length() * > m_MaxHeight)) + "..."; > > super.setText(m_Content); > }else if(Height > m_MaxHeight){ > // remove chars until max height is > reached > while(Height > m_MaxHeight){ > m_Content = > m_Content.substring(0, m_Content.length() - 4) + > "..."; > > super.setText(m_Content); > > Height = getOffsetHeight(); > } > } > } > } > } --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---
